Monday, March 20, 2017

Agile support for context problems

Many of the domain or context problems will be directly solved by Core Agile (Manifesto and Core Agile Practices). However, some of the problems cannot be addressed only with Core Agile or even with non-core Agile practices. 

What is the Agile response for adapting to context? 
The possible problems are induced by context related perturbation/scaling factors. Problems: teams cannot apply Agile practices because of context constraints, or you need to go beyond the 15-20 core practices to address the context.  

Expected response - I expect at least the following support from Agile and its methods:
  • Support for Core Agile Practices, in order to directly backup Manifesto values and principles
  • Description of main Scaling/Tailoring Factors 
  • Guidance for  process tailoring in Context

Manifesto response – it has an indirect response: if you manage very well generic domain problems, you will maximize the remaining resources to address the context. Also, the generic development strength will be high.

Methods responses – each method try to address in some way the “adapt to context” problem. Their solutions are, anyway, quite different.

Scrum response – Scrum offer a very lightweight framework, with very few practices. For the rest of the process, it is supposed that teams/organizations will figure out what they need. The only guidance in the basic Scrum are the main principles: Transparency, Inspect and Adapt. Some Scrum extensions try to manage (only) the size scale factor.

XP response – XP offer a lightweight framework and a good coverage in overall Core Agile Practices. That mean XP is effective/efficient for solving core domain problems. What about context? Here are some XP solutions for context:
  • XP recognize Scaling Factors (beyond team size)
  • Offer some very short, but good guidance for dealing with the scaling factors
  • XP main support for scaling it is its robustness and resilience on solving the core domain problems
  • Recently Kent Beck describes its refreshed experience with software at scale: You Aren’t Going to Need It (YAGNI) could become, at scale, “You Are Going to Need It” [b8].
Scaling XP, Conclusion: “With awareness and appropriate adaptations, XP does scale. Some problems can be simplified to be easily handled by a small XP team. For others, XP must be augmented. The basic values and principles apply at all scales. The practices can be modified to suit your situation.” [b1]

Disciplined Agile Response – DA offer support for both aspects: a lightweight core of principles/practices /guidance to address the domain specific problems (as XP does), plus a guidance about how to adapt to context by offering a map of choices from important software engineering practices. In addressing core domain problems, DA add some few outstanding practices (as Agile Modeling practices) to core XP and Scrum, making the adaptive/lean support much more robust. In addressing the context problems, DA choose to offer guidance and not recipes:
  • DA explicitly describe Scaling Factors
  • Offers robustness and resilience on solving domain core problems
  • Offers process tailoring guidance: options available per decisions points per generic process goals
  • Offers Agile life-cycle options: basic, continuous delivery, advanced lean, exploratory lean startup
  • Offers enterprise aware guidance: linking solution delivery with DevOps and Lean Enterprise.
Remember that Enterprise aspects are always part of the context and need to be addressed.     

Free-methods practices – there are outstanding Agile practices that are not part of the methods such as Clean Code, Clean Architecture, Adaptive Programming (Law of Demeter) that offer support for both domain generic and context problems. 

Bibliography and recommendations

[b1] Extreme Programming Explained: Embrace Change, Second Edition, by Kent Beck, Cynthia Andres, Addison Wesley Professional, November 16, 2004. Related sections: 

  •  Chapter 15 – Scaling XP (and Conclusion)
  • Chapter 20 – Applying XP   
[b2] Disciplined Agile 2.X - A Process Decision Framework: 
[b3] DA, Agile Modeling -
[b4] Clean Coders series, by Robert C. Martin
[b5] Scrum Guide, EN version only -
[b6] Interview with Kent Beck, by Andrew Binstock – Java Magazine November December 2016
[b7] Agile Software Development: The Cooperative Game, Second Edition, by Alistair Cockburn, Addison Wesley Professional, 2006
[b8] Making Your Methodology Crystal Clear and More, by Alistair Cockburn


No comments:

Post a Comment