If I have seen further it is only by standing on the shoulders of giants. – Sir Isaac Newton
All technical innovation has come from building on what came before, by using the building blocks provided by engineers who came before us. While its easy to recognize this is true for big innovations, engineers forget this principle way too often in their daily work.
[If you don’t have the time to read the rest of this post, then skip straight to this article about a disastrous example — Netscape v5.0 — of what happens when engineers and managers decide to build from scratch instead of building on what came before. I consider it required reading for all engineers working for me.]
A Shortcoming of Engineering Education?
Consider for a minute how engineering education teaches students to approach problems:
- Professors always go back to first principles (and rightly so).
- Problem sets force students to start their analysis from the ground up…and usually by themselves.
- Copying others is considered cheating.
- Students must finish all the coursework within one semester, which prevents them from building up a “toolkit” of solutions for solving more complex problems.
- Project management and risk management are rarely taught.
Engineers are taught to reference the textbook when trying to solve a difficult problem; they are not taught where to look on the web for a pre-existing solution since that would be considered cheating. They’re definitely not taught the social skills necessary to cold-call a subject-matter expert to pick his brain. (To read more about this, see my post from last week on Emotional Intelligence.)
Fortunately, some professors are starting to change their teaching methods to account for the wealth of information on the web…and to teach students to solve problems as they would in the “real world.” This is easiest in computer science, where a solution can simply be copy-and-pasted, as opposed to disciplines that involve hardware.
For example, computer science Professor Adrien Treuille at Carnegie Mellon encourages his students to use code available for free online in solving their problem sets, as long as they cite the source. He explained to me, “This approach allows students to develop much more complex and interesting programs than they could if everything were coded from scratch, and they become familiar with the coding style…and the best sources for free code…that is typically used in industry.”
Information Asymmetry in Engineering
In addition to their academic training, “asymmetric information” also entices engineers to start from scratch, even when an existing solution is available. Let me explain what I mean by “asymmetric information” in this context…
There are usually several ways to solve a problem, each with its own advantages and disadvantages. Frequently the choice is between modifying an existing implementation versus building a new one from scratch.
The Existing Solution (warts and all): If an engineer has an existing solution in front of him (or her), all the hacks, bugs, and shortcomings are totally apparent. Documentation is frequently lacking, so reverse-engineering is necessary. If multiple people have worked on the project, the solution is frequently a messy mix of various coding and design styles.
Building It from Scratch: In contrast, when the engineer considers a new, fresh approach, the advantages are much more apparent than the disadvantages. The engineer sees the final solution in his mind’s eye as a gleaming, flawless example of engineering perfection. Of course, as the saying goes, “The devil is in the details.” Without the opportunity to work through the details on a new solution, the devil, Murphy’s Law, and shortcuts necessitated by project deadlines have not yet impacted the work.
For these reasons — the apparent shortcomings of an existing solution and the undiscovered shortcomings of a brand new implementation — engineers are tempted to scrap an existing solution in favor of doing it their (presumably better) way.
As I mentioned earlier, the best and most disastrous example I’ve seen of this is the re-coding of the v5.0 Netscape browser. I consider this article REQUIRED READING for all engineers, regardless of their specialty. Please…think twice before you start rebuilding something from scratch!
On the Shoulders of Giants
There is a great scene in the movie Flash of Genius. Greg Kinnear plays Dr. Robert Kearns, the inventor of the intermittent windshield wiper. The scene shows him in a courtroom, cross-examining an expert witness called by the defendant, Ford Motor Company, which stole his invention. The expert had just testified that since Dr. Kearns did not invent the capacitor, the transistor, or the variable resistor and just bought them out of a catalog, that he did not create anything new.
Dr. Kearns starts his cross-examination by reading from A Tale of Two Cities by Charles Dickens: “It was the best of times, it was the worst of times. It was the age of wisdom, it was the age of foolishness.”
Kearns asks the expert witness, “Did Charles Dickens create the word ‘it’?”
“No, he didn’t create that word,”replied the witness.
“Did he create the word ‘was’?”
Kearns continues, “I’ve got a dictionary here. I haven’t checked, but I would guess that every word that’s in this book can be found in this dictionary. Do you agree that there’s not, probably, a single new word in this book? All Charles Dickens did was arrange them into a new pattern, isn’t that right?”
“But Dickens did create something new, didn’t he? By using words. The only tools that were available to him. Just as almost all inventors in history have had to use the tools that were available to them. Telephones, space satellites all of these were made from parts that already existed, correct, Professor? Parts that you might buy out of a catalog.”
“Technically that’s true, yes, but that does…”
“No further questions, your honor.”
Don’t invent a new language and write a new dictionary before starting your work. Even though the English language is an imperfect work-in-progress, it is still used successfully every day to communicate, and sometimes even to create beauty and inspiration. Use the tools, resources, and existing solutions you have available to you, even if they’re not perfect…and build on the shoulders of giants.
Image credit: The original source and artist are unknown to me, otherwise I would provide credit. Link to Google search results for this image.
P.S. While people are listening, I want to publicly shame 😉 Mark Schultz for skipping out on the Hightstown Triathlon last weekend. No excuses in 2012…start your swim training now so nobody has reason to worry about you drowning! 🙂