Widely Regarded, Internationally Renowned Strategic Technology
Consultant, Programmer, Author and Speaker
This week, Stephen Ibaraki, I.S.P., has an
exclusive interview with the internationally renowned developer, speaker, and
author, Harold Davis.
Harold Davis is a strategic technology
consultant, hands-on programmer, and the author of many well-known books. He
has been a popular speaker at trade shows and conventions, giving presentations
on topics ranging from digital photography through wireless networking, web
services, and programming methodologies.
His books on programming and technology
topics include: Absolute Beginner’s Guide to Wi-Fi (Que); Learn How to Program
Using Any Web Browser (Apress); Red Hat Linux 9: Visual QuickPro Guide
(Peachpit Press); Visual Basic .NET: Visual QuickStart Guide (Peachpit Press);
Programming C# .NET (Sybex); Programming Visual Basic.NET (Sybex); The Wi-Fi
Experience: Wireless Networking with 802.11b (Que); Visual Basic 6: Visual
QuickStart Guide (Peachpit Press); Red Hat Linux 6: Visual QuickPro Guide
(Peachpit Press); Visual Basic 6 Secrets (IDG Books); Visual Basic 5 Secrets
(IDG Books); Visual Basic 4 Secrets (IDG Books); Web Developer's Secrets (IDG
Books); and Delphi Power Toolkit (Ventana).
Harold has served as a technology
consultant for many important businesses, including investment funds,
technology companies, and Fortune 500 corporations. In recent years, he has
been Vice President of Strategic Development at YellowGiant Corporation, a
company providing infrastructure for Internet marketing; Chief Technology
Officer at a CRM analytics startup; a Technical Director at Vignette
Corporation, a leader in customer-centric content management; and a Principal
in the enterprise consulting practice at Informix Software, a leading database
company. Harold’s work at Informix focused on the CRM and EAI needs of major Informix
customers, including Sprint, United Airlines, and Wells Fargo.
Having started programming at an early age,
Harold has worked in many languages and environments, and been lead programmer
and/or architect in projects for many corporations, including Chase Manhattan
Bank, Nike, and Viacom. His private enterprise consulting work has ranged from
the highly technical to strategic market positioning for clients that have
included BEA Systems, IBM, and Microsoft.
He has earned a Bachelors Degree in Computer
Science and Mathematics from New
York University and a J.D. from Rutgers Law School, where he was a member of the law review.
Q: Harold, what a remarkable history in
software development and high-level consulting; we are very fortunate to have you
with us. Thank you!
A: It’s good to be here. Thank you!
Q: How did you get your start in computing?
Detail the many lessons you have learned.
A: My Dad was an early computer scientist.
He was perhaps better with computers than kids. When I was eight or nine, in an
effort at automated childcare, he sat me down in front of a computer, and
taught me how to program it. Mind you, this was no desktop PC, what I recall
was a teletype terminal probably connected to some kind of mainframe. I learned
how to program it, and have been programming ever since.
Being involved with computers and
technology, I am constantly learning things. That’s one thing I like about my
work. Perhaps the most important overall lesson I’ve learned as a technology
author and consultant is that change is constant. You have to be prepared for
conditions to change and also for the intellectual constructs that you use to
solve problems to change. If you hang on to a static way of looking at things,
then you miss the best solutions.
Q: Please share two surprising experiences.
A: People don’t always see the relevance,
but I believe that one’s life experiences have a great deal to do with how
successful a software engineer (or technologist one is). My adventures in the
wilderness have been very formative for me. Once I got dropped off by bush
plane in the Brooks Range of northern Alaska. I walked out to an Inuit village many days later, seeing no one
the whole while. I was surprised to be alive.
I am always surprised (as I’ve seen at a
number of consulting engagements) when internal politics make it more difficult
(if not impossible) to accomplish the goals of a project.
Q: Can you share with us two humorous
A: I used to be thrown into consulting
situations a lot where there was some big snafu that they needed me to fix.
This wasn’t so much about long-term strategic thinking as about short term
fixes, or “bandaids.”
One time, I was called to help a company
whose inventory system had broken down. This was a mission critical application
for them. It turned out that they had written it themselves. There was a code
listing, I think in C, tens of thousands more or less undocumented lines of
code, and these people are jumping up and down wanting to know why their line
of business application isn’t working. I asked the VP in charge, “Well, why
don’t you contact the author of the code.” Of course, someone who knew it would
be much more likely to be able to fix it than me. She said, “I can’t. He’s
What turned out, as some of the IT people
told me, is that the chief author of the code had been married to the VP, and
they had an acrimonious divorce, which is why she couldn’t call him. I still
find this funny, in a sort of sad way. I suppose the moral is: never marry your
programmer, or at least never divorce him. PS, I did get the system working.
I was really amused the first day I showed
up for work at Informix Software, then a big database company headquartered in Menlo Park in Silicon Valley. One of my
photographic posters was hanging up prominently. I told my manager about it,
and he wouldn’t believe me. I think he started to believe me when we went up to
the piece and I showed him my name on it. “Of course,” he mused in an
undertone, “there could be two Harold Davises!” Was it so unbelievable that a
programmer type could also create photographic art?
Q: Pass on some important lessons from your
Bachelors Degree in Computer Science and Mathematics from New York University.
A: Abstract thinking matters. Programmers
and IT workers tend to be very focused on practical results. This makes sense,
because we are judged (and paid) on the basis of what our code accomplishes in
a reliable and repeatable way in the real world. But programming, and creating
software systems, inherently makes use of intellectual constructs, so the
ability to view your work from an abstract and theoretical fashion often makes
for better programs.
Q: What prompted you to earn a J.D. from Rutgers Law School and how
do you make use of this knowledge?
A: Good question! I must have been out of
my mind. I think after the formal training in math and the work as a
programmer, I wanted to do something a little more people oriented, which is
why I primarily focused on litigation. My wife sometimes says, “Thank you for
going to law school for both of us.” Law school does teach an interesting, and
sometimes rigorous, way to approach problems in the world. Legal training has
been very helpful with some of the problems that have come up in my consulting
and software career. I also got a great start on learning about intellectual
property, and the mechanisms for protecting it, and for understanding what can
(and cannot) be protected.
Q: Share some of your experiences when you
were a member of the law review.
A: For me, law review was about legal
research tools, and learning the syntax of legal writing. I’ve come to believe
that much of life is about syntax, anyhow. Certainly, if you understand syntax,
you are a great deal of the way towards writing software. So law review fit
right into my world view.
Q: What valuable experiences can you share
from your speaking engagements?
A: Be as prepared as you can be and then
expect things to go wrong. For example, maybe your slides won’t project. So be
flexible. The audience is with you, and they are yours to lose. If you are
confident in yourself, and honest with the audience, they will help you over
any rough patches.
Q: What important lessons have you learned
from each of these roles?
A: 1) Vice President of Strategic Development
at YellowGiant Corporation:
It’s hard to hit a homerun when your
industry (in YellowGiant’s case, telecom services during the 2000-2001 telecom
meltdown) is imploding.
2) Chief Technology Officer at a CRM
The role of a CTO (Chief Technology
Officer) is to build a team, not to build the code. Also, the CTO must keep the
other players honest, in the sense that the goals about what can be built must
3) Technical Director at Vignette
It is absolutely important to approach any
consulting engagement from a position of complete integrity.
4) Principal in the enterprise consulting
practice at Informix Software:
A company can have the best software in a
category and still fail if it is not world class at marketing.
Q: What tips can you provide about CRM and
EAI based upon your experiences with Sprint, United Airlines, and Wells Fargo?
A: Automation a la CRM (customer
relationship management) rarely works well when the basic mechanisms for
dealing with people are not already in place. These mechanisms have to treat
people with respect. EAI (enterprise application integration) works much more
easily if the vendors of the products being integrated cooperate in the
Q: Describe your work with Chase Manhattan
Bank, Nike, Viacom, BEA Systems, IBM, and Microsoft and pass on your top tips
from these experiences.
A: My experience with enterprise clients
has been hugely varied, ranging from software development projects related to
international trading, digital image management, and much more. I’ve also been
asked to help strategically position products in relationship to the
competition (and to scope out whom in fact is the competition). The details of
my assignments with most major customers are governed by (NDAs) non-disclosure
agreements, so I can’t really go into detail here.
Q: Describe your current role and major projects?
A: I am currently an independent
professional writer and strategic technology consultant. I recently completed a
book about wireless networking, a DVD training course about C# programming, and
a whitepaper to help launch a networking startup.
Q: Share your top five tips in the following areas:
A: Digital photography:
1) You can take all the pictures you want
without the expense of film.
to “touch up” your photos in Photoshop.
3) When using digital cameras, you need to consider the delay while the
image is written to storage (many pictures are “just missed” because of this
4) Remember to consider depth of field in
your photos, and set the aperture manually if necessary.
5) Photography is now one part camera, and
one part software.
1) Be aware of security issues.
2) Turn encryption on for SOHO wireless networks.
3) If possible, set the SSID not to
4) See how many of your neighbors are
broadcasting without protection!
5) Have fun! Surf from your deck, swimming
pool, or on the beach!
Q: What prompted you to start writing?
A: People asked me how I did things (take
pictures, design posters, write software, etc.) so many times that I figured I
better just write it down to save time and to be useful.
Q: As an experienced writer, please share
your most valuable writing tips.
A: People write the way they talk. If you get
blocked, try “talking” to an imaginary friend, and write down what you are
Speaking of “blocked,” as a professional
writer I try to avoid wasting my time. As a professional, I’m mindful of Dr.
Johnson’s dictum, “Only a blockhead ever wrote except for money.”
Q: Provide your viewpoints on the major
technologies today and where you see them in the future. For example: XML, UML,
Web services, the Internet, Java vs C#, VB, C++, and other ones that you may
wish to comment on.
A: I think that business customers will
continue to demand increased interoperability of systems, hence the continued
interest in technologies such as XML and Web services. From a fairly short-term
viewpoint, I see a great interest in the C# programming language and the .Net
framework. I think this technology (and development environment) is fairly sure
to win a substantial portion of the hearts and minds of software developers.
Q: What are your latest works and why
should our readers study them? What differentiates them from others in the
market? Please share some tips from each.
A: I just finished “Absolute Beginner’s
Guide to Wireless Networking and Wi-Fi” for Que. I think this is really the
only book that tells novices how to get on the road with a Wi-Fi computer, how
to find hotspots, and also how to set up a home wireless network with very
little fuss, getting security right. From my book, here are five no-brainer
security tips for a SOHO wireless network:
1) Change the SSID from the default.
2) Set the SSID not to broadcast.
3) Implement WEP encryption.
4) Make sure all computers on your network
are running antivirus software with up-to-date virus definitions.
5) Change the default password for the
administrative application for your network’s wireless access point.
I recently created a training DVD called
“C# .Net on DVD.” It is available from the publisher, DV Press, and also on
Amazon. The DVD is a two-disc set that explains the .Net framework and the C#
language in modular lessons. On the DVD, I explain C# programming concepts
including types, classes, objects, class interfaces, collections, and events.
So essentially someone could use this DVD as a primer for understanding basic
programming concepts whether they wanted to program in C# or some other
language such as Java.
Q: Provide your predictions about the
evolution of hardware and software? Are there any areas we should be watching?
A: Camera phones are interesting. VoIP over
Wi-Fi is interesting. Telephony along with digital photography is about to be
built into everything.
Software development is hard. It needs to
get easier. Look for development tools that take some of the pain out of
complex software systems.
Q: Share your top ten study tips for learning
A: 1) Learn to think like a computer.
2) Practice using concrete projects that do
something that interests you.
3) Learn from your mistakes.
4) There usually is a smarter way than
5) Make sure you engineer short feedback
loops so you know what works (and what doesn’t).
6) If you understand the concepts of programming,
you can always look up the syntax.
7) Write code that is self documenting.
8) If there is a problem, consider boundary
and one-off errors.
9) Create systems that mimic the real
10) Harness the power of objects and OOP.
Q: What are the ten most compelling issues
facing technology professionals today and in the future? How can they be
A: 1) The commoditization of technology
professionals is a big problem.
2) Outsourcing and other trends mean that
IT workers are considered fungible.
3) Programming is an act of creative
4) Education in this country is not good
5) We must put resources into education in
the communities that host software companies.
6) We must nurture programmers as creative
professionals, not cogs in a mill.
7) It’s worth working on big problems.
8) Every college graduate should understand
the basics of computer programming.
9) There should be universal health
insurance. Employee-driven health benefits are a crazy way to go, and send IT
workers into jobs that don’t really suit them.
10) If companies regard IT workers as
fungible and disposable, they should expect IT professionals to feel the same
way about the companies they work for.
Q: What are the best resources for
technology and business professionals.
A: It’s hard to beat Google used effectively.
What a great reference tool!
Q: What future books can we expect from
A: I am working on another book about
wireless networking. I expect to be writing about the next iteration of
Microsoft’s Visual Studio development tool, and (longer run) to be writing
about object-oriented programming and other development methodologies.
Q: What kind of computer setup do you have?
A: I have about a dozen computers in my
house running Windows (XP, 2000, 98), Linux and Mac OS X. My network uses both
wires and wireless.
Q: If you had to do it all over again….?
A: I suspect I might have delved further
into economics and econometrics. I’m interested in software modeling of
Q: What drives you to do what you do?
don’t like to be bored, and I like communicating to help people.
Q: How do you keep up with all the changes?
A: I go to conferences, read a great deal
online and off, and talk to people. Most of all, my assignments help to keep me
current. There is constant change. Fortunately, I am a quick learner.
Q: If you were doing this interview, what
five questions would you ask of someone in your position and what would be your
A: Q1: What will desktop software be like
25 years from now?
A1: Computers are still much too difficult
for the average person to use. This has to get easier. Computers have to be
able to better anticipate what we are trying to do, and to retrieve the
information we need (often from our own computers!) without us being SQL
experts. It’s always hard to predict the future, because by definition it
requires a leap from where one is now. But I’d suppose that in 25 years great
strides will have been made towards natural language and speech processing, and
towards the introduction of a truly intelligent adaptive engine on the desktop.
Q2: Will the open source movement survive
A2: Absolutely. Having open peer review of
code is a great idea. That said, there is also a place for companies to develop
their own product in a closed, conventional fashion. There is no right or wrong
here, or moral imperative. Whether I would use open source or not would depend
on my business needs. It is often hard to beat the price, but sometimes a fair
amount of expertise is required.
Q3: What will be the next major movement in software development?
A3: We’ve seen OOP (object-oriented
programming) which is now old hat (and received wisdom) and extreme programming
(a development methodology). Recently, we’ve also seen extreme outsourcing,
which is essentially the idea that programmers are replaceable cogs in an
industrial system. I expect to see a counter reaction to this last trend, and
the revival of the notion of the programmer as an artisan, highly skilled
craftsperson, and a creative individual. These kinds of programmers,
particularly when working within the discipline of an OOP framework, and as
part of a team, produce code of the best quality.
Q4: Who is your ideal consulting client?
A4: They know what they want to get done.
They have a realistic idea of what can be done and what can’t, and a timetable.
They are prepared to spend for appropriate resources. They are interested in
quality results. There is no time to waste on internal political bickering.
There is great motivation and optimism, tempered with realism about the way
technology and the business world work.
Q5: Why do you write?
A5: Writing is a way to examine the world
and learn about things. To clearly explain in writing how a technology works,
you must first understand the technology.
Q: Do you have any more comments to add?
A: Inexpensive technologies that are good
enough will always get better and win over costly technologies that may (in
some ways) be better. So always bet on widely used, inexpensive technologies.
Some examples: the PC (as opposed to main frames), Wi-Fi, and probably Linux.
In software development, there is a saying
that you can have software done quickly, well, or cheaply. It is unusual to get
two of the three, and rare to get all at once. Consider which of the three is
most important to your business goals, and focus your project management
efforts on that one.
Q: Harold, thank you again for your time,
and consideration in doing this interview.
A: Stephen, the pleasure is all mine.