Sunday, December 2, 2018

Process Alphabet: Life-Cycles

Draft Version

 

Life-cycles Intro


The development lifecycle always exists. We expect that software professionals to be aware of what kind of life-cycle it is used because it is the main ingredient of the used process approach. It is highly important to know
  • If you are using Waterfall or Agile/Iterative/Lean.
  • If a team can perform an advanced, performant Agile-Lean or just a Basic Agile
  • If you select the right lifecycle for the complexity, incertitude & risks of the current context.

Expectation support from a method


  • Life-cycle Types and a Reference life-cycle
  • Often Delivery principle (small releases): specify, explain and offers guidance
  • Iterative & Lean approaches   
  • High incertitude, exploratory cases
  • Long-term roadmaps 
  • Full Release Life-cycle – covering Inception and Transition (to production): from one or more iterations to activities
Copyright © 2018 Valentin Tudor Mocanu

Life-cycles in Scrum

  • Life-cycle Not specified.
    • Scrum wants to be generic and talk mostly about iterations. You are free to build the life-cycle, but only based on iterations (Sprints)
    • Outside the Scrum Guide, its creators speak shortly about the beginning of a release: start with a Vision and consider architectural aspects 
  • Small Release principle is ignored
    • Scrum considers that reducing WIP (Work-In-Progress) by using iteration is enough. That breaks the Agile Manifesto principle to deliver in a couple months/weeks or faster with a preference to the shorter timescale 
  • Support only iteration-based lifecycles
    • Continuous Delivery and other Agile-Lean life-cycles types that deliver faster than in one week are not possible. Note: The Scrum prescriptive meetings ceremonial does not support by itself evolution to Continuous Delivery and needs at least one week (where one-week iteration is the attribute of a hyper-productive Scrum, according to Jeff Sutherland)
  • Exploratory Startup life-cycle (new product)
    • Not Addressed
    • Incompatible with Scrum idea to ship something in no more than 30 days
  • Long-Term Roadmaps
    • The Product Backlog can be used as a roadmap but is too few guidance or none
  • What is missing
    • The Life-cycle subject at release level is almost out of scope
    • Small release principle is ignored
    • Scrum does not match with several Agile/Lean Lifecycles (as Continuous Delivery, Exploratory Startup)


Life-cycles in XP

  • Only Agile Basic life-cycle it is explicit
    • XP has a kind of inception phase, described as Release Planning Game. That includes also the exploration of the technical risks via Solution Spikes. No sufficient guidance about the transition to production.
  • Small Release it used and explained
    • This principle was used first in XP and only later in Agile Manifesto
    • The benefits of small releases are explained
    • Some of the mandatory Core Agile Practices needed for small releases (increased agility) are explained (e.g.  continuous integration, simple design, barely good enough release planning)
  • Continuous Delivery support it is rather implicit
    • Short release principle: “XP asks the customer to choose the smallest release that makes the most business sense
    • Short iterations: If short iterations are good, we'll make the iterations really, really short—seconds and minutes and hours, not weeks and months and years" (the Planning Game).
  • Exploratory Startup life-cycle
    • Described as “Exploration phase” in a product life-cycle. It is much optimistic than “Exploratory Lean Startup”, and that could be a problem for high incertitude cases. More specifically, it does not address enough incertitude related to product requirements. Kent Beck recently address this problem with “Explore, Expand, Extract” concept
  • Long-Term Roadmaps
    • There is short guidance about product life-cycle: from exploration, first release, maintenance, etc.
    • Short guidance about quarterly planning 
  • What is missing
    • Explicit reference to Transition to the production stage
    • Reference to other types of Agile/Lean Lifecycles (as)
    • Explicit description for a Continuous Delivery life-cycle
    • Support for addressing high incertitude in an Exploratory life-cycle
    • Support for roadmaps (beyond Product Backlog)



Life-cycle in Disciplined Agile

  • Life-cycles are explicit
    • Full delivery life-cycle from inception to transition to production is explicit. The development game must know its playground. 
  • Most common Agile and Lean Life-cycles are described
    • One size does not fit all, especially for life-cycles. Several most common options are described such as Agile Basic, Advanced Lean, Continuous Delivery and Exploratory Lean Start-up. 
    • There is explicit guidance about the context where each life-cycle option will bring more benefits
  • Process guidance is based on life-cycle
    • The process guidance is based on the natural flow of decisions during a release. It describes how you can select the most suitable practices in context per each process goal in specific moments in the life-cycle
  • Small Release and reducing WIP it is an explicit improvement goal
    • There is an explicit recommendation to switch to life-cycles with reduced WIP: smaller releases, smaller phases, smaller iterations. A performant team it is supposed to advance to Continuous Delivery and much leaner life-cycles    
  • Continuous Delivery support it is explicit
    • Continuous Delivery it is an explicit lifecycle option and has guidance about needed practices and skills   
  • Exploratory Lean Startup life-cycle support it is explicit
    •  Exploratory Lean Startup is the recommended option for cases with high incertitude as for the beginning of a new product. It is important because other types of life-cycle are rather not feasible in such a context.  
  • Long-Term Roadmaps
    • There is guidance for Rolling Wave Planning for Product Roadmap. Rolling wave is the right way to model a roadmap because the information is always incrementally available  
    • DA for IT have process guidance for using Business Roadmaps, Technology Roadmaps (also with the recommendation to use Rolling wave Approach)
  • What is missing
    • DAD is a framework with a very good improvement dynamic, much stronger than Scrum and XP (that is rather “frozen”), so I expect to see even more support soon
    • I expect more guidance about how to model a process starting from Scrum & XP, complementing the missing part and checking compatibility with the context

Subjective assessment

Here my subjective assessment for life-cycle support in Scrum, XP, and DAD, using the above process alphabet guidance.


How to … my custom process

Here some recommendations for covering the life-cycle aspect if you have a custom process ( that could also be based on XP, Scrum)
  • Life-cycle – use Disciplined Agile as the main guidance 
    • Use Agile Basic as reference life-cycle
    • Use the provided set of life-cycles and associated guidance to see what kind of life-cycles are you using now or what you need 
    •  Scrum case – in most of the cases you can use DA Agile Basic life-cycle to model a Scrum compatible full delivery life-cycle.
    • XP case - in most of the cases you can use DA Agile Basic life-cycle to model an XP compatible full delivery life-cycle. XP style could be successfully used for the advanced life-cycles, but you need to advance form the release inception and iteration start ceremonial described in XP (direct compatible with Agile Basic life-cycle).
  • Small Release principle – use DA and XP guidance
    • Use DA guidance for advancing to Continuous Delivery
    • Use XP guidance for smaller releases
  • Iterative and Lean
    • Iterative - Scrum and XP guidance about iteration should be complemented with DA guidance for practice selection.
    • Lean – Scrum does not support Lean life-cycles, while XP needs some adjustments. DA provides guidance about delivering software in this way.
  • Exploratory Startup life-cycle (e.g. new product)
    • Use DA explicit guidance about this life-cycle and about MVP (Minimum Viable Product)
    • XP case – start from XP product life-cycle that have an “exploratory” stage
    • Scrum case – rely on DA and XP, because Scrum does not offer explicit support.
  • Long Term Roadmaps
    • Use DA explicit guidance roadmaps, rolling wave, exploratory and MVP (Minimum Viable Product). Be aware that there is more than product roadmap: business roadmaps, technology roadmaps 
    • XP case – start from XP product life-cycle
    • Scrum case – adapt long term Product Backlog management above mentioned DA guidance

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