This is the farmer sowing his corn,
That …
…
That …
That lay in the house that Jack built.
An English nursery rhyme
A jack is a connector that installs on the surface of a bulkhead or enclosure.
The Jack method comprises techniques and concepts for comprehensive root cause analysis, scope modelling and requirements management. It is underpinned by the following principles:
- ‘Simplicity – the art of maximizing the amount of work not done – is essential’ (Agile)
- ‘Assume variability; preserve options’ (SAFe)
- ‘Divergent and convergent thinking’ (Design Thinking).
The core techniques –Jack Trees and Jack Stories – are presented in this article.
The analysis is based on the Case study ‘The Good Kitchen’ where Danish government was concerned that Denmark’s seniors in assisted living facilities or residential care units had poor nutrition (https://thisisdesignthinking.net/2016/05/the-good-kitchen/).
Jack Trees
Intro:
Jack Trees are the key element of the Jack method. It allows to perform analysis in ambiguous environments with limited access to subject matter experts. Promoting identification of unexpressed assertions, it creates a traceable structure of requirements ranging from solution-agnostic business needs through to detailed specifications. Jack Trees are a perfect tool to make conversations with stakeholders productive, and to enable confirmation what’s in scope and what’s out.
Theory:
A Jack Tree is a hierarchical list of statements that follow a specific format:
- Each statement delivers an unambiguous (and therefore short) message
- A statement contains an action and an object
- Statements in the hierarchy relate to each other as ‘one to many’
- The statement of the higher level is called an ‘objective’, of the lower – an ‘option’
- Statements are formulated in a way that options address the objective
- The highest statement in the hierarchy usually corresponds to a Business Need, the lowest statements are usually acceptance criteria or specification items
- Each statement can serve as an objective or an option depending on the depth of analysis.
To shorten the definition, a Jack Tree is a hierarchical list of action statements where each objective has at least two solutions.
To create statements, the Semantic Analysis and Minimum Meaningful Message techniques can be used (it will be described in a separate article).
Mathematically, a Jack Tree is a Directed rooted N-ary tree. Hence, specific properties such as terminology, relationship cardinality, isomorphism, calculus, etc. are inherited and can be applied to the Jack Tree.
Example of a Jack Tree branch may look like:
- Improve quality of food
- Increase meal nutrition
- Add supplements
- Increase meal size.
Algorithm:
The Jack Tree is all about alternatives. Each statement is to be challenged for an existence of a concurrent option. Alternatives are being identified and grouped under objectives, and objectives are reviewed to be matched, renamed or split, until the desired outcomes are achieved.
The ideal Jack Tree represents a logical flow of statements explaining how different levels of objectives can be addressed by a number of options. Every option is unique even if it looks the same – where there are identical or similar option statements, they still relate to different objectives providing a different context. It is also important to mention that it is never the only variant possible for the Jack Tree, as the analysis view can be changed based on new findings or analysis focus.
The short algorithm of a Jack Tree creation is as follows:
- Create a semantically refined statement (action + object)
- (↓ ‘look down’) Treating it as an objective, devise at least two solution options to address it
- Where nothing comes to mind, try using the ‘Do nothing’ option
- (↑ ‘look up’) Treating it as an option, devise an objective the option can be addressed by it
- Refine wording where needed – it promotes solution-agnostic formulation
- Continue moving up or down the Jack Tree, adding branches, objectives and options till the desired analysis granularity is reached
- Consider the Jack Tree completed when requirements are detailed enough.
Once the Jack Tree is created, all options need to be reconfirmed with appropriate stakeholders. Talking through the options will evoke highly valuable insights on what the current and future states are, along with confirming the scope.
It is imperative to note that knowing what’s in scope is as important as knowing what’s out of scope. The Jack Tree technique gives a perfect indication of that.
Additionally, it is practical to use a ‘Do nothing’ option as an alternative where applicable. However, ‘Do nothing’ is an option that also requires an action, and should be equipped with associated acceptance criteria or specification, e.g. ‘Continue spending $1,234 monthly on support’. This allows for more careful scope considerations.
Application:
Building a Jack Tree can be started from a requirement of any level, looking up (confirming or generating possible objectives) and down (decomposing solution options to the desired level of granularity). It doesn’t matter how the requirement is obtained – through elicitation or formulation. In our case the possible initial requirement can be:
It is quite easy to identify immediate solutions for the requirement – this is how our brain usually works. So let’s go with:
- Increase meal nutrition
- Add supplements
- Increase meal size
- Increase calories.
All second-level options satisfy the requirement by answering the question ‘What do I need to do in order to <objective>?’, e.g. ‘In order to ‘Increase meal nutrition’, I need to ‘Add supplements’.
Now let’s look up and check the correctness of the objective for every specified option: ‘If I <option>, would it <objective>?’, e.g. ‘If I ‘Increase meal size’, would it ‘Increase meal nutrition’? We can see that the objective and the options correlate perfectly.
Note that any of the options at this level can be broken down further (e.g. ‘Add supplements’ can at least be broken down into ‘Add vitamins’ and ‘Add minerals’).
Now, let’s test the ‘Increase meal nutrition’ statement as an option that has an objective. What purpose can this solution serve? What alternative would this solution have? Do all devised solutions correspond to the objective?
Please note that the most obvious answer ‘Improve health’ brings too broad spectre of solution alternatives:
- Improve health
- Increase meal nutrition
- Visit a health resort
- …
- Do physical training.
It’s a signal that additional iterations are required to clarify and narrow down the Jack Tree branch.
After multiple iterations of the algorithm, a Jack Tree similar to the one below can be created:
- Improve quality of life for seniors
- Improve dining experience
- Satisfy dining habits
- Have dinner alone
- Have dinner in a company
- Improve quality of food
- Increase meal nutrition
- Add supplements
- Increase meal size
- Increase calories
- Change food type
- Change quality of ingredients
- Make meal appealing
- Improve meal taste
- Change cooking method
- Use spices
- Improve meal appearance
- Use separate boxes
- Use pre-arranged meals
- Improve range of dishes
- Construct custom meals
- Collect pre-orders
- Introduce menu
- Have multiple options cooked
- Change food type
- Change food consistency
- Satisfy diet restrictions
- Vegetarian
- Gluten-free
- Fasting
- Improve food preparation process
Note that the analysis organically revealed true business needs confirmed by the actual Use Case, e.g. attention to cultural, reputational and behavioral aspects, and changing the cooking practices.
Unlike the costly and lengthy group effort during ‘The Good Kitchen’ initiative, the above analysis could be done by just one analyst within a day or two. This is where the real power of the Jack method resides.
Advertisement
Pros & cons:
A Jack Tree has commonalities with different techniques and concepts, but it has a number of advantages that are unique:
- Identifies true business needs
- Promotes solution-agnostic view
- Establishes full traceability
- Allows to operate with insufficient data
- Provides a holistic Product view
- Visualizes the scope not done
- Clearly communicates the solution context
- Promotes clarification of stated requirements
- Allows for staged prioritization
- Allows for effort estimation on different paths
- Gives awareness of the entire backlog
- Identifies gaps in analysis
- Allows for algorithmic processing.
Once understood and adopted, the Jack Tree technique doesn’t provide any immediate downsides. Every challenge that occurs during the analysis, essentially improves the holistic understanding of the product, which is always beneficial.
Jack Stories
Intro:
A Jack Tree provides perfect input for traditional User Stories, and also promotes a specific story format – Jack Story, the technique that is part of the Jack method.
Theory:
The traditional format of the User Story is:
As a <Role>
I want to <Option>
So that I can <Objective>
As a Business Owner,
I want to Add supplements
So that I can Increase meal nutrition
When the role is insignificant or vague (which is often true for system-related requirements), an Enabler story format can be used:
IN order to <Objective>
WE need <Option>.
IN order to Increase meal nutrition
WE need to Add supplements.
A Jack Tree can immediately generate numerous conventional User Stories/Enablers, joining together Options and Objectives. Several stories may have the same ‘So that I can’ part, emphasizing different options for implementation that satisfy the same objective. This often happens ‘in the middle’ of the branches where options are being actively explored but haven’t got to the specification level yet.
However, the brevity of Jack Tree formulation may adversely affect the level of context provided. To alleviate this, a Jack Story can be used.
A Jack Story is a format of the requirement that traces an option to all its objectives up to a desired level. To build a Jack Story, a minimal Jack Tree branch needs to be created. Once the Jack Tree is available, the traditional formats of stories can be converted:
As a Business Owner,
I want to Add Supplements
So that I can Increase meal nutrition
So that I can Improve quality of food
So that I can Improve dining experience
So that I can Improve quality of life for seniors.
The same exercise can be done for the Enabler format.
A Jack Story gives a lot of additional context and indicates the way the logical considerations have been put into analysis.
Generally, the notion that a User Story is a Jack Story indicates that:
- There exists a hierarchical list of options (Jack Tree)
- Each statement in the story has been considered for an alternative
- The story purpose is understood and is traceable back to the highest known element in the hierarchy (up to a Business Need).
It is not hard to notice that the Jack story format application for traditional stories is clunky and doesn’t sound natural, especially for longer constructions, or when the user focus is changed.
A new format of the story-like requirements format is therefore proposed. Analyzing the semantic structure of a solution option in the Jack Tree, we can see that it is represented by an Object and an Action. Breaking down the first option, and leaving objectives as is, the format of the Jack Story is:
This is the <Object> I want to <action on> (Option)
To <Objective 1>
To <Objective 2>
….
To <Business need>
This is the supplements I want to Add
To Increase meal nutrition
To Improve quality of food
To Improve dining experience
To Improve quality of life for seniors.
The Jack Story is the most natural and accurate representation of the Jack Tree requirements.
Empirically, when working on user stories organized in Epics, on average just 2-4 levels of requirements hierarchy are sufficient to provide enough context in the Jack Story. This makes Jack Stories more readable, concise and referable.
Pros & cons:
Jack Stories are a representation of the Jack Tree, and inherently obtain many advantages:
- Fully compliant with INVEST criteria:
- (I)ndependent – each option in the Jack Tree is an alternative that can be developed independently
- (N)egotiatable – Jack Tree provides a variety of alternatives that can be selected on their own or broken down further until satisfiable
- (V)aluable – each option in the Jack Tree has a reason to exist, therefore the value is well defined
- (E)stimateable – looking up and down the Jack Tree gives a perfect idea of what an option comprises, thus making it easy to estimate
- (S)mall – Jack Story formulation is dependent on the scale of view, and can be as small as needed for the development iteration
- (T)estable – because Jack Stories are intrinsically short, Acceptance Criteria are an integral part of it.
- Solution-agnostic at the high level, very descriptive at the detailed level
- Short and concise, it fits easily on a story card and is easy to communicate
- Naturally traceable
- Unique and helps to keep the scope from creeping
- Translates requirements easily from Waterfall to Agile
- Promotes categorisation and critical thinking.
Along with the pros, there are some cons:
- Requires creation of the Jack Tree
- May need additional description and/or Acceptance Criteria
- Not widely accepted hence requires explanation.
Jack Method
Jack Stories/Trees are powerful techniques for solution options analysis, especially when access to stakeholders is limited. To excel the method additional original concepts and techniques can be useful:
- Semantic analysis
- Minimum Meaningful Message
- Traffic Lights (Semaphore).
The method makes scope better defined, requirements more structured, and prioritisation easier, contributing to the value of Business Analysis.