needed to solve a business problem before we start building that solution. Those are the rules everybody else plays by. We can sing "software is different" 'til the cows come home. But in the end, the rules don't change, the players do. Luckily, there is hope on the horizon. A new generation of prototyping tools is allowing nonprogrammers to very rapidly produce highly functional prototypes. Functioning prototypes can serve in the place of most of the voluminous requirements documents we've previously used to show management that we knew enough to start coding. Those prototypes also give the developers enough knowledge to predict how many pieces they'll need to build to complete the whole thing, so we'll have the estimates management requires. Now here's a plan that could work. The end-user can see what they're going to get, bang on it to make sure it'll do what they need, and get back to their day job. Management has the estimates and assurances they need, so they're comfortable funding the effort. And the programmers can build the thing the XP way, if that's what they want. Win-win-win.
Why do I care? After all, my position is that XP, if it does not successfully address these fundamental problems, will fail of its own accord. The reason I care, is this: About two million of America's best jobs are on the line. Software development has failed American business repeatedly, consistently. First there were the ERP debacles of the 1990s. Then Y2K. Then Internet mania. Now XP says to the executive, "The problem is, you've been going about this all wrong." I wonder how much more the execs will take before they say, "You know, you're right. We have been going about this all wrong." The Indian, Russian, Chinese, and other outsourcing firms have been saying to these same execs, "We understand what you want, and you can have it. And you can have it for 40 percent less." Maybe XP is just what our foreign competitors have been waiting for.