Goal |
Use of cross-functional, self-organized, and empowered teams who divide
their work into short, concentrated work cycles called Sprints |
To alleviate impediments that cause us to take longer to deliver, not remove necessary pieces of the process. |
To organize people to produce higher-quality software more productively. |
Date of birth |
In the mid 80’s, Hirotaka Takeuchi and Ikujiro Nonaka defined a flexible and all-inclusive product
development strategy where the development team works as a unit to reach a common goal. Scrum has
increased in popularity and is now the preferred project development methodology for many organizations
globally. |
Kanban developed in the 1940s as a subcomponent of the Toyota Production System and has its origins in these Lean and Just In Time (JIT) manufacturing processes. |
XP has been created in 1996 by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project. |
Current state |
The Scrum framework can only be used for small projects. However, it can easily be
scaled for effective use in large projects. |
One of the reasons many groups implement Kanban is to figure out how to deliver more consistently. Kanban, as well as many other methods/processes, is often chosen and implemented by the management or leadership layer and the values and goals are communicated down to developers or other individual contributors. |
It's a very effective metodology for the small command programmers. Team size should be 5 or less people. |
Speciality |
A key strength of Scrum lies in its use of cross-functional, self-organized, and empowered teams who divide
their work into short, concentrated work cycles called Sprints. Scrum is one of the most popular Agile methodologies. It is an adaptive, iterative, fast, flexible, and effective
methodology designed to deliver significant value quickly and throughout a project. Scrum ensures
transparency in communication and creates an environment of collective accountability and continuous
progress. |
In Kanban the workflow is visualised: work is broken down into small, discrete items and written on a card which is stuck to a board; the board has different columns and as the work progresses through different stages (e.g. ready, in progress, ready for review etc) the card is moved accordingly.
In Kanban the number of items that can be in progress at any one time is strictly limited. |
Extreme Programming is successful because it stresses customer satisfaction. Instead of delivering everything you could possibly want on some date far in the future this process delivers the software you need as you need it. Extreme Programming empowers your developers to confidently respond to changing customer requirements, even late in the life cycle.Extreme Programming emphasizes teamwork. Managers, customers, and developers are all equal partners in a collaborative team. |
Values |
1. Focus
2. Courage
3. Opennes
4. Commitment
5. Respect |
1. Transparency
2. Agreement
3. Balance
4. Respect
5. Understanding
6. Leadership
7. Collaboration
8. Customer focus
9. Flow |
1. Communication
2. Simplicity
3. Feedback
4. Courage
5. Respect |
Principles |
1. Roles Guide
2. Empirical Process Control
3. Self-organization
4. Collaboration
5. Value-based Prioritization |
1. Start with what you do now
2. Agree to pursue incremental evolutionary change
3. Initially, respect all roles, responsibilities and job titles |
The principles that form the basis of XP are based on the values just described and are intended to foster decisions in a system development project. The principles are intended to be more concrete than the values and more easily translated to guidance in a practical situation. |
Roles |
Core Roles:
Product Owner
Scrum Master
Scrum Team
Non-core Roles:
Stakeholders
Scrum Guidance Body
Vendors
Chief Product Owner
Chief Scrum Master |
No existing roles. Some teams enlist the help of an agile coach. |
Tracker, Customer, Programmer, Coach, Manager, Tester. Anyone can be Doomsayer, Gold Owner (may be the same as the Customer) |
Key metrics |
Sprint Velocity (2 weeks) |
Cycle time |
Iteration time (2 weeks) |
Activities |
1. Initiate
2. Plan and Estimate
3. Implement
4. Review and Retrospect
5. Release |
1. To Do
2. Development
3. Test
4. Release
5. Done |
1. Planning
2. Managing
3. Designing
4. Coding
5. Testing |
Practices |
1. Planning
2. Daily Scrum
3. Review and retrospective: Sprint Review and Sprint Retrospective
4. Extension: Backlog reinement and Scrum of Scrums
5. Artifacts: Product Backlog, Management, Sprint Backlog, Product Increment, Extensions (Sprint burn-down chart, Release burn-up chart) |
1. Visualize
2. Limit Work-in-progress
3. Manage Flow
4. Make management policies explicit
5. Improve collaboratively (using models and the scientific method) |
Extreme Programming has 12 practices, grouped into four areas, derived from the best practices of software engineering:
Fine scale feedback:
Pair Programming
Planning Game
Test Driven Development
Continuous process:
Continuous Integration
Design Improvement
Small Releases
Whole Team
Shared understanding:
Coding Standards
Collective Code Ownership
Simple Design
System Metaphor
Programmer welfare:
Sustainable Pace |
Change philosophy |
Teams should strive to not make changes to the sprint forecast during the sprint. Doing so compromises learnings around estimation. |
Change can happen at any time. |
A high degree of developer discipline along with continuous customer involvement for the duration of the project. |
Cadence |
Regular fixed length sprints. |
Continuous flow. |
Iteration. |
Release methodology |
At the end of each sprint if approved by the product owner. |
Continuous delivery or at the team's discretion. |
At the end of iteration. |