Introduction to agile software development

The days when a piece of software could be shipped and go without updates for several years are gone (if they were ever here to begin with). Change and adaptability are at the heart of development today, in a process known as iterative and Incremental development. Agile software development is a derivation of that processone that recognizes the need of businesses to continuously evolve, and for their software solutions to continuously evolve with them. This term was introduced in the Agile Manifesto, published by the Agile Alliance of software developers in 2001. The Manifesto reads:”We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items on the right, we value the items on the left more.”Your company may already be following the tenets of agile software development without ever having heard its name. The basic principles of teamwork, collaboration, and adaptability are becoming more integrated into modern businesses. AGS divides tasks into small iterations, or timeboxes, that last anywhere from one week to one month, in general. Within this timeline, an entire software development cycle takes place, starting with minimal planning and working through analysis, design, coding, and various testing before being demonstrated to the customer. Even if it takes several iterations before the software is complete, proponents feel that this style of development helps businesses move faster and stay closer to the cutting edge.An added benefit of AGS is the new responsibilities that team members take on. While working within their particular strengths, team members often also work outside of their traditional roles, allowing each worker to be a part of the fabled “bigger picture.”AGS is not always opposed to careful planningthis planning just takes place over a shorter period of time, with the caveat that unforeseen problems will be able to be taken care of during the next iteration. The main opposites to AGS are predictive methods, which attempt to carefully plan out the future and foresee all possible challenges, and formal methods, in which developers rely on computer science theory to rigorously eliminate all errors.