Variability assumption

State of mind

Any choice must assume last minute changes

State of mind

Description

This third principle in SAFe [SAFe 2021-3] is the first to address the idea of agility where expectations can change up to the last moment. It is the direct impact of the second agile principle described in the manifesto:

"Welcome changes in requirements, even late in the project [...]".

This assumption implies in particular :

  • not going too far in the ideation to avoid having to start all over again in case of a change in the direction of the needs
  • a design capable of adapting to unforeseen circumstances. To achieve this, the team can act on several axes such as :
                  ○    flexible design, in particular by applying the SOLID principles [Wikipedia 2021-1] [Moustier 2019].

                        ○    the development of several technical solutions in parallel [CMMi 2010] using a "Set-Based Design" approach [SAFe 2021-13].

  • minimal code so as not to have to throw away too much work
  • document in detail only the parts that are fixed

Application to test maturity

In addition to the practices outlined above, the test must also be able to take into account this assumption of variability from the design stage:

  • For example, when designing a product, the Business Owners (Product Managers, Product Owners, Marketing, ...) make assumptions that need to be verified. This is what Eric Ries calls "Lean Startup" [Ries 2012] [Vallone 2021]. This practice involves devising metrics from the use of the product that will allow these hypotheses to be tested.
  • To avoid wasting time on competition, some organisations put several implementations into production that allow a hypothesis to be consolidated with the "A/B Testing" approach [Moustier 2019-1] [Wikipedia 2021-2].
  • When cohorts are too difficult and complex to identify or the market impact of an implementation is unknown but the organisation does not want to risk destabilising its users, another testing technique called "Canary Releasing" (or "Rollout") can be used [Sato 2014] [Moustier 2019-1] so that potential problems only impact a fringe of the population and do not threaten the entire user base.
  • Other deployment techniques address the uncertainty linked to the need or the design, such as the "Dark Launch" or the "Green/Blue deployment" [Trenel 2017].
  • Finally, for minimal code, the practice of TDD in TPP mode is of high added value [Martin 2013].


The test should also be designed in the most flexible way possible, for example :

  • using intent-based scenarios, e.g. by a briefly described test objective in order to avoid implementation variants
  • by doing exploratory testing [Kaner 2004].

To avoid over-quality, the idea is to deduce the test strategy to be applied [Bach 2019] :

  • the project context [Radid 2018]
  • the elements made available
  • and the expected quality criteria.

Agilitest's position on this practice

Agilitest is a tool that allows you to quickly generate an automated test script with an efficient and fast widget mapping interface. Moreover, given that the scenarios are linear (there is no loop), the testing of the scripts is also very fast. Thus, automation is easily disposable which reduces the loss aversion phenomenon [Tversky 1981].

To discover the whole set of practices, click here.

To go further

© Christophe Moustier - 2021