The Economist writes:
Three main trends are shaping the future of software development and giving hope to those who oversee big software projects. The first is awareness of the need to pay greater attention to the lifecycle of a piece of software, from the initial setting of requirements to ongoing implementation. The second trend is towards automating the testing of software. The NIST study estimates that $22.2 billion (more than one-third) of the cost of software failures could be eliminated simply by improved testing. The third trend is the emergence of open-source code, something embraced even by Microsoft, which is often seen by its many critics as the would-be nemesis of the open-source movement.
The three big industry trendslifecycle management, testing and open sourcecome together in a movement known as agile programming…The main principle of agile programming is that developers must talk to each other often, and that they must talk to the business people setting requirements equally often. Combine this with a short time-scaleideally agile proponents seek to deliver a working bit of software every few weeksand you have an accelerated, informal version of the iterative model. This means that no project can go on for years and produce nothinga fatally flawed project will be caught sooner.