F2F#94: Ship it or don't build it

F2F#94: Ship it or don't build it

Photo by Tim Arterbury / Unsplash

The old adage says that developers don't build the same app twice. If you're asked to build a very similar app to one you built in the past, it's better to build it from scratch because you're a better developer now. You've learnt more better practices, your code is cleaner, your architecture is sounder and you know the straightest path because you get to avoid the many iterations and learnings you endured in the first project.

That is how learning works: through repetition and by improving little by little, becoming more efficient every pass and avoiding painful mistakes from previous iterations.

One could argue that this is what's happening now that we know that the cost of creating code is virtually zero: it's better to code from scratch. If you built a solution two weeks ago for a particular problem, unless you have exactly the same problem, you will most likely develop something from scratch.

While the old app might prove useful, it doesn't scratch the itch of creating something new, and the cost of digging up your context, knowing how to pick up from where you left off and ensuring you don't carry technical debt that might make your new project a bit less efficient than desired, is unapologetically unwelcome. That's also exaggerated, if you ask me, and comes from a place of high privilege. In a way, we've become spoiled rich kids. Rich in tokens, but still rich.

Most people's Claude/ChatGPT/thelike are vast AI slop landfills. That's why I put so much effort in F2F #93: Keeping Claude tidy. Most likely, the waste in tokens is negligible, in terms of cost, effort or even societal impact, but I think it comes down to principles: we value less the things that are built for a single use. Cheap shit, you treat it like cheap shit. However, that Japanese knife someone gave you 15 years ago as a present, you barely use it to preserve it in pristine condition.

Now, while I could go off on a tangent of "we only buy cheap shit and that shapes how we treat our stuff", I'd rather stick to the topic here.

I want to make a case for a contrarian take. While everyone is building cheap single-use throwaway AI slop-ridden apps, they're wasting a precious opportunity to master the craft of software engineering.

That's why I have committed to finishing, refining and launching pretty much every single app I am developing.

  • Because by knowing someone else might use it, I will put more effort in making it work better.
  • Because by knowing someone else might see its code, I will put more effort in understanding the code.
  • Because by knowing that potentially lots of people might use it, I will put more effort in thinking through the architecture and make the right calls.
  • Because by putting it out there I will be subject to social accountability, and therefore I will make sure these apps stand up to a certain degree of quality.
    • And precisely, as the CEO of MarsBased, a company that prides itself in the quality of our code, I shall not release shit out there.

In the vast oceans of AI slop, you might still come across small boats navigating the heavy currents of this paradigm change. But instead of surrendering to being carried away by the drift, we might steer to reach our goal faster.