Kent Beck
Quotes
Make the change easy (warning: this may be hard), then make the easy change1
At the time there was a lot of “design is subjective”, “design is a matter of taste” bullshit going around. I disagreed. There are better and worse designs. These criteria aren’t perfect, but they serve to sort out some of the obvious crap and (importantly) you can evaluate them right now. The real criteria for quality of design, “minimizes cost (including the cost of delay) and maximizes benefit over the lifetime of the software,” can only be evaluated post hoc, and even then any evaluation will be subject to a large bag full of cognitive biases. The four rules are generally predictive.2
Reflection is the ultimate habit. "How'd that last hour go? What could I have done better? What do I want to try next time?" Reflection leads to all the other habits. [...] When I wrote The Smalltalk Best Practice Patterns, I would literally only code if I was following a pattern. If I knew what I wanted to type but I didn’t know the pattern, I would write the pattern (couple of hours) and then type the code (five seconds). It was incredibly frustrating, but after a week I knew why I was doing what I was doing.3
Links
Writings
- Monolith -> Services: Theory & Practice
- Test Desiderata
- test && commit || revert
- One Bite At A Time: Partitioning Complexity
- Constant/Migrate/Compute: A Workflow for Partitioning Complexity
- Cost of Coupling Versus Cost of De-coupling
- The Life-Changing Magic of Tidying Up Code
- Economy in 3X
- Money in 3X
- Time in 3X
- Teams in 3X
- Sequencing in 3X
- Estimates in 3X
- The Product Development Triathlon
- Fresh Work: 80/15/5
- Mastering Programming
- A Searching and Fearless Intellectual Inventory
- Convexity and Concavity Applied to Strategy and Tactics
- Tragic Concave Acquisitions
- The Convexity of Founder CEOs
- Convexity for Programmers
- Rapid Release Cycles for Convex and Concave Projects
- My Convex Career
- Accelerating Upside: Convexity in Software Development
- “Testing” Structure Changes
- Programmer Test Principles
- Half-done Versus Fake: The Intermediate Result/Mock Tradeoff
Tweets
- My code can’t be tidier than my thinking. The purpose of my tidying is to clarify my thinking by manipulating the code. The code ends up better, but because I understand more not because I somehow forced it to be better in spite of my confusion.
- The goal of software design is to create chunks or slices that fit into a human mind. The software keeps growing but the human mind maxes out, so we have to keep chunking and slicing differently if we want to keep making changes.
- All systems are created incrementally, one character typed at a time. The choice is length and scope of feedback loops.
- Big changes are an illusion. All changes are small. There are only longer and shorter feedback cycles.
- Tests should be coupled to the behavior of code and decoupled from the structure of code. Seeing tests that fail on both counts.
- duplication of effort isn't bad if: 1) it's not too much effort 2) it reduces risk or improves exploration 3) coordinating is expensive
- When you try to make fewer mistakes by making fewer mistakes you slow feedback, learn less, and make more mistakes. When you speed feedback you learn more and make fewer mistakes.
Audios
- 023 RR Book Club: Smalltalk Best Practice Patterns with Kent Beck | Devchat.tv
- A Conversation with Kent Beck and Eric Ries
- Jazz Engineering - The Deep Dive
- 16: Kent Beck - Tiny Decisions and Emergent Design
- Greater Than Code: 060: Coping with Complexity with Kent Beck
- Episode 302 | Kent Beck - Primary and Secondary Emotions
- JSJ 324: with Kent Beck
- #23 LEAVING FACEBOOK - KENT BECK
- test && commit || revert with Kent Beck
- Scale Engineering & Software Cultural Shifts with Kent Beck- EP004
- 107: Explore, Expand, Extract with Kent Beck
- Exploring Uncertainty with Kent Beck
- Facebook Engineering Process with Kent Beck
- Talking Agile and Test Principles with Kent Beck - Episode 12
- Episode 180: Extreme Programming & 3X Explained with Kent Beck
- Explore, Expand, and Extract with 3X Thinking ft. Kent Beck