CSC/ECE 517 Fall 2012/ch2a 2w5 dp
Agile Software Development
Why Agile?
James Shore and Shane Warden <ref>Shore, James and Warden, Shane. The Art of Agile Development. O’Reilly Media, Inc., 2008, p. 4.</ref> state that the benefit for developers to follow a Agile software development process is to deliver successful products to the client or customer. He defines success into 3 types:
- Organizational
- Deliver value and decrease costs to increase return on investment.
- Technical
- Elegant and maintainable code is produced.
- Personal
- Developers find the project fun and rewarding which lead them to be intrinsically motivated and devote passion to the work.
The Agile Manifesto
The Agile Manifesto is a set of 12 principles that provide a foundation for agile methodologies.
The core principles of the manifesto are as follows <ref>Manifesto for Agile Software Development http://agilemanifesto.org/ </ref> :
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Values
There are four concepts that represent the main values of Agile software development.
- Adaptability
- Transparency
- Simplicity
- Unity
Adaptability
Adaptability is purported to be the most important value <ref>The Agile Leader: Adaptability
http://blogs.forrester.com/tom_grant/11-04-19-adaptability_may_turn_out_to_be_agiles_most_important_virtue</ref> of Agile methodologies.
This value forces teams to plan for inevitable change in a mindful manner.
The focus for Adaptability can be summarized by these two principles stated in the Agile manifesto.
- "Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage."
- "At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly."
There are three components in Adaptability <ref>Adaptation in project management through agile http://searchsoftwarequality.techtarget.com/feature/Adaptation-in-project-management-through-agile</ref> These three components must ALL be open to change in order to have a fully adaptable agile environment.
- Product - quality code and adequate testing will ensure product functionality after changes have been made.
- Process - practices that allow the team to adapt must be in place.
- People - developers, management, and stakeholders must have the proper attitude that is accepting of change.
Transparency
Simplicity
Unity
Best Practices
Popular Agile Methods
References
<references />