Preface

These are my personal theories on software delivery with an emphasis on achieving higher efficacy without the pitfalls of imaginary and subjective metrics (story points, T-shirt sizes, etc.) that are endemic to the software industry.

Because these imaginary metrics can (and have) led to unnecessary stress and questionable business practices, I firmly believe that the software industry cannot enjoy substantial employee loyalty until employers shed imaginary metrics in favor of making the software delivery process as unencumbered as possible without sacrificing stakeholder needs.

I know some of these ideas may be counter to what has worked well for many of you, and that there is the possibility that I will even consider myself wrong about some of these core tenets down the road. However, I believe that if I am going to exemplify what needs to be changed in the software industry, I need to attempt to articulate it. This is my first attempt to do so.

Introduction

In a world where complexity often reigns, we choose a different path. We believe that simplicity is not just a design principle—it’s a way of life. Radical Simplicity is about cutting through the noise, focusing on what truly matters, and delivering results that are effective and efficient. Here’s how we live by it:

1. Only work on one thing at a time.

Take a task or story. Either finish it, or put it on hold if something more urgent comes up. Focus is your best friend.

2. Tracking known dependencies is more important than tracking how long a feature will take.

Forget about imaginary story points, or worse, time-based “say/do” commitments. Focus on whether your next task depends on something else being finished first.

3. Estimates are generally useless, just deliver it.

Don’t obsess over story points, T-shirt sizing, and the like. You could be getting work done already! Find out just enough information to know what “done” looks like and how to get started. Deliver it as soon as you can, document the steps and pitfalls as you encounter them, and refer to your documentation next time the same scenario happens.

4. Change is inevitable.

Instead of resisting change or trying to control every aspect, embrace it as a natural part of the process. Track changes and ask for a clear order of priority. This way, the most critical adjustments are addressed first, while less important changes naturally fall to the bottom of the list.

5. If a feature will reduce human agency, push back, and push back hard.

Ultimately, your software will likely be used by humans (with some exceptions). If stakeholders insist on complexity that makes a process too rigid, make sure the feature has an “escape hatch” or “override” to give agency back to humans.

6. Embrace complexity, shun complications.

Just because something isn’t simple doesn’t mean you can’t make it simple for the end user. But if a solution is unnecessarily complicated, fight it. Complication is complexity that isn’t needed to accomplish your goal when lesser or no complexity will accomplish the same thing. Kill complications with fire, before they kill your business!


Radical Simplicity is about cutting through the clutter to deliver what matters most. It’s about working smarter, not harder, and ensuring that the solutions we create are effective, efficient, and user-friendly. Let’s simplify, focus, and deliver.