Saturday, February 15, 2020

(Product) Extract: delivery life-cycle options

Read first

 

Extract  

"The shape of the problem and solution spaces are clear" 
"...delivering the service at lower cost" - Kent Beck

A good Extract phase supposes an already optimized process, where some of these lifecycles could be predominant 
  • Lean
    • Working software is produced faster than one-week iteration 
    • Not very small releases  
  • Continuous Delivery Agile 
    • Releases and iterations will become smaller, but we will still have iterations 
    • Inception is short ~ an activity, not a phase (fast clarification for requirement & solution)
    • Transition is short; we rely on TDD, continuous integration, continuous deployment, DevOps
  • Continuous Delivery Lean 
    • Similar to CD Agile, but we produce the working software faster (no iterations)
    • Often (e.g. daily) releases

Other options

  • Agile Basic  -  could be an alternative for these cases
    • we need longer envisioning & still have bottlenecks 
    • we not have optimized enough the process
  •  Exploratory Lean Startup
    • investments in experiments are usually recommended at the end of the product lifecycle
    • it is ok if is the start of a new Explore/Expand/Extract life-cycle of a new or re-invented product

References


(Product) Expand: delivery life-cycle options


Read first

  

Expand 

"Unanticipated bottlenecks appear
"Eliminate the next bottleneck just before it derails you" - Kent Beck

Agile option


The main incertitudes and risks are already addressed, but we still have unexpected problems & bottlenecks. One good choice to start could be Agile (Scrum-based or Scrum-XP style) life-cycle. We still have important requirement & solution risks so: 
 
How can we advance to a more streamlined process & life-cycle? 

Lean principles could help us to adopt lean. One of these principles uses work standardization to reveal impediments and improve. We will "standardize" the work & the understanding at the iteration/sprint level using some well-known iteration level agile practices. The team members:
  • will have the same view of the work
  • will collaboratively solve the problems & improve
The impediments will be observed by more eyes and (better) solved by more (collaborative) people. If the team members will work in isolation from one of the others (poor collaboration) ~ each one will have a different process & different problems to solve. The improvement will be slow or non-existent.   

Important: one of the main purposes of such iterative, Scrum-like development is not to repeat this process forever but to reveal & remove impediments and improve.

Lean option


The same idea for revealing and removing impediments could be used with the Lean lifecycle. We should visualize the work (~ Kanban),  get a common understanding of the workflow and use it as a base for improvement. Collaborative work and collaborative improvement are applied also in the lean case. We could consider a lean alternative in these cases:
  • often delivery, smaller releases (e.g. less than one week), maintenance
  • difficult look ahead, incertitude: we cannot prepare a buffer or work items for one or more iterations
Note: if the pre-conditions are met, Lean could be the dominant approach in Expand 

 

Other options

 
Next sections

 References