Software Development
SDWest 2004 / Show Daily / For complete show coverage, click here. /
Whoa, Nellie!
Grady Booch muses on software’s rise. One thing’s for certain: Development’s unstoppable, and it’s no pony ride.
By Rick Wayne
![]() Author and UML founder Grady Booch at SD West 2004. |
Booch contended that “Companies’ ability to compete is now less the ability to bend iron than the ability of their software teams to innovate,” but related a cautionary tale: The story of one executive who got locked inside his upscale car when only its operating software—not the vehicle—crashed. In fact, software has become so pervasive, Booch said, that it’s no longer the province of firms dedicated to its construction: “Software development becomes a core competency that businesses must have.”
Guess how many lines of code had been written since 1945, he asked. Two billion? “Low!” he barked. In fact, he said, some 800 billion lines of source code have been produced since the dawn of computing. “Old code never dies,” Booch said wryly. “You have to kill it.” So the key question, he said, since we’ve “invested trillions of dollars developing this stuff, [is] have we gotten the right return?”
With software development so crucial to success, Booch warned of roadblocks ahead. “What happens when Moore’s Law finally runs out of space? We software developers will have less running room.” Inefficient platforms and applications won’t be able to just “soak up increased performance.” To do it better, Booch said, we must be aware of the four primary factors driving project difficulty: Complexity (“We can’t eliminate it; we need to manage it”), process, teams and tools. Overall, he told the audience, we need to help “code warriors” achieve a more frictionless environment. “If we reduce the friction, we allow individual developers to do what they do best.” We’re not lacking for vision, he said, but the primary artifact developers produce is executable code, and the distance between vision and execution is very large. He asked the audience, “How much time do you actually spend developing code?” The highest answer offered was 40 percent; Booch said that industry-wide, developers spend only about 20 to 30 percent of their time editing code. “Some things are computer sciencey; we just haven’t invented the algorithms yet. But, by and large, what constrains most organizations has nothing to do with technology, but with the human side of the equation.”
Unsurprisingly, the longtime Rational mover-and-shaker opined that tools could play a large part in “helping the eyeballs of the individual developer.” But he cautioned against the search for silver bullets: “Software development has been, is and remains, hard. The entire history of software engineering is one of rising levels of abstraction; [but] it’s an engineering process, and chasing after a perfect solution is pointless.”
Booch took the audience on a “nostalgic tour of tools,” saying that the ideal environment is “sufficient, complete, resilient, internally consistent and simple. In many ways, we don’t need more technology—we just need [tools] to work in the first place.” The early tools, he said, focused on running programs on the naked hardware. The end users and the code warriors were one and the same, illustrating the primitive state of the art with the famous photograph of the fried moth that first inspired the term software bug. He talked about a computer history museum that’s in the process of collecting early software. “We have the source code for Gates’ first BASIC and MacPaint; at the next Rational users’ conference, we’re going to do an archeological dig and analyze that first BASIC,” he grinned.
In the near future, Booch said, the focus will be increasingly on distributed systems with many users, and development will be both geographically and temporally dispersed. New technologies on the horizon will help move us toward the “frictionless environment”: “Charles Simonyi is doing a home-run-out-of-the-park bet with a development environment that’s deeply, deeply semantic; [we’ll see] things like agents that look for dependencies, pervasive displays, telepresence—imagine doing development via telepresence! And what if a member of your development team wasn’t human?”
But ultimately, Booch warned puckishly, it’s still the developer that counts: “You guys are writing code that your grandkids are going to debug someday.”
—RW


