HeadlinesBriefing favicon HeadlinesBriefing.com

Why Building Software Is Still Hard: A House Analogy

Hacker News •
×

It’s 1 pm on the final day of the Hackathon, 5 hours left. For the last 2 hours, we made ZERO progress. I’m cursing the day Lovable was born. As soon as I fix one problem, another appears, and our app is barely usable.

The start was promising. I joined 2 engineering friends and 3 recruiters to build ‘Honey Crew’, a smart referral system. We chose Lovable so the recruiting team could maintain it later. On day one, we FLEW, completing 90% of the project. On day two, minor improvements broke everything. Endless bugs, slowness, stress. The recruiters couldn’t understand what went wrong.

How come? An allergy to ‘infra work’. A senior leader loved to say he had an allergy to ‘refactor’ and ‘infra work’. After LLMs, he asked: “Can’t you just give this task to Chat GPT?” Many non-technical leaders think engineers exaggerate.

A coworker framed it: “You write code, which is just words in a language I don’t understand, right? How come it always gets more complicated?” I struggled to explain until I almost bought a house. Imagine if your software was a house. A contractor said: “I wouldn’t recommend it. It’s too old. It’d be much simpler and cheaper to destroy it and build from scratch.” He could have been a great software engineer.

The house-building process has been known for thousands of years, and still every new one has different problems. Why can’t you just fix the issue fast? Your roof leaks. You can either put a bucket on the floor, or find the root cause. Why can’t you just solve this specific use case, without all that “infra”? Adding infrastructure to support a 2nd floor is MUCH cheaper now than later.

So it’s 1 pm on the final hackathon day, and everything feels broken. We stopped our vibe coding frenzy and carefully went over one area at a time until we had a simple demo-able flow working. Understand, plan, implement. Much slower than our day-1 pace, but we at least ended up with a working demo-able flow.