Agile is a philosophy but Scrum is a framework to manage software development framework process. Agile is the super set of Scrum, Kanban, XP.
The Agile Manifesto
A group of 17 developers discuss what is the best way to run software development project.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile is not prescriptive, it’s up to a team on how to do.
The roots of Scrum
- Empirical process control, prevalent in the manufacturing space.
- Toyota production system, early scrum was heavily influenced by the TPS.
- Predates the agile manifesto, the manifesto was written in 2001, but Scrum appears in the 1990s.
Empiricism – knowledge comes only, or primarily, from experiences.
Scrum is driven by Empiricism. Make decisions based only on what has occurred, use lag indicators driven from historical metrics. Scrum use lagging based indicator not leading indicator.
Scrum is a framework, Not a process
- Definition of key tasks and routine
Scrum Framework + Your Environment = Your Process
Your Scrum is not my Scrum. Org structure, team dynamic, cultures are all differences.
3 Legs of Empiricism
- inspect both the project and the process
- look for variances
- strike the right balance
- Reduce what isn’t working, increase what is
- introduce changes at the right time
- Adapt the process to serve the project
- make your pace and progress visual
- encourage openness across the team
- share clear status across team boundaries
Scrum does not solve your problems, but enables you to solve your problems.
What about engineering?
Scrum does not address any engineering practices. The focus is entirely on project management principles. Extreme Programming (XP) is a subset of Scrum offers some engineering practices.
- Agile Manifesto: www.agilemanifesto.org
- Scrum Guide: www.scrumguides.org
- Extreme Programming Explained: Kent Beck and Cynthia Andres book