Skip to content

Commit 518a39c

Browse files
committed
Fixed broken links
1 parent 744bf72 commit 518a39c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+4737
-69
lines changed

docs/bets/Purpose-Development-Team.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Scrum's rule about working-to-a-sprint is well-meaning but not always applicable
4040

4141
## Case 3: Technical Debt
4242

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.
4444

4545
![Technical Debt vs Building Features](/img/generated/bets/purpose/technical-debt.svg)
4646

@@ -133,15 +133,15 @@ Let's go back to our original cases:
133133

134134
- 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.
135135
- 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.
137137
- 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).
138138

139139
### Other Scenarios
140140

141141
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:
142142

143143
- 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).
145145
- 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':
146146

147147
> "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).

docs/estimating/Analogies.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ So far, this track of articles has tried to bring the problems of estimating sof
1919
- [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.
2020
- [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.
2121
- [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.
2323

2424
![Three Dimensions From Fill-The-Bucket](/img/estimates/dimensions.png)
2525

@@ -44,11 +44,11 @@ As we discussed in [Journeys](Journeys), there are plenty of problems in getting
4444

4545
![Journeys Meets Cabinets](/img/estimates/dimensions-2.png)
4646

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-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!
4848

4949
![Maze Estimating](/img/estimates/mazes.png)
5050

51-
Software development is littered with dead-ends:
51+
Software development is littered with dead ends:
5252

5353
- The database you thought would be a good fit, but didn't work.
5454
- The library you thought would solve your networking problems, but turned out to be unable to work through the firewall.

docs/estimating/Fractals.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ With this in mind, you estimate a useful amount of time to go round this cycle,
8686

8787
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:
8888

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/)
9090
9191
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.
9292

docs/estimating/Risk-First-Analysis.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Seen like this, **Planning Poker** is a tool to avoid the [Coordination Risk](/t
4141

4242
- [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.
4343
- [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.
4545

4646
![Three Dimensions From Fill-The-Bucket](/img/estimates/dimensions.png)
4747

docs/practices/Deployment-And-Operations/Automation.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ practice:
4949
5050
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.
5151

52-
See:
53-
54-
- [Automation (Meeting Reality)](/thinking/Meeting-Reality#example-automation)
55-
- [The Purpose of Process](/risks/Process-Risk#the-purpose-of-process)
56-
5752
## See Also
5853

5954
<TagList tag="Automation" />

docs/practices/Deployment-And-Operations/Monitoring.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ practice:
2121
reason: "Monitors for security breaches and anomalies."
2222
- tag: Process Risk
2323
reason: "Monitoring a process can ensure that when it misbehaves the issues are quickly caught."
24+
- tag: Agency Risk
25+
reason: "Monitoring the behaviour of agents, whether people or processes, helps identify when behaviour becomes counter-productive."
2426
attendant:
2527
- tag: Complexity Risk
2628
reason: "Implementing comprehensive monitoring solutions can add complexity."
@@ -32,6 +34,7 @@ practice:
3234
- ../Deployment-and-Operations/Incident-Management
3335
- ../Tools-and-Standards/Prototyping
3436
- ../Communication-and-Collaboration/Documentation
37+
- ../External-Relations/Analysis
3538
---
3639

3740
<PracticeIntro details={frontMatter} />
@@ -42,11 +45,6 @@ practice:
4245
4346
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.
4447

45-
See:
46-
- [Operations Management](/risks/Operational-Risk#operations-management)
47-
- [Monitoring](/risks/Agency-Risk#monitoring)
48-
- [Control](/risks/Operational-Risk#control)
49-
5048
## See Also
5149

5250
<TagList tag="Monitoring" />

docs/practices/Development-And-Coding/Dependency-Adoption.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Making use of third-party libraries or services in your code.
4242

4343
See:
4444

45-
- [Languages and Dependencies](/risks/Complexity-Risk#languages-and-dependencies)
45+
- [Languages and Dependencies](/risks/Kolmogorov-Complexity#languages-and-dependencies)
4646
- [Software Libraries (On Software Dependencies)](/risks/On-Software-Dependencies#2-software-libraries)
4747
- [Software-as-a-Service (On Software Dependencies)](/risks/On-Software-Dependencies#3--software-as-a-service)
4848

docs/practices/Development-And-Coding/Refactoring.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,8 @@ Refactoring is all about ensuring you have the right abstractions.
5151
5252
See:
5353

54-
- [Refactoring](/risks/Complexity-Risk#refactoring)
55-
- [The Power of Abstractions](/risks/Staging-And-Classifying#the-power-of-abstractions)
56-
- [Hierarchies and Modularisation](/risks/Complexity-Risk#hierarchies-and-modularisation)
54+
- [Refactoring](/risks/Kolmogorov-Complexity#refactoring)
55+
- [Hierarchies and Modularisation](/risks/Connectivity#hierarchies-and-modularisation)
5756

5857

5958
## External References

docs/practices/External-Relations/Analysis.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ practice:
1212
- "Requirement Analysis"
1313
- "Business Analysis"
1414
- "System Analysis"
15+
- "Environmental Scanning"
1516
mitigates:
1617
- tag: Implementation Risk
1718
reason: "Ensures that requirements and specifications are clearly understood before development begins."
@@ -25,6 +26,8 @@ practice:
2526
reason: "Analysis is the process of doing work to build a better Internal Model."
2627
- tag: Lock-In Risk
2728
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."
2831
attendant:
2932
- tag: Schedule Risk
3033
reason: "Can be time-consuming, potentially delaying the start of development."
@@ -44,9 +47,7 @@ practice:
4447
4548
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.
4649

47-
See:
48-
49-
- [Environmental Scanning](/risks/Operational-Risk#scanning-the-operational-context)
50+
Analysis is also important as a tool to understand the environment that your software will run in. See [Environmental Risks](/tags/Environmental-Risks).
5051

5152
## See Also
5253

docs/practices/Planning-And-Management/Approvals.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ practice:
4343
4444
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.
4545

46-
See:
47-
48-
- [Processes, Sign-Offs and Agency Risk](/risks/Process-Risk#processes-sign-offs-and-agency-risk)_
49-
50-
5146
## See Also
5247

5348
<TagList tag="Approvals" />

0 commit comments

Comments
 (0)