At XML Devcon in San Jose, Calif., last month, an attendee asked Ken Norths panel on the future of software development to comment on the continuing need to write ever more new code. Whats happened, he asked, to all the effort to make code more reusable during the past several decades?
One member of the panel—which I also served on—observed that a huge amount of code is reused every day, every time an HTML browser reformats a table to fit a resized window, every time a developer constructs a point-and-click interface by dragging components from a graphical palette onto a data entry form. But even that argument, I felt, doesnt answer the real question as to why so many developers are still needed.
"Look," I said, "when computers get cheaper, we dont pay less for the same number of computers; we buy a much larger number. No one asks, Whats wrong with computer makers, that we need so many more? We buy more to do more."
In the same way, I continued, "you have to look at the marginal decision to write a custom application. As developer productivity grows, more custom applications become economically attractive to write—and more get written."
In short, I said, "what we have is not a failure to achieve reuse. What we have is a triumph of productivity."
I suggest that developers are tired of being told that theres something wrong with the way they do their jobs. Plain-vanilla tasks, such as flowing a Web page into variously sized browser windows, are in fact being done by reusable code.
Competitive advantage is created by growing amounts of custom code because theres a growing return on development time. That growth propels ever more projects across the threshold of being worth doing. A "scarcity" of developers means that the market has been cleared—the very definition of efficiency.