Skip to content

Commit

Permalink
Nested Glossary
Browse files Browse the repository at this point in the history
  • Loading branch information
robmoffat committed Jul 13, 2024
1 parent 06c2383 commit 4b7b3f9
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 8 deletions.
4 changes: 3 additions & 1 deletion docs/thinking/A-Simple-Scenario.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@ definitions:
description: A Risk you expect to face as the result of Taking Action.
anchor: attendant-risks
own_term: true
part_of: Risk
- name: Hidden Risk
description: Risks you aren't aware of when you consider Taking Action. i.e. an unknown unknown.
anchor: hidden-risks
own_term: true
part_of: Risk
- name: Goal
description: A picture of the future that an individual or team carries within their Internal Model; An imagined destination on the Risk Landscape. A specific Upside Risk we'd like to nurture and realize.
anchor: goal-in-mind
Expand Down Expand Up @@ -97,4 +99,4 @@ Risk-First tries as far as possible to use pre-existing terminology from the wor
<TermList details={frontMatter} />
</BoxOut>

Clearly, what we really want to get to is talking about software development, but first I want to dig a bit deeper into how we represent these ideas graphically, using [Risk-First Diagrams](Risk-First-Diagrams.md).
Clearly, what we really want to get to is talking about software development, but first I want to dig a bit deeper into the visual language used here to show risks, using [Risk-First Diagrams](Risk-First-Diagrams.md).
13 changes: 12 additions & 1 deletion docs/thinking/Anti-Goals.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ featured:
author: rob
tags:
- Goal
- Risk Landscape
- Expected Return
definitions:
- name: Anti-Goal
description: A particular destination on the Risk Landscape you don't want to arrive at.
own_term: true
part_of: Goal
sidebar_position: 11
tweet: yes
---
Expand Down Expand Up @@ -82,7 +89,11 @@ We need to acknowledge that pursuing certain goals via certain courses of action

The most valuable project management skill is being able to chart a course controlling your exposure to risk. Sometimes, that will mean [hitting a deadline](/tags/Deadline-Risk), but equally it could be [reducing codebase complexity](/tags/Complexity-Risk), [making a feature more accessible](/tags/Feature-Access-Risk) or [removing problematic dependencies](/tags/Software-Dependency-Risk).

The most important skill is to be able to _weigh up the risks_, decide on a course of action that exposes you to the greatest expected value, while looking for ways of increasing the payoff of winning and minimise the impact of losing.
The most important skill is to be able to _weigh up the risks_, decide on a course of action that exposes you to the greatest expected return, while looking for ways of increasing the payoff of winning and minimise the impact of losing.

<BoxOut title="Glossary Recap" link="/thinking/Glossary" linkText="View Glossary">
<TermList details={frontMatter} />
</BoxOut>

In the next section, we'll turn our attention to time: often, urgent risks _can_ crowd out the merely important. Why does that happen, and what should we do about it? In the next section, we'll look at how you can account for different levels of _urgency_ in your payoff considerations.

Expand Down
12 changes: 11 additions & 1 deletion docs/thinking/Consider-Payoff.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,24 @@ tags:
- Expected Return
definitions:
- name: Bet
description: Taking a decision to move somewhere new on the Risk Landscape and change the Balance Of Risk.
description: Taking a decision to move somewhere new on the Risk Landscape to try to improve your fortunes.
anchor: the-structure-of-a-bet
- name: Payoff
description: The payoff (or gross winnings) from winning a bet.
anchor: the-structure-of-a-bet
part_of: Bet
- name: Stake
description: The amount you have to pay to take a bet.
anchor: the-structure-of-a-bet
part_of: Bet
- name: Expected Value
description: The probability-weighted average value of the outcome.
anchor: the-structure-of-a-bet
part_of: Bet
- name: Expected Return
description: The probability-weighted return of the bet.
anchor: the-structure-of-a-bet
part_of: Bet
sidebar_position: 10
tweet: yes
---
Expand Down Expand Up @@ -269,6 +273,12 @@ A second approach is to improve the payoff of the losing outcomes. Here are som

In this section, we've looked at how bets worked, discussed terms like _stake_, _payoff_ and _expected value_ and applied them to software development.

<BoxOut title="New Terms" link="/thinking/Glossary" linkText="View Glossary">
Here's a quick summary of some of the terms from the world of _gambling_ and _risk management_ we've introduced in this chapter to evaluate bets:
<TermList details={frontMatter} />
</BoxOut>


As we've seen, figuring out payoff is made more tricky because often the actions you take might depend on each other, the payoff might not be immediate and (unlike making a bet in the real world) you can't be certain what the payoff will be in advance. But unlike gambling, you are able to manipulate the stakes and the payoff by coming up with your own approach.

Many Agile frameworks such as [Scrum](../bets/Purpose-Development-Team#case-2-scrum) place a lot of emphasis on estimating and time-boxing work: trying to work out when you're going to deliver something and sticking to it. But Risk-First is suggesting a totally different focus: factors like _time taken to deliver_ and _coordinating the completion of work_ are just risks to consider along with all the others.
Expand Down
33 changes: 28 additions & 5 deletions src/theme/TermList/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,22 @@ import styles from './styles.module.css'
import clsx from 'clsx';


function Term({ name, description, anchor, permalink, own_term }) {
function Term({ name, description, anchor, permalink, own_term, children }) {
const link = (permalink ? permalink + ( anchor ? "#"+anchor : "") : "")
const tagLink = "/tags/" + name.replaceAll(" ","-")
const c = (children && children.length >0)
return (

<article className={styles.docItem}>
<h3><Link key={link} to={link} title="Go to main definition">{name}</Link> { own_term ? <span className={styles.ownTerm}>Risk-First Term</span> : null}</h3>
<p className={styles.description}>{description} <Link className={styles.termTag} href={tagLink}>(tagged)</Link></p>
<p className={styles.description}>{description} <Link className={styles.termTag} href={tagLink}>(View Tag)</Link> </p>

{
c ? (<div>
<p className={styles.description}>Related Terms:</p>
<ul>{ children.map(c => <li>{c}</li>) } </ul>
</div>) : ""
}
</article>
);
}
Expand All @@ -27,7 +35,7 @@ function sortAndUnique(l) {
return sorted
}

export default function TermList({details}) {
function assembleAllDefinitions() {
// all terms from everywhere
const allTags = usePluginData('category-listing');
const allDocs = Object.values(allTags).flatMap(v => v)
Expand All @@ -36,13 +44,20 @@ export default function TermList({details}) {
return {
name: t.name,
own_term: t.own_term,
part_of: t.part_of,
description: t.description,
anchor: t.anchor,
permalink: doc.permalink
}
}))

return sortAndUnique(grossDefinitions)
}

export default function TermList({details}) {


const allDefinitions = sortAndUnique(grossDefinitions)
const allDefinitions = assembleAllDefinitions()

var definitions = []

Expand All @@ -65,7 +80,15 @@ export default function TermList({details}) {
return (
<div className={styles.tagList}>
{
sorted.map(d => <Term key={d.name} own_term={d.own_term} name={d.name} description={d.description} permalink={d.permalink} anchor={d.anchor} />)
sorted
.filter(d => d.part_of == null)
.map(d => <Term key={d.name} own_term={d.own_term} name={d.name} description={d.description} permalink={d.permalink} anchor={d.anchor}>
{
sorted
.filter(e => e.part_of == d.name)
.map(e => <Term key={e.name} own_term={e.own_term} name={e.name} description={e.description} permalink={e.permalink} anchor={e.anchor} />)
}
</Term>)
}
</div>
);
Expand Down

0 comments on commit 4b7b3f9

Please sign in to comment.