In February, 2001, a group of software development professionals called the Agile Alliance created a manifesto for Agile software development. This conference established the foundation for a variety of significant changes in how software was developed, but why was this necessary?
Traditional software development models were focused around a rigid contract which both the customer and the development team would agree on at an early stage of the development process. While this did clearly establish what the system was going to do and when it was to be implemented, it also created a rigid framework which suffocated the evolution of the system as construction progressed.
Another problem which faced software development professionals prior to the establishment of Agile development was customers not knowing exactly what they wanted, and also not being able to articulate precisely their needs. This was worsened by the strict adherence to the contract, which invariably ended up being vague and unclear.
Agile allows development teams to work more closely with their clients in order to overcome the inherent ambiguity of the written description of systems in contracts, and to tailor their system to the needs of the end user. In the next blog post, I will outline how this is achieved.