Information Technology Reference
In-Depth Information
8.6.1 What Is Agile?
Agile is a collection of software development principles that originated in an unusual sum-
mit of representatives from various nontraditional software practices such as Extreme Pro-
gramming, Scrum, and Pragmatic Programming, to name a few. They called themselves
“The Agile Alliance” and created the highly influential “Agile Manifesto” ( Beck et al.
2001 ) .
The Agile Manifesto
• Individuals and interactions over processes and tools
• Working code over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
As a coda to the Agile Manifesto, the authors added, “While there is value in the items on
the right, we value the items on the left more.” Agile practices stress direct connections
between the business objectives and the development team. Developers work closely with
product owners to build software that meets specific business objectives. The waterfall
method of development is bypassed in favor of collaborative methods such as pair pro-
gramming, where two developers work on code together, or scrum, where a whole team
commits to “sprints” of one to four weeks working on a prioritized backlog of features.
Plain statements called “user stories” provide requirements for software development—for
example, “As a bank customer, I want to receive an electronic bill for my credit card state-
ment” or “As a photo site user, I want to crop and edit pictures in my web browser.”
In Agile development, waterfall methods are also bypassed with respect to testing and
integration. Unit and integration tests are created with new feature code, and testing is ap-
plied automatically during the build process. Often the only documentation for code re-
leases is the user stories that provided the initial requirements, in strong contrast to water-
fall's functional specifications and requirements documents. The user stories come out of
a prioritized backlog of feature stories maintained by the product owner. By keeping a pri-
oritized list that can change with business needs, the agility of the development process is
maintainedanddevelopmentcanrespondtochangingbusinessneedseasilywithoutwasted
effort and rework.
DevOps is the application of Agile methodology to system administration.
Search WWH ::




Custom Search