Saturday, December 22, 2018

Proces alphabet: Adapt to Context

Draft version  

See also Process Alphabet

Intro


The diversity of any real process goes beyond the reduced set Scrum practices and even beyond Core Agile Practices. In fact, a process uses Scrum/XP/DA Core Agile Practices in order to optimize the work, not to define the way of working
Using practices from Agile methods (Scrum, XP) is always the subject of some amendments:
  • Different teams working on different products and in different contexts are facing different challenges and their process needs to be adapted
  • Agile/Core Agile Practices does not cover all the process aspects
  • Some scaling factors can make non-core agile/non-agile practices to be most useful in context.
  • Existent team skills do not enable needed Core Agile Practices (as TDD)
Scaling factors
  • XP: Number of people, Investment, Size of the entire organization, Time, Problem complexity, Solution complexity, Consequence of failure. [ See…]
  • Team Size, Geographic Distribution, Organizational distribution, Compliance, Domain complexity, Technical complexity.
Example:
  • In the case of Geographic Distribution, Organizational Distribution the highly desirable face-to-face conversation cannot be used on a large scale and should be replaced


Expectation support from a method

  • Support for Core Agile Practices, in order to directly address Manifesto's values and principles and optimize the work. Core Agile Practices context is the software development domain in general (not a specific one)
  • Description of main Scaling/Tailoring Factors
  • Guidance for tailoring the way of working in context:
    • how to select use life-cycles
    • context-agnostic process goals per life-cycle
    • selecting practices per process goals in the context
    • library of practices
© Copyright Valentin Tudor Mocanu 2018


Adapt to Context in Scrum



Core Agile Practices support  

Scaling Factors support 

  • Reduced. Some Scrum extensions try to manage (only) the size scale factor.

Adapt to Context guidance 

  • Reduced 
  • Life-cycle selection: not available
  • Process goals coverage: only some Construction goals
  • Selecting practices in context – not available. Scrum it is prescriptive regarding its own practices. The only guidance in the basic Scrum is rather vague and it is based on the main principles: Transparency, Inspect and Adapt, where Inspect and adapt are directly related only to Scrum Meetings and Scrum iterations (Sprints)
  • Library of practices: not available
Comment
  • Beyond prescribed practices, Scrum allows us to use any other necessary practice and let the team decide. Unfortunately, there is a very common misunderstanding (caused by bad coaching or missing knowledge) that Scrum by itself is the whole process. That is clearly specified as being false by Scrum authors: their intention was to create a lightweight framework that is generic because does not have to cover the whole process and could be adapted


Adapt to Context in XP

 

Core Agile Practices support

Scaling Factors support

  • Partial: good, but very little about how to react to the scaling factors
  • XP acknowledges more scaling factors beyond the team size: Number of people, Investment, Size of the entire organization, Time, Problem complexity, Solution complexity, Consequence of failure. [ See…]

Adapt to context support

  • Reduced.  XP is based on guidance for Core Agile Practices and some “corollary practices”, but with very few guidelines about how to adapt to context
  • Life-cycles options 
    • Only one explicit option - Agile Basic Life-cycle - but with some guidance to achieve Continuous Delivery. 
    • There are release and iterations and the recommendation to take care of weeks.
    • Continuous Delivery is rather poorly described as Daily Deployment corollary practices (while they specify that “has so many prerequisites “)
    • Excellent guidance about small releases
  • Process goals coverage
    • Some explicit guidance about Inception (planning game) goals.
    • Construction and Transitions are shortly addressed in these sections of the first Kent Beck XP book “Iterations to First Release”, “Productionizing”, where some goals are explained but are not “named”, for better communication.
    • (in the same book) “Iterations to First Release”, “Productionizing”, “Maintenance” discuss mainly the cycle of the first release and the readers can be confused about how to manage the next releases
  • Selecting practices in the context
    • XP has a pragmatic approach. They have “core practices”,corollary practices” and a strong recommendation for teams to discover what works for them. What is confusing: the authors present two somehow different sets of core practices in the two main XP books.
    • XP problems in using a goal-driven approach
      • There are explicit process goals only for Inception
      • There is a rather small library of practices and too few guidance about options and trade-offs
  •  Library of practices – not available: only XP core and corollary practices

What is missing
  • No explicit process goals beyond inception (goals ~ basic support for tailoring)
  • No real tailoring support, too few references about other options and practices beyond XP
  • No explicit options for more Agile/Lean life-cycles (there is some implicit support and some useful references)  


Adapt to Context in DA

 

Core Agile Practices support

 Scaling Factors support

  • Excellent: DA explicitly describe Scaling Factors and offers guidance about how the process is affected by them

Adapt to the context guidance

  • Excellent. This is DA core: support for making process decisions in context.
  • Life-cycles options: more Agile/Lean agile life-cycle options are available. See more on Process Alphabet: Life-cycles
  • Process goals coverage: excellent. Process goals are explicit, cover the whole life-cycle, have guidance and could be used to tailor any kind of Agile/Lean Process
  • Selecting practices along the life-cycles and roadmaps: This is the DA core: guidance to select practices in the life-cycle & context and the tradeoffs for different options. There is also Enterprise related guidance linking solution delivery with DevOps and Agile Enterprise. For development, Enterprise aspects are always part of the context and need to be addressed.      
  • Library of practices – Agile Basic life-cycle it is used as a model for distributing process goals and options as a library of practices. There is some great guidance about the tradeoffs of using different options per decision point and goal


How to … my custom process


Support for Core Agile Practices

Support for Scaling Factors

Adapt to context - Life-cycles selection

Adapt to context - Process Goals

  • Use explicit DA guidance about process goals distribution in Agile Basic life-cycle that also directly fit with Scrum and XP
  • XP practitioners could also use this method guidance for Inception goals (Release Planning Game)

Adapt to context - Selecting practices along the life-cycles

  • Use DA guidance to select practices in the life-cycle & context tradeoffs for different options
  • Use XP and DA guidance for Core Agile Practices and their principles-driven guidance
  • For Scrum and XP, using DA guidance, you can check if in the current context you can preserve or replace the prescribed practices

Adapt to context – Library of practice 

  • Use DA library of practices (most XP and Scrum practices are already included) 

References (draft) 


[XPE1] – Extreme Programming Explained First Edition, By Kent Beck, Addison-Wesley, 1999
[XPE2] – Extreme Programming Explained: Embrace Change, Second Edition, By Kent Beck, Cynthia Andres, Addison-Wesley,  2004