As one works on Developing Good Explanations, there needs to be a way to analyze the work that’s being done and to reason about it. Otherwise, Continuous Learning won’t happen and it will become harder and harder to know that your software is a Good Explanation. Even more so if you desire for your Good Explanations to be Self-Validating Good Explanations.
For performers of a project, it can be helpful to think of the project as its own entity that has a concept of health. After all a project has its own Environment and Context, and the desired environment should be intentionally cultivated. Healthy environments have teams with high Psychological Safety, which empowers them to have and enrich an already Effective Organizational Culture.
A healthy project is one that wants to be worked on, that invites others to work on it, that sparks interest and natural inquisitive curiosity in those that investigate it. Further, it can sustain that interest even as a performer gets to know the project more intimately and seeks to improve it and work on it.
Age of oldest tested codepath
Two roads diverged in a wood, and I—I took the one less traveled by, And that has made all the difference.
- Are there workflows that essentially nobody uses? Should there be?
- Are they tested to make sure they’re not broken?
- “Who broke the windows builds four weeks ago and why didn’t we notice until now?” - PL of team that doesn’t use Windows
- The good thing about haskell: Breaking it is harder than average. The bad thing about haskell: Now you have to actually test your error-path code–pushing to production may be insufficient.
Documentation that can’t lie
Oh, you know I’m on tonight, and my hips don’t lie And I am starting to feel it’s right The attraction, the tension Baby, like this is perfection
Questions to ask regarding Documentation.
- Can your documentation break the build if it doesn’t get updated?
- How do you document more of your process?
- Documentation that can be run to “give you the thing” (eg docs on a dev environment that give you the dev environment)
Hot Path Feedback Loop
Can you hear me now? Good. Can you hear me now? Good. Can you hear me now?
Aspects of Feedback Loops to investigate.
- Code in an editor
- Local stuff
- Remote stuff
- Stuff that breaks a cache (takes you off the hotpath)
- MTTR (Mean Time to Repair)
How many licks does it take to lick a lollipop
Sometimes automating a task is worth it, not because it’s done frequently, but precisely because it’s not
Tasks to think about optimizing.
- Release a new version. Low Risk Releases. Incremental Change.
- Bootstrapping People
- Reset an environment (Immutable Infrastructure, Erase Your Darlings)
- Add a new machine to CI/CD (Infrastructure as Code)
Toss a Coin to Your Customer
All I wanna say is that, they don’t really care about us
- Percent complete and accurate (%CandA): How often is work delivered where the customer doesn’t have to correct, add, or clarify information.