What is Agile?
Agile is a methodology, but not just one methodology, it’s actually a family of methodologies / processes that started in software development.
Agile includes the methodologies bellow and more:
- Scrum – iterative, methodology often used as base methodology or foundation. This is where the Scrum Master, Product Owner roles come from, the sprints and the ceremonies
- Lean – iterative, methodology that focuses on optimising people, resources, effort, quality and less waste. Lean succeeds in small projects with a short time frame
- XP – Extreme Programming – iterative, methodology that supports frequent releasing, customer focused and the main goal is finding ways to write high-quality software
- DevOps – practice that combines software development (Dev) with technology operations (Ops). In other words, it allows a single team to manage the entire application development cycle: development, testing, deployment and monitoring
- TDD (Test-Driven Development) – software development process that involves writing tests that are failing before writing new functional code
- Release On-Demand
Part of all these different agile methodologies can be put together to create your own agile solution.
Why these methodologies have been developed?
It has been proved in the past that business often involve difficult tasks (manufacturing, software development, device development) and most likely it will continue to be difficult moving into the future. Methodologies raise development effort levels of abstraction and make users’ needs:
- clearer and more understandable
- increase the end to end user collaboration
- these processes drive requirements, design, management and quality
- individuals and interactions over processes and tools
- working software over comprehensive documentation
- customer collaboration over contract negotiation
- responding to change over following a plan