I’ve recently been studying for a BCS Certificate in Agile hence will be posting a couple of updates on Agile this week.
First some key values (emphasis on the left part of the statement over the right):
1. Individual and interactions over process and tools
An emphasis on teamwork and communication. After all teams should be building user solutions and not tools (though tools such as Jira, Github, Slack and Trello are incredibly useful) and to do that they need to work together effectively.
2. Working software over comprehensive documentation
Documentation is a crutch that developers rely on as an alternative for making software that works well.
The primary goal of development is to create stuff e.g. software; not documents.
3. Customer collaboration over contract negotiation
Users tell you what they want and you have to listen and communicate with them frequently.
Listening and responding to potential customers thoughts, opinions, and preferences makes your job harder though makes the results far better.
4. Responding to change over following a plan
Change is constant and inevitable. Plans should be fluid and Features flexible (iron triangle above)
The 12 Agile Principles:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity — the art of maximizing the amount of work not done — is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.