Values as Navigational Guideposts
Values are guideposts that help us navigate trade-offs and competing priorities. Through experience, I’ve found the following core values consistently useful across organizations. While these offer a solid foundation, they are best complemented by 1–2 context-specific values that reflect the team’s unique mission and environment.
Simplicity
Simplicity is the enabling value.
Unnecessary complexity is the root of all evil. It slows teams down, increases bugs, and makes onboarding harder. There are countless horror stories of businesses failing or being outcompeted due to overengineered systems.
A client-server monolith solves 90% of the problems.
Favor the simplest solution that could possibly work. Simple solutions are easier to build, reason about, debug, and evolve.
Speed
Execution speed is a competitive advantage.
Shipping early and often is better than waiting for “feature completeness.” I really like the tracer bullet approach from The Pragmatic Programmer: deliver minimal, end-to-end slices frequently and improve them through fast feedback loops.
Speed isn’t about cutting corners — it’s about optimizing learning and iteration.
High Agency
High agency means full ownership.
In software, this means caring deeply about the reliability, correctness, and user impact of what we ship. High-agency developers don’t stop at “it works on my machine” — they ensure the product behaves correctly in the real world, even under failure.
This includes building in observability, being responsive to incidents, and proactively preventing regressions.
Craft and Taste
Not only working software, but also well-crafted software - Manifesto for Software Craftsmanship.
In an era of AI-assisted coding, craft matters more than ever. While AI can handle boilerplate, taste and judgment remain human responsibilities.
In the words of Professor Clóvis de Barros, it’s having brio: doing things with pride, care, and excellence.