# My Guiding Philosophies
I recently came across the document where Andrew Jarvis, Chris Palmer, and I laid down our startup’s organizational values. These values, drafted more than five years ago, felt like a peek into the past—but to my surprise, they also felt timeless. Reading through, I found myself thinking, “Yes, this is still how I approach my work.” So, here’s an updated, polished version of that original document, complete with my reflections on how each value holds up today.
Do Everything in Iterations
Nothing is perfect the first time. Don’t expect it to be.
Whether you’re coding, designing, or refining a process, work in vertical slices that deliver value in small, steady chunks. This approach forces end-to-end testing early and often, making you confront real-world use cases sooner. Plus, it opens up an invaluable feedback loop with your customers as you build.
Do the Easy Thing Before the Hard Thing
Often, a “good enough” iteration is all you need to create value.
It’s tempting to build a perfect solution, but remember the 80/20 rule: most problems can be addressed by a simple, good-enough fix. When you get that in place first, you’re testing assumptions faster and using your resources wisely. And when “good enough” isn’t enough? Your customer’s feedback will tell you if it’s worth diving deeper.
Choose Automation Over Processes
Automation lets us focus on the interesting stuff.
Processes are prone to being forgotten or slipping out of sync. But by automating, you reduce time spent on maintenance, prevent outdated documentation, and cut down on the busywork that pulls your team away from impactful problems. That said, automation isn’t about removing people from processes—it’s about freeing them up to solve high-value challenges.
If You Can’t Automate a Process, Make It Predictable
Establish a cadence and a reminder, so things get done.
Not every task deserves automation, but that doesn’t mean it has to be forgotten or inconsistent. For these, build predictability into the process. Setting a cadence and a recurring reminder can ensure that even the non-automatable tasks get the attention they need without eating up your mental bandwidth.
Transparency
Few private conversations, no private work, no private code.
Building a team requires trust—and transparency is trust in action. When documentation, code, and deliverables are internally public from day one, everyone’s on the same page and empowered to contribute. Open access keeps accountability high and the bus factor low, so no one is irreplaceable in a pinch.
Document Everything
Write for future-you and the people around you.
The goal here is self-explanatory but deceptively tough to execute. Choose best practices that self-document—intuitive variable names, clear types, logical workflows—to make your work readable and maintainable by others (including future you). Good documentation is like an insurance policy against your own memory.