Back to posts
14 Oct 2024

Make it work, make it good, make it fast. A focus on rapid product engineering culture.

Daily I notice developers and technical teams make the same mistake over and over. They focus on delivering the visual and complete applicaiton and not iterating through their task to an eventual complete solution. If you are following agile and extreme programming practises you should always have shippable software.

If you cant ship a version of the software after your first iteration, then you are not building an MVP, you are just doing waterfall projects in JIRA backlogs.

Make it work

Focus on making a single, simple working idea. It doesn't need to be: perfect, error free, production ready or every visually pleasing to your design teams. It just needs to work and perform the task you intend.

So many times we get ourselves stuck on the design, database schema, query performance etc. (Granted these are important and you should spent time on them later down the line) instead of just making a simple working THING. As developers we need to get back to building simple ideas and then iterating forward at a rapid pace.

Make it good

Once it works, great! Now you can spend the time tailoring the design, addressing and handling errors, cleaning up the integrations between services etc. If you do the "make it good" bit after you make it work if the world was going to end tomorrow you could ship a working version of the software.

It won't be great, it wont function great but it will work. More and more our industry has lost focus on what matters "Shipping working software often" to the point where we don't even have a working form for 3-4 sprint cycles.

Make it fast

Once you have it live, monitor it, optimise some more. Spend the time to fine-tune and lock in the performance metrics you want to see. Premature optimisation is the enemy of done. Done is better than fast. Done and fast is better than perfect.