Canadian Information Processing Society (CIPS)
 
 

CIPS CONNECTIONS

INTERVIEWS by STEPHEN IBARAKI, FCIPS, I.S.P., ITCP, MVP, DF/NPA, CNP

Wide Regarded, Internationally Renowned Strategic Technology Consultant, Programmer, Author and Speaker

This week, Stephen Ibaraki 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.

Discussion:

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 stories?

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 dead.”

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 analytics startup:

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 be realistic.

3) Technical Director at Vignette Corporation:

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 process.

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.
2)  Learn 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 delay).
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.

Wireless networking:

1) Be aware of security issues.
2) Turn encryption on for SOHO wireless networks.
3) If possible, set the SSID not to broadcast.
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 “saying.”

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 programming?

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 brute force.
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 world.
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 resolved?

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 imagination.
4) Education in this country is not good enough.
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 you?

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 economic events.

Q: What drives you to do what you do?

A:  I 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 answers?

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 and prosper?
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.