Skip to content

Commit

Permalink
Feature/less kata (#10)
Browse files Browse the repository at this point in the history
* Add elements to diagram
* Add definitions to Glossary
* Add coloured sticky support to the theme
* Apply new theme and colours to the existing images, and refine diagrams
* Write up the last two steps of the excercise
  • Loading branch information
stijn-dejongh authored Nov 26, 2024
1 parent 8355024 commit 96f60dc
Show file tree
Hide file tree
Showing 16 changed files with 320 additions and 48 deletions.
73 changes: 64 additions & 9 deletions content/projects_vs_product.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,17 +70,18 @@ elements that make up the base system:
* **Alignment between product and customer needs:** The degree to which the product meets the needs of the customer.
* **Length of the feedback loop:** The time it takes to get feedback from the customer.

{{< image src="/images/kata/base_elements_CONNECT-US.png" alt="Core elements" size="50%">}}

{{< exercise text=`
Using the provided base elements, create a causal loop diagram that shows the relationships between the
elements. Focus on the primary relationships between the elements, and aim to map out the key interactions between the elements.
` >}}

{{< image src="/images/kata/base_elements_CONNECT-US.png" alt="Core elements" size="50%">}}

<details class="content pattern related">
<summary>Click here to view a potential solution</summary>

{{< image src="/images/kata/value_delivery-PART_1.png" alt="Core elements" >}}
{{< image src="/images/kata/base_elements_CONNECTED.png" alt="Core elements" >}}
</details>

### **Step 2:** Add Organizational Elements
Expand All @@ -95,8 +96,6 @@ reinforcing (same) effect.

The organizational elements we will consider are:

{{< image src="/images/kata/organizational_elements_TO-ADD.png" alt="Elements to be added" size="50%" float="right" >}}

* **Ability to rapidly change what we're working on:** The organization's ability to quickly change direction, also known as 'adaptability' or
'business agility'.
* **Commited scope, agreement on batch size:** The organization's promise on what they will be delivering, and how large the increments will be.
Expand All @@ -105,32 +104,88 @@ The organizational elements we will consider are:
* **# of Handovers:** The number of times a piece of work is handed over from one team to another.
* **Lead Time:** The time it takes to deliver a piece of work from start (concept) to finish (delivered value in hands of end-users).

{{< image src="/images/kata/organizational_elements_CONNECT-US.png" alt="Connect the organizational elements" size="100%" >}}

{{< exercise text=`
Add the organizational elements to the diagram and identify the relationships between the elements.
Focus on the primary relationships between the elements, and aim to map out the key interactions between the existing and new elements.
There are no right or wrong answers, but the goal is to have a conversation about how the organizational elements impact the base system.
` >}}

{{< image src="/images/kata/organizational_elements_CONNECT-US.png" alt="Connect the organizational elements" size="100%" >}}


<details class="content pattern related">
<summary>Click here to view a potential solution</summary>

{{< image src="/images/kata/organizational_elements_CONNECTED.png" alt="Connected the organizational elements">}}

</details>

### **Step 3:** Add Timeliness Elements

{{< info text="We did finish what we agreed to! Once we deploy it in production, we just need to ..." >}}

### **Step 3:** Add Timeliness Elements
Next to the organizational elements, deliveries are impacted by system elements that relate to the timeliness of producing and delivering
artefacts. In this step, we will identify the timeliness elements that impact the base system.
These elements are the time-related factors that influence the delivery causal system. We will consider the following elements:

{{< stub >}}
* **Time pressure:** A type of psychological stress that occurs when there is less (perceived) time available than is required to complete a task.
* **Quality:** The build quality of the delivered artifacts. (e.g. Maintainability, lack of technical debt, lack of defects)
* **Ownership:** The feeling of responsibility for the product by the team that is working on it.
* **Team Stability:** How fixed / temporary people are part of the team.
* **End-to-end agency:** Ability to deliver value independently.

{{< image src="/images/kata/timing_elements_CONNECT-US.png" alt="Connect the timeliness-based elements" size="100%" >}}

{{< exercise text=`
Add the timeliness elements to the diagram and identify the relationships between the elements.
Aim to map out the key interactions between the existing and new elements.
` >}}


<details class="content pattern related">
<summary>Click here to view a potential solution</summary>

{{< image src="/images/kata/timing_elements_CONNECTED.png" alt="Connected the timeliness elements">}}

</details>

### **Step 4:** Add Risk Mitigation Elements

{{< info text="No, we can't do that. It is out of scope, and we'd go over budget." >}}

We have now identified the base value proposition, and added both organizational, and time-related system interactions to our causal diagram.
The next step is to apply "risk mitigation" elements to the diagram. These elements represent how organizations typically deal with risks and
potential issues that may arise during the delivery process. We will consider the following elements:

* **Number of Inspection Opportunities:** Amount of chances to validate the business cases the organization is working to support/enable.
* **Risk of overruns:** The risk of a delivery costing significantly more than what we were initially willing to invest in it. (Sunk Cost)
* **Risk Avoidance:** Focusing on avoiding risks, rather than delivering valuable features. Favouring output over outcome. (e.g. scope negotiation,
risk management, politics, window dressing)
* **Onboarding / Offboarding cost:** Additional effort required to bring new team members up to speed, or to ensure a smooth transition when team
members leave.

{{< image src="/images/kata/risk_elements_CONNECT-US.png" alt="Connect the risks and mitigation elements" size="100%" >}}

{{< exercise text=`
Add the risk mitigation elements to the diagram and identify the relationships between the elements.
Aim to map out the key interactions between the existing and new elements.` >}}

<details class="content pattern related">
<summary>Click here to view a potential solution</summary>

{{< image src="/images/kata/risk_elements_CONNECTED.png" alt="Connected the risk and mitigation elements">}}

</details>


## Round-Up

### Conclusions and Learnings

{{< stub >}}

## **Round-Up:** Conclusions and Learnings

{{< stub >}}
### Next Steps?

{{< stub >}}
38 changes: 38 additions & 0 deletions data/glossary.toml
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,41 @@ It is important to understand the different types of feedback loops, as they can
"""
aliases = ["Loops", "Cycles"]

[[terminology]]
name = "Time Pressure"
abbreviation = ""
domain = "Psychology"
description = """
A type of psychological stress that occurs when there is less (perceived) time available than is required to complete a task.
"""
aliases = ["Deadline Pressure", "Urgency"]
references = [
]

[[terminology]]
name = "Adaptability"
abbreviation = ""
domain = ""
description = """
Ability to rapidly change what we're working on, The organization's ability to quickly change direction.
"""
aliases = ["Business Agility", "Flexibility"]
references = [
]

[[terminology]]
name = "Lead Time"
abbreviation = ""
domain = ""
description = """
The time it takes to deliver a piece of work from start (concept) to finish (delivered value in hands of end-users.
The amount of time between the initiation of some process and its completion,
e.g. the time required to manufacture or procure a product; the time required before something can be provided or delivered.
"""
aliases = []
references = [
{ title = "Lead Time on wikipedia", link = "https://en.wikipedia.org/wiki/Lead_time" },
{ title = "Lead Time on Investopedia", link = "https://www.investopedia.com/terms/l/leadtime.asp" },
{ title = "Lead Time vs. Cycle Time", link = "https://waydev.co/lead-time-vs-cycle-time/" },
{ title = "Reducing Lead Time in warehousing & Manufacturing", link = "https://www.conger.com/reduce-lead-time//" }
]
Binary file added src/coloured_stickies_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
66 changes: 66 additions & 0 deletions src/images/Project_versus_Product.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
@startuml
title Causal Loop Diagram: Project versus Product

!include ../templates/puml-theme-stickies.puml

skinparam backgroundColor white
skinparam linetype disabled
skinparam dpi 240


left to right direction

together {
Sticky_Green(customer_satisfaction, "Customer Satisfaction Rate", "The business goal of the organization.")
Sticky_Green(alignment_to_market, "Alignment between product and customer needs", "The degree to which the product meets the needs of the customer.")
Sticky_Green(loop_length, "Length of the feedback loop", "The time it takes to get feedback from the customer.")
}

s(alignment_to_market, customer_satisfaction)
alignment_to_market -[hidden]up-> customer_satisfaction
o(loop_length, alignment_to_market)
loop_length -[hidden]left-> alignment_to_market

Sticky(adaptability, "Ability to rapidly change what we're working on", "The organization's ability to quickly change direction, also known as 'adaptability' or 'business agility'.")
Sticky(scope, "Commited scope, agreement on batch size", "The organization's promise on what they will be delivering, and how large the increments will be.")
Sticky(complexity, "Organizational Complexity", "The amount of different divisions within the company, the existence of prescriptive processes, and the decision-making mechanism that are in place.")
Sticky(handovers, " # of Handovers", "The number of times a piece of work is handed over from one team to another.")
Sticky(lead_time, "Lead Time", "The time it takes to deliver a piece of work from start (concept) to finish (delivered value in hands of end-users.")

s(adaptability, alignment_to_market)
o(handovers, adaptability)
o(scope, adaptability)
s(complexity, handovers)
s(handovers, lead_time)
s(lead_time, loop_length)

Sticky_Orange(deadline, "Time pressure", "A type of psychological stress that occurs when there is less (perceived) time available than is required to complete a task.")
Sticky_Orange(quality, "Quality", "The build quality of the delivered artifacts. (e.g. Maintainability, lack of technical debt, lack of defects)")
Sticky_Orange(ownership, "Ownership", "The feeling of responsibility for the product by the team that is working on it.")
Sticky_Orange(team_stability, "Team Stability", "How fixed / temporary people are part of the team.")
Sticky_Orange(e2e_agency, "End-to-end agency", "Ability to deliver value independently.")

o(quality, lead_time)
o(deadline, quality)
s(e2e_agency, ownership)
o(e2e_agency, handovers)
s(ownership, quality)
s(team_stability, ownership)
o(complexity, e2e_agency)

together {
Sticky_Blue(bus_validation, " # Inspection Opportunities", "Amount of chances to validate the business cases the organization is working to support/enable.")
Sticky_Blue(overrun, "Risk of overruns", "The risk of a delivery costing significantly more than what we were initially willing to invest in it. (Sunk Cost)")
Sticky_Blue(risk_avoidance, "Risk Avoidance", "Focusing on avoiding risks, rather than delivering valuable features. Favouring output over outcome. (e.g. scope negotiation, risk management, politics, window dressing)")
}
Sticky_Blue(training, "Onboarding / Offboarding cost", "Additional effort required to bring new team members up to speed, or to ensure a smooth transition when team members leave.")

o(loop_length, bus_validation)
s(bus_validation, alignment_to_market)
o(bus_validation, overrun)
s(overrun, risk_avoidance)
s(deadline, risk_avoidance)
o(risk_avoidance, adaptability)
o(team_stability, training)

@enduml
74 changes: 74 additions & 0 deletions src/images/Project_versus_Product_BASE.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
@startuml
'title Causal Loop Diagram: Project versus Product

!include ../templates/puml-theme-stickies.puml

skinparam backgroundColor white
skinparam linetype disabled
skinparam dpi 240


top to bottom direction

'Boundary(core, "core elements") {
' Sticky_Green(customer_satisfaction, "Customer Satisfaction Rate", "The business goal of the organization.")
' Sticky_Green(alignment_to_market, "Alignment between product and customer needs", "The degree to which the product meets the needs of the customer.")
' Sticky_Green(loop_length, "Length of the feedback loop", "The time it takes to get feedback from the customer.")
'
' alignment_to_market -up-> customer_satisfaction: " "
' loop_length -left-> alignment_to_market: "O"
'}
'

'Boundary(organizational, "organizational elements") {
' Sticky(adaptability, "Ability to rapidly change what we're working on", "The organization's ability to quickly change direction, also known as 'adaptability' or 'business agility'.")
' Sticky(scope, "Commited scope, agreement on batch size", "The organization's promise on what they will be delivering, and how large the increments will be.")
' Sticky(complexity, "Organizational Complexity", "The amount of different divisions within the company, the existence of prescriptive processes, and the decision-making mechanism that are in place.")
' Sticky(handovers, " # of Handovers", "The number of times a piece of work is handed over from one team to another.")
' Sticky(lead_time, "Lead Time", "The time it takes to deliver a piece of work from start (concept) to finish (delivered value in hands of end-users.")
'}


'Boundary(timeliness, "timeliness elements") {
' Sticky_Orange(deadline, "Time pressure", "A type of psychological stress that occurs when there is less (perceived) time available than is required to complete a task.")
' Sticky_Orange(quality, "Quality", "The build quality of the delivered artifacts. (e.g. Maintainability, lack of technical debt, lack of defects)")
' Sticky_Orange(ownership, "Ownership", "The feeling of responsibility for the product by the team that is working on it.")
' Sticky_Orange(team_stability, "Team Stability", "How fixed / temporary people are part of the team.")
' Sticky_Orange(e2e_agency, "End-to-end agency", "Ability to deliver value independently.")
'}


Boundary(risks, "risk mitigation elements") {
Sticky_Blue(bus_validation, " # Inspection Opportunities", "Amount of chances to validate the business cases the organization is working to support/enable.")
Sticky_Blue(overrun, "Risk of overruns", "The risk of a delivery costing significantly more than what we were initially willing to invest in it. (Sunk Cost)")
Sticky_Blue(risk_avoidance, "Risk Avoidance", "Focusing on avoiding risks, rather than delivering valuable features. Favouring output over outcome. (e.g. scope negotiation, risk management, politics, window dressing)")
Sticky_Blue(training, "Onboarding / Offboarding cost", "Additional effort required to bring new team members up to speed, or to ensure a smooth transition when team members leave.")
}


's(adaptability, alignment_to_market)
'o(handovers, adaptability)
'o(scope, adaptability)
's(complexity, handovers)
's(handovers, lead_time)
's(lead_time, loop_length)
'
'o(quality, lead_time)
'o(deadline, quality)
's(e2e_agency, ownership)
'o(e2e_agency, handovers)
's(ownership, quality)
's(team_stability, ownership)
'o(complexity, e2e_agency)
'
'o(loop_length, bus_validation)
's(bus_validation, alignment_to_market)
'
'o(bus_validation, overrun)
's(overrun, risk_avoidance)
's(deadline, risk_avoidance)
'o(risk_avoidance, adaptability)
'
'o(team_stability, training)

@enduml
2 changes: 1 addition & 1 deletion src/images/example_loop.puml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ Sticky(roadCrossings, " # Road \n Crossings")
eggs -> chickens: " "
chickens -> eggs: " "
chickens -> roadCrossings: " "
roadCrossings [´]-> chickens: "O"
roadCrossings -> chickens: "O"

@enduml
33 changes: 0 additions & 33 deletions src/images/organizational_elements_BASE.puml

This file was deleted.

Loading

0 comments on commit 96f60dc

Please sign in to comment.