It’s remarkable how much better life is on a development team with this simple rule:
Code is automatically deployed to production when merged.
No more long release coordination threads.
No tedious approval processes.
No manual, repetitive, time-consuming steps.
Just merge.
This one rule fosters many other helpful behaviors:
✅ Get feedback early and often.
✅ Write good tests you can trust.
✅ Use feature flags so you can deploy incomplete features, or roll back if there are issues.
And, if a bug slips into prod, getting a fix in is straightforward:
1. Toggle the buggy new feature off (you used a toggle, right? 😉) 2. Merge a fix. It’ll automatically deploy in a few minutes. 😎
This is why release frequency is an excellent dev team health indicator. If a team releases multiple times a week, they’re likely doing a lot of other things right to enable it.
If releasing is hard, do it more often. </thread>
• • •
Missing some Tweet in this thread? You can try to
force a refresh
When a measure becomes a target, it ceases to be a good measure."
— Goodhart’s Law
Example 1: Story points measure difficulty. But, if you set a target for story points completed per week, developers inflate their story point estimates to assure they hit the target.
Example 2: Tracking code coverage helps the team understand what code is tested. But if you target a certain code coverage percentage, developers game the system by writing useless tests.
Example 3: Burn down charts help estimate the completion date. But if you set a goal of burning down to zero every sprint, developers commit to less work in each sprint. And they avoid proposing any work that’s hard to estimate. This assures they can burn down to zero.
Let’s talk about the implications of researching decisions (Thread)
If I quickly make a decision, it feels unimportant. I go with my gut. I’m typically happy.
Occasionally, I decide to research a decision. More research leads to better outcomes, right?
Not necessarily...
If I heavily research a decision, the decision feels more important. I want to justify my research time. So, I search for every tradeoff. I optimize for perfection. But, because my expectations are now so high, I’m more likely to be disappointed! 🤦♂️
So, here’s the trap: The more I research a decision, the more important the decision seems. This leads to problems:
1. Overspending due to over-valuing minor differences and fear of missing out.
Just finished "Unscripted: Life, Liberty, and the Pursuit of Entrepreneurship".
If you aspire to own your own business and retire early, this book sets the foundation for an entrepreneurial mindset.👍
Summary: You have to break the "script" that society has encoded into you...
This book may offend. It describes "model" citizens in a derogatory manner:
Mediocre
Obedient
Dependent
Entertained
Lifeless
It contains quotes like this:
"Herds are manufactured for a purpose. Slaughter and manufacturing."
And this:
"The rats race needs rats".
And this:
"If I except average advice from average people living average lives, how can I expect to be anything but average? Conventional wisdom creates a conventional script which produces conventional results."
"The ability to change your mind is a superpower." - @farnamstreet
Open-minded indicators:
-Have you carefully considered content that disagrees with your current view?
-Do you ask questions with a desire to understand?
-Are you more interested finding truth than being right?
Other indicators:
- When speaking to someone with whom you disagree, are you focused on understanding their view, or merely defending your stance?
- If someone suggested content that disagreed with your current view, would you be willing to consume and consider it?
Related quote:
“If all of your beliefs line up into one political party, you’re not a clear thinker. If all your beliefs are the same as your neighbors and your friends, you’re not a clear thinker – your beliefs are socialized. They’re taken from other people." - @naval