You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/bets/Purpose-Development-Team.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ Scrum's rule about working-to-a-sprint is well-meaning but not always applicable
40
40
41
41
## Case 3: Technical Debt
42
42
43
-
Sometimes, I am faced with a conflict over whether to pay off [technical debt](/risks/Complexity-Risk#technical-debt) or build new functionality. Sometimes the conflict will be with people in my team, or with stake-holders but sometimes it is an internal, personal conflict.
43
+
Sometimes, I am faced with a conflict over whether to pay off [technical debt](/risks/Complexity-Analogies#technical-debt) or build new functionality. Sometimes the conflict will be with people in my team, or with stake-holders but sometimes it is an internal, personal conflict.
44
44
45
45

46
46
@@ -133,15 +133,15 @@ Let's go back to our original cases:
133
133
134
134
- If I decide to **suspend the current sprint** to fix an outage, then that’s because I’ve decided that the risk of lost business, or the damage to reputation is much greater than the risk of customers walking because we didn’t complete the planned features.
135
135
- When the Agile Manifesto stresses **Individuals and Interactions over Processes and Tools**, it’s because it believes focusing on processes and tools leads to much greater risk. This is based on the experience that while focusing on individuals and interactions may appear to be a less efficient way to build software, following strict formal processes massively increases the much worse risk of [building the wrong product](/tags/Feature-Fit-Risk).
136
-
- When we argue for **fixing technical debt against shipping a new feature**, what we are really doing is expressing differences in our models of the [balance of risk](/tags/Balance-Of-Risk) from taking these actions. My boss and I might both be trying to minimise the risk of customers defecting to another product but he might believe this is best achieved by [adding new features](/tags/Feature-Fit-Risk) in the short term, whilst I might believe that [clearing technical debt](/risks/Complexity-Risk#technical-debt) allows us to get features delivered faster in the long term.
136
+
- When we argue for **fixing technical debt against shipping a new feature**, what we are really doing is expressing differences in our models of the [balance of risk](/tags/Balance-Of-Risk) from taking these actions. My boss and I might both be trying to minimise the risk of customers defecting to another product but he might believe this is best achieved by [adding new features](/tags/Feature-Fit-Risk) in the short term, whilst I might believe that [clearing technical debt](/risks/Complexity-Analogies#technical-debt) allows us to get features delivered faster in the long term.
137
137
- In the example of **Sustainably vs Quickly**, it's clear that what we should be doing is trying to avoid altering the balance of risks in a way that sacrifices too much Sustainability or Speed. To do this requires judgement in the form of an accurate [Internal Model](/tags/Internal-Model) of the [balance of risks](/tags/Balance-Of-Risk).
138
138
139
139
### Other Scenarios
140
140
141
141
In a way, this is not just about development teams. Any time a person is added to an organisation, the hope is that it will improve the [balance of risk](/tags/Balance-Of-Risk) for that organisation. The development team are experts in improving the balance of [technical risks](/risks/Risk-Landscape) but other teams have other specialities:
142
142
143
143
- The Finance team are there to avoid the risk of [running out of money](/tags/Funding-Risk) and ensuring that the bills get paid (avoiding [Legal Risks](/tags/Operational-Risk)).
144
-
- The Human Resources team are there to make sure staff are hired, managed and leave properly. Doing this avoids [inefficiency](/tags/Schedule-Risk), [Reputation Damage](/tags/Reputational-Risk), [Morale Issues](/risks/Agency-Risk#morale-failure) and [Legal Risks](/tags/Operational-Risk).
144
+
- The Human Resources team are there to make sure staff are hired, managed and leave properly. Doing this avoids [inefficiency](/tags/Schedule-Risk), [Reputation Damage](/tags/Reputational-Risk), [Morale Issues](/risks/Human-Agency-Risk#6-morale-failure) and [Legal Risks](/tags/Operational-Risk).
145
145
- The best doctors have accurate [Internal Models](/tags/Internal-Model). They can best diagnose the illnesses and figure out treatments that improve the patient's [balance of risk](/tags/Balance-Of-Risk). Medical Students are all taught to 'first, do no harm':
146
146
147
147
> "given an existing problem, it may be better not to do something, or even to do nothing, than to risk causing more harm than good." - [Primum non nocere, _Wikipedia_](https://en.wikipedia.org/wiki/Primum_non_nocere).
Copy file name to clipboardExpand all lines: docs/estimating/Analogies.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ So far, this track of articles has tried to bring the problems of estimating sof
19
19
-[Fill-The-Bucket](Fill-The-Bucket): This is the easiest domain to work in. All tasks are similar and uncorrelated. We can _extrapolate_ to figure out how much time the next _n_ units will take to do.
20
20
-[Kitchen Cabinet](Kitchen-Cabinet): In this domain, there is _hidden work_. We don't know how much there might be. If we can break down tasks into smaller units, then by the _law of averages_ and the _central limit theorem_, we can apply some statistics to figure out when we might finish.
21
21
-[Journeys](Journeys): In this domain, work is heterogeneous and interconnected. Different parts depend on each other, and a failure in one part might mean going back to the drawing board entirely. The way to estimate in this domain is to _know the landscape_ and to build in _buffers_.
22
-
-[Fractals](Fractals): In this domain, [Parkinson's Law](/risks/Process-Risk#bureaucracy) is king. There is always more work to be done. The best thing we can do is try and apply ourselves to the _highest value_ work at any given point, and frequently refer back to reality to find out if we're building the right thing.
22
+
-[Fractals](Fractals): In this domain, [Parkinson's Law](/risks/Process-Risk#4-bureaucratic-creep) is king. There is always more work to be done. The best thing we can do is try and apply ourselves to the _highest value_ work at any given point, and frequently refer back to reality to find out if we're building the right thing.
23
23
24
24

25
25
@@ -44,11 +44,11 @@ As we discussed in [Journeys](Journeys), there are plenty of problems in getting
What happens when you relax those constraints? If there is _no map_ and the _closeness_ heuristic isn't available, you're in a maze. You can't tell how "done" you are in a maze by judging your distance to the exit point - you may be heading to a [Dead End](/risks/Complexity-Risk/Complexity-Analogies#avolding-dead-ends) anyway!
47
+
What happens when you relax those constraints? If there is _no map_ and the _closeness_ heuristic isn't available, you're in a maze. You can't tell how "done" you are in a maze by judging your distance to the exit point - you may be heading to a [Dead End](/risks/Complexity-Analogies#complexity-dead-ends) anyway!
48
48
49
49

50
50
51
-
Software development is littered with dead-ends:
51
+
Software development is littered with deadends:
52
52
53
53
- The database you thought would be a good fit, but didn't work.
54
54
- The library you thought would solve your networking problems, but turned out to be unable to work through the firewall.
Copy file name to clipboardExpand all lines: docs/estimating/Fractals.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -86,7 +86,7 @@ With this in mind, you estimate a useful amount of time to go round this cycle,
86
86
87
87
The fractal nature of many software development tasks is both a blessing and a curse. It's a blessing because it means that sometimes, software developers can achieve almost-miracles of creating huge chunks of value in no time at all. But that capability somehow ends up being _an expectation_. The startup idea of "throwing together an MVP (Minimum Viable Product)" is taken as gospel. Kyle Prifogle pushes against this when he writes:
88
88
89
-
> "Lets explore this point more by means of an extended analogy. Suppose that you wanted to start a new business as a yachting captain... This is in many ways analogous to when a startup company decides that they want to serve the fortune 500, companies that have petabytes and beyond of data. However, you as a startup founder have to operate lean, and you are only willing to spend $10,000 on a boat. If you were to walk up to the owner of the multi-million dollar yacht and say, I’ll give you $10,000 for that boat, you would be laughed off the dock. " - [Kyle Prifogle, _Dear Startup_](https://kyleprifogle.com/dear-startup/)
89
+
> "Lets explore this point more by means of an extended analogy. Suppose that you wanted to start a new business as a yachting captain... This is in many ways analogous to when a startup company decides that they want to serve the fortune 500, companies that have petabytes and beyond of data. However, you as a startup founder have to operate lean, and you are only willing to spend 10,000 dollars on a boat. If you were to walk up to the owner of the multi-million dollar yacht and say, I’ll give you $10,000 for that boat, you would be laughed off the dock. " - [Kyle Prifogle, _Dear Startup_](https://kyleprifogle.com/dear-startup/)
90
90
91
91
Buying yachts is _not_ in the Fractal problem space. It's much more [Fill-The-Bucket](Fill-The-Bucket): more money means more yacht. So, it's not a great analogy. But the point is that the _expectation_ is for a value-miracle to occur, simply by adopting the practice of MVP or agile development.
Copy file name to clipboardExpand all lines: docs/estimating/Risk-First-Analysis.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ Seen like this, **Planning Poker** is a tool to avoid the [Coordination Risk](/t
41
41
42
42
-[Kitchen Cabinet](Kitchen-Cabinet): In this domain, there is _hidden work_. We don't know how much there might be. If we can break down tasks into smaller units, then by the _law of averages_ and the _central limit theorem_, we can apply some statistics to figure out when we might finish.
43
43
-[Journeys](Journeys): In this domain, work is heterogeneous and interconnected. Different parts depend on each other, and a failure in one part might mean going right back to square one. The way to estimate in this domain is to _know the landscape_ and to build in _buffers_.
44
-
-[Fractals](Fractals): In this domain, [Parkinson's Law](/risks/Process-Risk#bureaucracy) is king. There is always more work to be done. The best thing we can do is try and apply ourselves to the _highest value_ work at any given point, and frequently refer back to reality to find out if we're building the right thing.
44
+
-[Fractals](Fractals): In this domain, [Parkinson's Law](/risks/Process-Risk#4-bureaucratic-creep) is king. There is always more work to be done. The best thing we can do is try and apply ourselves to the _highest value_ work at any given point, and frequently refer back to reality to find out if we're building the right thing.
45
45
46
46

Copy file name to clipboardExpand all lines: docs/practices/Deployment-And-Operations/Automation.md
-5Lines changed: 0 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,11 +49,6 @@ practice:
49
49
50
50
One of the key ways to measure whether your team is doing _useful work_ is to look at whether, in fact, it can be automated. And this is the spirit of [DevOps](/methods/DevOps) - the idea that people in general are poor at repeatable tasks, and anything people do repeatedly _should_ be automated.
Monitoring encompasses a wide range of practices designed to ensure that systems operate efficiently and without interruption. This includes tracking the performance, availability, and security of networks, systems, and applications. Effective monitoring helps in early detection of issues, allowing for prompt resolution and minimizing the impact on operations.
Copy file name to clipboardExpand all lines: docs/practices/External-Relations/Analysis.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@ practice:
12
12
- "Requirement Analysis"
13
13
- "Business Analysis"
14
14
- "System Analysis"
15
+
- "Environmental Scanning"
15
16
mitigates:
16
17
- tag: Implementation Risk
17
18
reason: "Ensures that requirements and specifications are clearly understood before development begins."
@@ -25,6 +26,8 @@ practice:
25
26
reason: "Analysis is the process of doing work to build a better Internal Model."
26
27
- tag: Lock-In Risk
27
28
reason: "Analysis can identify dependencies where Lock-In Risk is high."
29
+
- tag: Operational Risk
30
+
reason: "Analysis is important to identify threats to an operation from its environment."
28
31
attendant:
29
32
- tag: Schedule Risk
30
33
reason: "Can be time-consuming, potentially delaying the start of development."
@@ -44,9 +47,7 @@ practice:
44
47
45
48
Analysis in software development involves examining and breaking down the requirements, systems, and processes to understand the needs and ensure the correct implementation of the software. This practice is crucial for identifying potential issues, clarifying requirements, and ensuring that the development aligns with business goals and user needs.
Analysis is also important as a tool to understand the environment that your software will run in. See [Environmental Risks](/tags/Environmental-Risks).
Copy file name to clipboardExpand all lines: docs/practices/Planning-And-Management/Approvals.md
-5Lines changed: 0 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,11 +43,6 @@ practice:
43
43
44
44
Approval / Sign Off in software development involves getting formal approval from stakeholders at various stages of the project. This practice ensures that the work meets the required standards and specifications before progressing to the next phase, providing a formal communication of acceptance and readiness.
45
45
46
-
See:
47
-
48
-
-[Processes, Sign-Offs and Agency Risk](/risks/Process-Risk#processes-sign-offs-and-agency-risk)_
0 commit comments