Thoughts on

A blog of various opinions and ideas on development


Make it Work, then Well, then Fast

In the world of software development, we often find ourselves grappling with the decision of how to prioritize our coding process. Should we first get our code to run efficiently, or should we focus on just getting it to run? This common dilemma brings us to a classic piece of advice: Make it Work, then Well, then Fast.

Let’s break down this timeless principle.

1. Make it “Work”

Understanding the Principle:

This is the basic foundation of any software - its functionality. Before anything else, the software needs to perform its primary task. No matter how efficient or elegant the code is, if it doesn’t work, it’s of no use.

Why is this Important?

2. Make it “Work Well”

Understanding the Principle:

Once the software is functional, the next step is to refine it. This means cleaning up the code, making it more readable, modular, and maintainable. This phase often involves refactoring.

Why is this Important?

3. Make it “Work Fast”

Understanding the Principle:

Now that you have functional and clean code, it’s time to optimize. This phase is about making your software efficient, reducing its runtime, and making it more responsive.

Why is this Important?


While it’s tempting to jump straight into optimization or spend hours perfecting code that hasn’t been tested yet, following the Make it Work, then Well, then Fast principle ensures a balanced and effective approach to software development.

Remember, a super-fast application that doesn’t function as intended isn’t valuable. Likewise, a working application that’s written haphazardly can become a nightmare to maintain. This methodology helps strike the right balance between functionality, cleanliness, and performance.