It’s a software world after all
We took the family on a Disney Cruise, and a famous Disney jingle is still ringing in my head. It seems appropriate to modify it a bit for the title of this month’s column, since on the plane and in other quiet times during my trip, I read the book: Dreaming in Code, by Scott Rosenberg. I recommend this book because it helps explain something that has become a major part of our lives, particularly our technical lives. Interestingly, the book has its own Web site with a sneak preview of the book and reviews and comments from readers.
Walter S. Ciciora,
Industry Expert on
Cable & Consumer
It seems almost everything runs on software these days. A quote from the book provides a sobering viewpoint: “Never in history have we depended so completely on a product that so few know how to make well.” The cable set-top box is no exception. It is important for cable technologists to understand software, its development, and the problems and benefits it brings to our business. It is also critical that management comprehends the challenges of software in our business. As we add more complex set-top boxes, more intricate systems, and are forced to allow the consumer electronics industry to build “compatible” products to interface with our systems, the challenges will multiply. Try to imagine downloadable software security systems. With all of this, software conflicts, errors, and system crashes will be a part of our life.
The book tells the story of a famous software pioneer, Mitchell Kapor, who formed a company to develop a software application that would be a powerful personal information manager (PIM) including features not available elsewhere. Mitch Kapor is famous for commercializing the first spreadsheet program, Lotus 123, which was the “killer app” that drove early personal computer acceptance. (The first spreadsheet developed by Dan Bricklan, called VisiCalc, was quickly eclipsed by Lotus 123.)
Kapor’s project is called “Chandler,” somewhat arbitrarily after the name of a favorite fiction writer. The author of Dreaming In Code was invited to follow and report on the project’s development and its people. Unfortunately, the book’s publisher needed the book for 2007 publication before the software project was complete. No one expected the software project to take this long!
The book’s subtitle hints at the story: “Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software.” Even these highly talented and experienced computer engineers were surprised at the difficulty and scope of the project.
In the middle of my career, I supervised a group of software engineers and could well relate to the stories in the book. In discussions with others, particularly non-technical management, I had problems relating the challenges of software development. Management has great difficulty comprehending why software development takes so long and is so expensive. Management has major issues over software engineers’ inability to accurately predict how long it will take, how much it will cost and why it almost always takes longer, often much longer, than predicted. Brook’s Law, named after an IBM programmer, states that “adding manpower to a late software project makes it later.” I wish I had this book to help me in my explanations (particularly at budget time). It is interesting that the challenges are still the same as were faced two decades ago.
Spending a little time on the Web reveals that Windows XP has about 40 million lines of code, the new Windows Vista has around 50 million lines, and there are more than 2,000 software engineers on the project. This is a bit hard to visualize. To help picture this, consider that my second edition book, Modern Cable Television Technology, has about 45 lines per page and has 1,053 pages. That comes to 47,385 lines. Of course, most pages have a figure, equation or graphics of some kind, so to make the numbers easier, let’s call it 40,000 lines. So it would take 1,000 copies of the book to hold 40 million lines. At more than four pounds per book, that would come to more than two tons. All of that is on the hard drive of your PC, along with application programs and data. It is amazing that something like that can ever work!
Cable set-top boxes have much fewer lines of code, but they also have fewer software engineers developing the code.
Dreaming In Code includes some fascinating descriptions of software engineers, their personal traits and behaviors, and their work habits. The really surprising news is that even after all the years of software development, there is no good measure for software engineering productivity and no good way to tell a great software engineer from a merely good one. Almost any measure proposed, such as lines of code per month, fails to provide a true calibration.
I have to close with an engineer joke which came from my son Steve (an engineer): How do you tell an extraverted engineer? Answer: he stares at your shoes while talking to you, rather than his shoes. Sorry about that. It’s not completely true.