Agile software tries to address a couple of key components.
- It is difficult, in advance, to predict which software requirements will stay, and which ones will change.
- Many types of software the design and construction are naturally interleaved, therefore they can work in tandem.
- Analysis, Design, Construction, and Testing are not as predictable as we’d like.
By continual adaptation we can hopefully better manage the unpredictability of the software building process. We do so by making adaptable changes.
The 12 Agile Principles:
- Early and Continuous Delivery of Valuable Software. – Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Embrace Change. – Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Frequent Delivery. – Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business and Developers Together. – Business people and developers must work together daily throughout the project.
- Motivated Individuals. – Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- Face-to-Face Conversation. – The most efficient and effective method of conveying information to and within a development team is face-to-face conversation
- Working Software. – Working software is the primary measure of progress
- Sustainable Development – Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Technical Excellence. – Continuous attention to technical excellence and good design enhances agility.
- Simplicity. – Simplicity–the art of maximizing the amount of work not done–is essential.
- Self-Organizing Teams. – The best architectures, requirements, and designs emerge from self-organizing teams.
- Regular Reflection and Adjustment – At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Agile Like?
Too often however, people do “agile like” development. Something that utilizes a part of agile, or they say they are agile, trying to cover up a bad practice. This often gives agile programming a bad name.
What Is an Agile Process? was originally found on Access 2 Learn