Marco Papacchini


«It is the ability to respond to change that often determines the success or failure of a software project. When we build plans, we need to make sure that our plans are flexible and ready to adapt to changes in the business and technology»
(Robert C. Martin)

The development of high-quality software in time and within budget is a very complex task. Probably there are aspects which aren't adequately considered and which are very important in the development of every complex application. Traditional software development processes are too heavy and involved: they are predictive and have a lot of rules, practises, documents and up-front plans. But the real nature of software development can be very different.

Today business moves too quickly to write requirements rigidly up-front. In a context of frequently changing requirements software development is analogous to the exploration of an unknown territory: it makes no sense to up-front plan fixed legs for the journey, because we don't know the territory, its morphology and obstacles. Every detailed plan would be only a guess. At the contrary, the right choice is to use effective bearings techniques to frequently correct the course.

Agile Methodologies introduce in software development exactly this kind of approach. They are not predictive, but rather they are adaptive, they embrace change trying to adapt software to frequent changes. Customers stay in strong contact with the development team; they give frequent feedback, which is very useful for course corrections. Moreover, this eliminates risk as early as possible and it is a key factor in achieving deadlines within budget.

© Copyright Marco Papacchini