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

0 0 votes
Article Rating
Subscribe
Notify of
guest
22 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Boško Šijan
9 months ago

Great post! Can someone explain how Kanban differs from Scrum?

Tyler Carlson
1 year ago

Thanks for the insightful article!

Mauro Domínguez
1 year ago

What’s the value of using Extreme Programming (XP) in Agile development?

Age Van Wordragen
11 months ago

This blog post is really helpful, thanks!

Miško Bjelica
1 year ago

Do Lean Development and Lean Startup mean the same thing?

Andrey Küper
1 year ago

I appreciate the detailed explanation!

Hernán Robledo
10 months ago

How does DevOps fit into Lean and Agile practices?

پوریا پارسا

This has clarified a lot for me, thank you!

22
0
Would love your thoughts, please comment.x
()
x