Agile is an approach, way of working, a set of principles and also a philosophy. It uses techniques or frameworks such as: Scrum, Kanban, Atern, XP and others.
ⓘ Techniques or frameworks mentioned above are often called methodologies but in reality, they are not. Methodology is set of principles and defined tools and practices in order to achieve a goal. Framework on the other hand defines major principles, sets the boundaries and leaves a room for other practices and tools to be included if they are aligned or compatible with defined principles. And for example, that’s exactly what is Scrum.
Agile manifesto
In February 2001, 17 software developers met at resort in Snowborid, Utah, to discuss lightweight development methods. They published the Manifesto for Agile Software Development to define the approach now known as agile software development. Some of the manifesto’s authors formed the Agile Alliance, a non-profit organization that promotes software development according to the manifesto’s values and principles.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Principles behind agile manifesto
1. One of the highest priority is to satisfy the customer through early and continuous delivery of valuable software
- this relates to Working software over comprehensive documentation = value for the client
- Iterative approach
- Value at the end of every iteration
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage
- this relates to Responding to change over following the plan
- Advantage = Value
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale
- this relates to Working software over comprehensive documentation = value for the client
- Iterative approach
- Deliver often
4. Business people and developers must work together daily throughout the project
- This relates to Customer collaboration over contract negotiation
- Involvement of the client in the process
- Understanding of priorities in any given moment
- Getting feedback early
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done
- This relates to Individuals and interactions over processes and tools
- It’s always about people
- Changing directive environment to collaborative environment
- Objectives driven approach – no tasks driven
- Self-organized team
- Cross-functional teams
- Constructive problem-solving culture vs blaming culture
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation
- This relates to Individuals and interactions over processes and tools
- Changing directive environment to collaborative environment
- Open and direct communication
- Honesty
- Respecting different individualities
- Co-located team
7. Working software is the primary measure of progress
- This relates to Working software over comprehensive documentation = value for the client
- Results driven approach
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely
- This relates to Working software over comprehensive documentation = value for the client
- Iterative approach
- Empirical approach
- Pareto principle – 80:20 rule
- Limit WIP (Work in progress)
9. Continuous attention to technical excellence and good design enhances agility
- This relates to Working software over comprehensive documentation = value for the client
- Quality
10. Simplicity “the art of maximizing the amount of work not done” is essential
- This relates to working software over comprehensive documentation = value for the client
- Results driven approach
- MVP
11. The best architectures, requirements, and designs emerge from self-organizing teams
- This relates to Individuals and interactions over processes and tools
- Collaborative working environment
- Self-organized, cross-functional teams
- Involvement of the team in the whole product development lifecycle
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly
- This relates to Individuals and interactions over processes and tools
- Collaborative working environment
- Empiric approach
- Continues improvement
Agile in a nutshell
- Delivery value ASAP and continuously
- Welcome changes as late as possible
- Deliver value in short iterations
- Business and development team must collaborate
- Change directive to collaborative mgmt. style – empower people
- Support co-location and f2f communication
- Only working software counts – results
- Maintain sustainability
- Continuously focus on quality
- Think small, lean, limit WIP, apply 80:20
- Support self-organization – empower people
- Get better regularly in small steps – continuous improvement