Developing Software Is No Picnic
LAST month Cambridge-based Lotus Development Corporation began shipping the long-awaited Release 3.0 of its popular 1-2-3 electronic spreadsheet program - more than a year later than the company had originally promised. Lotus is not alone in underestimating the time required to finish a major software undertaking. In 1985, Microsoft had similar problems with a program called Windows, which was eventually shipped 14 months later than it was first promised.
Indeed, Ken Wash, executive director of the Software Publisher's Association (SPA), an industry trade group, says many companies have experienced delays of months or even a year in introducing new products or updates of old ones. There is even a term for announced products that are not ready for customer's hands: ``vaporware.''
A program that is late to market can represent lost sales for a company if customers buy a competitor's product. Alternatively, an announced-but-unavailable program can depress sales in an entire sector of the marketplace if customers decide to wait to see the new product before making their purchasing decisions.
Nevertheless, ``companies don't want to bring out buggy products,'' Mr. Wash says. ``When they come out with a new flagship product, a company's reputation is on the line.''
All of this translates into high stakes and added pressure in the microcomputer (desktop) software business, which had first-quarter 1989 sales of $661 million, up 12 percent from 1988, according to the SPA.
Finding those last bugs often takes a lot longer than expected.
``The old line is that the last 10 percent of a program takes 90 percent of the time,'' says Wash. And finishing that last 10 percent is getting harder, not easier, as programs grow more complex and have to work with new kinds of computers and printers every day, he adds.
A good way of measuring a program's complexity is the number of programmers it took to write the program, explains Ed Belove, Lotus's vice-president of corporate research and development.
The first version of Lotus 1-2-3 was a relatively simple program, most of it written by a single programmer, Jon Sachs, with four other programmers helping. But the latest version, 1-2-3 Release 3.0, added so many new features, such as the ability to represent three dimensional spreadsheets and to print spreadsheets sideways, that it was no longer possible for a single programmer to comprehend the scope of the entire undertaking, says Mr. Belove. This time it took 40 programmers.
``It's not that there is an individual to whom you can go to ask questions so much as [the one-programmer size] defines a level of complexity,'' he says.
``As [simple] programs get somewhat more complex, they take longer [to write],'' Belove adds. ``You add 10 percent more features - it takes 10 or 15 percent longer.''
But once programs pass the single-programmer point, the development process ``starts compounding: A program that is twice as complex takes four times as long to write.''
Managers at other companies agree. ``Software projects are indeed getting larger,'' says Robert Fraik, a system software product manager at Next Computers Inc. in California. ``As a result, we have some new challenges in managing scheduling. It's basically pushing some new frontiers.''
But others blame overzealous marketing departments for missed deadlines.
``Programs are later than forecast because the people doing the forecasting aren't the designers of the programs,'' says Len Tower Jr., a systems programmer at Boston University. ``This is often due to competitive pressures. Obviously, to have a program earlier is something that might win you a bid or get you a contract over your competitors.''