FPO

Archive for the ‘Extreme Programming’ Category

A Full-Bodied Agile: Lean, Scrum, and XP

without comments

Agile’s Head: Lean

A mind to know, two hands to act

A mind to know, two hands to act

In two previous blog entries, we saw how Lean Software Development, with roots back to Lean Manufacturing, can provide the values which derive the underlying business value.  In some ways, it acts as the “head,” telling us the “why” behind that “whats” and “hows” of Agile.

Agile’s Two Hands: Scrum and XP

In addition to the “why,” we also need to know “what” and “how.”  I view these as the hands of Agile: one to guide the management practices and one to guide the software engineering practices.

But with so many different Agile methods, how do we choose?  Fortunately, the answer is quickly emerging.  Scrum has wide market buy-in as an Agile management framework, though it lacks any prescribed engineering practices.  Extreme Programming (XP) also has significant buy-in.  While XP has a less developed management framework, its strength lies in its quality-driven engineering practices.

Head and Hands: Lean, Scrum, and XP

We previously explored Lean’s values.  At a high level, you can see the framework emerge.

Lean Principles

  • Eliminate waste
  • Minimize inventory
  • Maximize flow / reduce work-in-process
  • Pull from demand / decide as late as possible
  • Empower workers
  • Meet customer requirements
  • Do it right the first time
  • Abolish local optimization / favor adaptability
  • Partner with suppliers
  • Create a culture of continuous improvement
Scrum Management Practices

  • Simple, clear roles and cross-trained resources
  • Self-organizing teams
  • Short iterations
  • Daily Stand-up meetings
  • Just-in-Time requirements elaboration
  • Continuous requirements inspection and prioritization
  • Negotiable scope
  • Up-front acceptance tests
  • Transparency
  • Simple management tools
  • Continuous process improvement
XP Software Engineering Practices

  • Test-driven development and automated testing
  • Continuous integration
  • Simple design and incremental architecture
  • Refactoring
  • System metaphor
  • Coding standards
  • Pair programming and a sustainable pace
  • Collective code ownership
  • Spike solutions

This model also allows us to frame Agile readiness and Agile maturity in this way.  Is the organization ready to embrace Lean principles?  How prepared are teams for Scrum’s management processes?  Are the technical infrastructure and software engineering practices ready to become more “extreme” with Extreme Programming?

We’ve already looked at Lean values.  In future entries, we’ll dive deeper into Scrum management practices and XP software engineering practices.  From there, we’ve laid our foundation for evaluating readiness and measuring maturity.

Written by Drew Jemilo

April 6th, 2009 at 9:07 pm