Categories: Agile, Communication, IT Methodology, IT Strategy, Organizational Project Management, Scrum
At work I was being asked to say about differencies between Scrum, Kanban and eXtreme Programming. And I'd like to share my thoughts with you.
Scrum | Kanban | XP (eXtreme Programming) | |
---|---|---|---|
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. |
So, there are different methodologies you can use to manage project.
I think the main weakness in all these methodologies is poor knowledge about product. And sometimes we are trying to develop existence products when we need to create new system.
We need to choose methodology or to combine methodology tools in depending from kind of project and its scope. We need to take cognisances of experience, qualifications and conditions.