Concepts
As we dive deeper into the intricacies of Agile/Lean methodologies, we can’t sideline the importance of two dynamic systems – Kanban and Extreme Programming (XP). Alongside Scrum, they form the triad of some of the most utilized Agile approaches in the software development industry. To better augment your understanding, for the Advanced Certified ScrumMaster (A-CSM) exam, let’s delve deeper into these two Lean/Agile approaches.
Kanban
Originally hailing from the Japanese manufacturing sector, Kanban has transformed into one of the most pragmatic Agile frameworks. It’s essentially a visual system for managing software development work.
The basic principles of Kanban include visualizing the workflow, limiting Work-In-Progress (WIP), managing flow, making process policies explicit, using feedback loops, and fostering collaborative improvement.
A typical Kanban board has three columns: To-Do, In-Progress, and Done. However, it can also be fine-tuned to reflect the unique process of any team.
A key advantage of Kanban is its ability to help teams identify bottlenecks in the production pipeline and address issues in real-time. Its flexibility also makes it easy to integrate with other Agile methods like Scrum.
Example of Using Kanban
Consider the case of a SaaS company needing to respond to customer issues quickly. The support team could use a Kanban board to track, prioritize, and resolve issues. As issues are reported, they’re added to the To-Do column, and then moved to In-Progress as team members work on them. Once resolved, issues go to the Done column.
This is a practical way to make sure customer issues never fall through the cracks, and everyone in the team knows what’s going on.
Extreme Programming (XP)
Extreme Programming (XP) focuses on delivering high-quality software quickly and continuously improving the software development process. The primary goals of XP are to satisfy the customer, make the development process more exciting and productive for developers, and deliver a system that’s flexible and able to adapt to changing requirements.
XP is characterized by techniques like pair programming, test-driven development, refactoring, continuous integration, and simple design.
The main advantage of XP is its emphasis on customer satisfaction. It encourages frequent delivery of software to provide evolving usable software to the customer and to have a real check on the progress of development.
Example of Using Extreme Programming
Consider a software company working on a new product. With XP, they can frequently update their software within the framework of short development cycles. For example, they might use pair programming to divide tasks among two developers who work together at one workstation.
One, the driver, writes code while the other, the observer, reviews each line of code as it’s typed in. The two programmers swap roles frequently, providing a way to check each other’s work and share in the production of the code.
This not only creates a higher-quality product but also helps in shared learning, increases team knowledge, and improves system design due to constant code reviews.
Scrum vs. Kanban vs. Extreme Programming
Scrum | Kanban | Extreme Programming | |
---|---|---|---|
Focus | Team | Process | Quality |
Iterations | Fixed | Continuous | Fixed |
Role-based | Yes | No | Yes |
Change Within Sprint | Discouraged | Encouraged | Allowed with overhead |
Board Reset | Each Sprint | No | Not Relevant |
Adopting any of these methodologies depends primarily on the nature of the work, team’s preferences, and organization’s readiness for change. Regardless of the chosen Agile approach, at the heart of it all should be the core Agile values and principles.
Answer the Questions in Comment Section
True or False: Lean/agile development approaches outside of Scrum include Kanban and Extreme Programming (XP).
True
Which of the following core practices is associated with Extreme Programming (XP)?
- a) Pair Programming
- b) Daily Standups
- c) Backlog grooming
- d) Sprints
Correct Answer: a) Pair Programming
The ‘Theory of Constraints’ strategy is primarily associated with which lean/agile methodology outside of Scrum?
- a) Kanban
- b) Lean Six Sigma
- c) Extreme Programming
- d) SAFe
Correct Answer: a) Kanban
Which among the following is a key feature of the KANBAN approach in Agile methodology?
- a) Work in progress limits
- b) Sprints
- c) Scrum master
- d) Product owner
Correct Answer: a) Work in progress limits
Multiple Select: Which of these are true about the Lean philosophy in relation to software development?
- a) Eliminate waste
- b) Amplify learning
- c) Increased complexity
- d) Deliver as late as possible
Correct Answers: a) Eliminate waste, b) Amplify learning, d) Deliver as late as possible
Which Agile development approach outside of Scrum maximizes efficiencies by eliminating anything superfluous that doesn’t add value to the customer?
- a) Kanban
- b) Lean
- c) Extreme Programming
- d) SAFe
Correct Answer: b) Lean
True or False: In the Lean Agile approach, frequent reassessment and adaptation of plans is encouraged.
True
Which of these is not a key principle of Extreme Programming (XP)?
- a) Feedback
- b) Simplicity
- c) Rigidity
- d) Respect
Correct Answer: c) Rigidity
Multiple Select: Which of the following are principles of Lean Software Development?
- a) Decide as late as possible
- b) Deliver as early as possible
- c) Build up inventory
- d) Create knowledge
Correct Answers: a) Decide as late as possible, b) Deliver as early as possible, d) Create knowledge
True or False: Both Lean and Kanban encourage the reduction of waste to improve efficiency within the system.
True
Which of the following Agile approaches looks to improve workflow and reduce cycle time through visual management and pull principles?
- a) Extreme Programming
- b) Scrum
- c) Kanban
- d) FDD
Correct Answer: c) Kanban
In Extreme Programming, what is the primary strategy to improve software quality and responsiveness to evolving customer requirements?
- a) Frequent “releases” in short development cycles
- b) A strict adherence to initial plans
- c) Large-scale team structures
- d) Extensive documentation after each phase
Correct Answer: a) Frequent “releases” in short development cycles
Great post! Can someone explain how Kanban differs from Scrum?
Thanks for the insightful article!
What’s the value of using Extreme Programming (XP) in Agile development?
This blog post is really helpful, thanks!
Do Lean Development and Lean Startup mean the same thing?
I appreciate the detailed explanation!
How does DevOps fit into Lean and Agile practices?
This has clarified a lot for me, thank you!