OK, software is hard, but is it that hard? Guess that online, real-time, collaborative, refrigerator-restocks-itself future will have to wait, huh?
"Dying is easy. Comedy is hard." That apocryphal phrase is usually ascribed to an actor on his deathbed, commenting on the relative difficulty of passing over versus generating yuks. Allow me to paraphrase it in a way that's more appropriate to our industry: Hardware is easy. Software is hard.
That occurs to me after reading a new book (OK, halfway finished) called Dreaming In Code: Two Dozen Programmers, Three Years, 4,732 Bugs, And One Quest For Transcendent Software (Crown Publishing, 2007). The book is about a software project called Chandler, the brainchild of Mitch Kapor, co-founder of Lotus Development. Kapor launched Chandler in 2002 as an ambitious, open-source-style effort to create a personal information organizer. It's still being worked on, which speaks to the book's real subject: Why big software projects so often fail.
Dreaming In Code is a direct descendent of Tracy Kidder's The Soul Of A New Machine (Little Brown, 1981), which is about Data General engineers in the late 1970s rushing to create that company's competitive answer to the DEC VAX, the machine that defined the minicomputer market. It's a dramatic and inspiring story, and Soul helped humanize a computer industry the general public was only then becoming aware of. I'd also compare Code to a less familiar, but no less intriguing and entertaining, book, Showstopper! (Free Press, 1994), by G. Pascal Zachary, about Microsoft's almost superhuman effort in the early 1990s to create the Windows NT operating system.
That was then; this is now. Hardware is a commodity, dominated by companies with the best manufacturing and distribution systems, not the most innovative engineers. And nobody looks at software projects as heroic anymore. I'm grossly oversimplifying, but you get the picture.
The timing of Dreaming In Code isn't accidental, coming as it does around the introduction of Vista, Microsoft's latest version of Windows. Like NT, Vista is a major upgrade of the Windows franchise. However, Vista hasn't generated anywhere near the feverish excitement NT did. Case in point: Walt Mossberg's review in the Wall Street Journal last week was headlined: "Vista: Worthy, Largely Unexciting." It would be foolish to think of Vista as a failure; Microsoft will sell millions of copies. But it's a lowered-expectations version of the original, ambitious software project known for years as Longhorn.
Why do software projects so often fail, or fail to measure up? I e-mailed that question to people who've been in the software industry a long time.
"Technology projects very seldom fail for technology reasons," says Gary Baney, CEO of Boundless Flight, an app dev firm. "By far the highest percentage of failures results from human communication issues." Ravindra Koka, co-founder and CTO of Seec, says technical problems do play a part. "There are some problems that are not solvable, and typically you do not know this until you have started the detailed design and development," he says. And engineers with unrealistic architectural ambitions don't help, says Gabriel Torok, CEO of Preemptive Solutions. "'Good enough' is an appropriate paradigm in some cases," he says in his e-mail.
It's an important discussion, especially in light of the increasing dependence we're putting on software to power our health care, intelligence, law enforcement, and security systems. OK, software is hard, but it's not impossible. Is it?
It's not as hard as a finding a good parking space. Or an industry tip. Send one to [email protected], or phone 516-562-5236.
To discuss this column with other readers, please visit John Soat's forum.
To find out more about John Soat, please visit his page.
We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Cybersecurity Strategies for the Digital EraAt its core, digital business relies on strong security practices. In addition, leveraging security intelligence and integrating security with operations and developer teams can help organizations push the boundaries of innovation.