The Story So Far

"Code and fix." That was the way most business applications were developed in the mid-1960s. Two decades had passed since John von Neumann had suggested controlling computers with programs stored in memory instead of patch wires in 1945, and the prototype computer named Baby at The University of Manchester in England had successfully run the first stored program in 1948. But application development was still a pretty haphazard process.

Yes, there were high-level programming languages. Fortran was developed by John Backus at IBM starting in 1954, and IBM began selling Fortran compilers in 1957. Remington Rand Inc.'s Univac offered Grace Hopper's Flow-Matic language for business applications in the late 1950s, and that language became the basis for Cobol in 1959. And in 1964, IBM unveiled its "all-purpose" language, PL/I, which had elements of Fortran, Cobol and Algol.

Sabre Takes Off

But there was virtually no commercial software industry. Data processing departments had no choice but to build their own applications—and with few standards or best practices, building a large application was a costly, error-prone process. When Fort Worth, Texas-based American Airlines Inc. built the first version of its Sabre reservation system from 1960 to 1964, it required 400 man-years of effort at a development cost of almost $40 million.

That started to change in 1965, when Dutch researcher Edsger Dijkstra began publishing journal articles suggesting a more structured approach to programming. Other researchers proposed improved ways of planning and managing projects, and in 1970 W.W. Royce proposed the "waterfall" structure for dividing large projects into well-defined phases.

Structured programming got its first major test in the early 1970s, when a team of IBM programmers led by Harlan D. Mills wrote a computer system for The New York Times. The huge project was delivered on schedule and with a minimum of bugs—an astonishing accomplishment for the time.

And throughout the '70s, tools and techniques for software development came thick and fast: Tom DeMarco's structured design and analysis, Niklaus Wirth's Pascal, Larry Constantine's structured design, Clive Finkelstein's Information Engineering and many others. By 1982, researchers counted 48 different software development methodologies in use.

Meanwhile, the cost of computer hardware was dropping—and the demand for faster and cheaper application development was climbing. In 1962, before the improvements in software development, software was still only 20% of the cost of a typical computer system. By 1985, software was 80% of the cost—four times as much as the hardware.

That shift drove a demand in the late '80s for computer-aided software engineering (CASE) tools that would automate application development methodologies and, in theory, cut both schedules and bugs. But in most corporate data processing shops, '80s-era CASE would never catch on. Huge mainframe-based systems had already been built and maintained successfully for years by programmers who weren't about to let the computer—in the form of CASE tools—tell them what to do.

Enter: PCs and LANs

Meanwhile, PCs and their networks were arriving in large organizations, and with them the need to replace aging terminal-based applications with client/server versions. When Microsoft Corp. shipped Visual Basic in 1991, programmers' attention shifted to the graphical user interface on the desktop. And, with spreadsheets' ability to access corporate databases, developers were learning to focus on building connections instead of building everything from scratch.

The 1990s saw the buy-instead-of-build approach spread from the desktop to enterprise applications—just as the World Wide Web was suddenly creating the need for a new generation of custom-built Web programs for customers to use. Meanwhile, $1 trillion in resources was thrown at programming's most infamous fiasco, the Y2k problem.

Today, application development means wiring Web sites to packaged software and legacy systems, integrating Web services with existing applications—and working with ever-faster programming techniques with names like Extreme Programming, Crystal and Scrum.

And now, on with the story . . .


1945: John von Neumann suggests stored programs for the U.S. Army’s EDVAC project.

1948: University of Manchester researchers run first stored program on Baby, a prototype computer.

1952: Grace Hopper develops first compiler for Univac’s A-0 language.

1957: IBM begins selling Fortran.

1959: Cobol is standardized.
1952: Grace Hopper develops first compiler for Univac's A-0 language.
1952: Grace Hopper develops first compiler for Univac's A-0 language.

1964: First version of American Airlines’ Sabre reservation system completed at a cost of $40 million.

1970: W.W. Royce creates “waterfall” methodology for large projects.

1991: Microsoft ships Visual Basic 1.0.

1995: Sun Microsystems Inc. releases Java 1.0.

1997: Chrysler Corp. compensation system project is rescued using Extreme Programming practices.

1999-2000: The year 2000 date rollover problem requires expensive code fixes and raises public alarm. White House Y2k czar John Koskinen coordinates the government’s response.

Special Report

New Tools, New Choices

Stories in this report:

Copyright © 2002 IDG Communications, Inc.

7 inconvenient truths about the hybrid work trend
Shop Tech Products at Amazon