In literary terms, the word “agile” means somebody who can move rapidly and effectively or somebody who can think and act rapidly and clearly. In business, “agile” is utilized for describing methods of planning and accomplishing work wherein it is understood that making changes as needed is an significant role of the job. Business “agility” implies that a company is consistently in a position to take account of the market changes.
In software development, the expression “agile” is adapted to signify “the ability to respond to changes − changes from Requirements, Technology and People.”
The Agile Manifesto was published by a group of software engineers in 2001, highlighting the significance of the development team, accommodating changing requirements and client involvement.
The Agile Manifesto is −
We are revealing better methods of developing software by doing it and helping other people do it. Through this work, we have come to value −
That is, while there is an incentive in the things on the right, we value the items on the left more.
Following are the characteristics of Agility −
Agility in Agile Software Development focuses on the culture of the entire team with multi-discipline, cross-functional teams that are engaged and selforganizing.
It encourages shared responsibility and accountability.
Facilitates effective communication and consistent collaboration.
The entire team approach avoids delays and wait times.
Frequent and continuous deliveries ensure quick feedback that in in turn enable the team align to the prerequisites.
Collaboration encourages consolidating different perspectives timely in execution, bug fixes and accommodating changes.
Progress is constant, sustainable, and predictable emphasizing transparency.
Early implementations of Agile methods incorporate Rational Unified Process, Scrum, Crystal Clear, Extreme Programming, Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (DSDM). These are now collectively referred to as the Agile methodologies, after the Agile manifesto was published in 2001.
In this study notes, we will get familiar with the Agile Methodology − Adaptive Software Development.
Adaptive Software Development is a move towards adaptive practices, leaving the deterministic practices in the context of complex systems and complex environments. Adaptive Software Development focuses on cooperation and learning as a method to build complex systems. It is evolved from the best practices of Rapid Application Development (RAD) and Evolutionary Life Cycles. Adaptive Software Development was then extended to incorporate adaptive methodologies for the management, with speculation replacing Planning.
Jim Highsmith published a book on Adaptive Software Development in 2000. In Highsmith’s words −
“Adaptive Software Development is cyclical like the evolutionary model, with the phase names Speculate, collaborate, learn reflecting the unpredictable realm of increasingly complex systems. Adaptive development goes further than its evolutionary heritage in two key ways. First, it explicitly replaces determinism with emergence. Second, it goes beyond a change in Life Cycle to a deeper change in management style.”