Live data from Hacker News

Best Simple System for Now (2025)

dannorth.net

11–20 of 20 posts

Re: Best Simple System for Now (2025)

#11
I think context matters a LOT here. Knowing when to be pragmatic and quick vs thorough is the mark of an experienced engineer. The trick is knowing HOW to pick the right approach.

A key point is understanding the business (or personal) goal of the system.

Is this a mission-critical system that is core to how the company makes money? Then make sure its robust.

Are you a startup figuring out product-market fit? Then thorough and robust systems matter less. The goal is figuring out how to get users and customers, not stabilize.

I actually wrote more about this a while back: https://www.buildthestage.com/when-should-you-over-engineer-...

Re: Best Simple System for Now (2025)

#12
There's no way to formulate this as a set of rules or best practices, each decision has to be made in a universe of context, but I appreciated this discussion.

Something I like to do is funnel the desire to build for something I don't need right now into TODOs and even FIXMEs. Sometimes they just get deleted, but other times I'll come across an old TODO during refactoring and be able to pay down a bit of accumulated technical debt.

Re: Best Simple System for Now (2025)

#14
post #2

> A CTO friend uses the metaphor of clearing two paths up a mountain. The left-hand path is quick and dirty, cleared with a machete and brute force—you do not expect anyone to follow you, you just hack your way through—but you make progress quickly. The right-hand path is a wider, clearer, paved path, and more substantial, but takes time to build as you go along. This is a good metaphor and is more effective than the…

Maybe it's different in other languages, but if I ever see hand-rolled serialization in a C# project I'm putting replacing it at the top of my to-do list. There is pretty much no reason to do that ever, serialization is a solved problem. It's flat out stupid to spend extra time hand-rolling a solution that most likely ends up buggy and requires even more work in the future etc. I also often see people waste hours or days writing custom serialization logic for a serialization library, when they could have just written a new class in the shape of the data and been done in 5 minutes.

I did work on such a project once. There was a CMS web app which needed to sync data from a third party api to rebuild some pages every night. To do this they had a client library that pulled the data twice daily and stored it in a db, then the CMS app pulled the data through the client library. The API used XML and significant parts of this library were a hand-rolled xml serializer. It worked so I didn't touch it, then it stopped working. Spent days trying to fix it but the more I studied it the more I realized it was entirely pointless. Spent about 1 day replacing the whole thing with a simple little function that just calls the api, deserializes the data using a library and builds the pages. Remove the pointless DB, remove the giant legacy quagmire integration library, this project probably took months to write and I replaced it in a day, making it orders of magnitude smaller and faster.

In the end my solution wasn't used because of office politics, apparently they'd paid a significant amount of money to use this pile of trash and replacing it that easily would make someone look bad or something. So I ended up fixing the pile of crap in the end, even though I had a replacement ready to go.

Re: Best Simple System for Now (2025)

#15
post #6
post #2

> A CTO friend uses the metaphor of clearing two paths up a mountain. The left-hand path is quick and dirty, cleared with a machete and brute force—you do not expect anyone to follow you, you just hack your way through—but you make progress quickly. The right-hand path is a wider, clearer, paved path, and more substantial, but takes time to build as you go along. This is a good metaphor and is more effective than the…

I think it's a bit nuanced, and maybe poorly explained by the original author, but to me, "left-pathers" are always "move fast and break things" to the point that whatever they build really only works as a throw-away prototype, and the effort to architect sensibly is minimal. "We don't really need to use REST, we can just create some endpoints that have undocumented side-effects. We don't need to abstract vendor call…

The middle path is people that know that to scout around, you hack quick paths. Then you document your new learning, plan the best road, and then build enough for the actual journey. Every now and then, you go back and adjust everything to account for actual usage.

Re: Best Simple System for Now (2025)

#17
The hover-text for the OP's linked xkcd cartoon is :

  I find that when someone's taking time to do something right in the present, 
  they're a perfectionist with no ability to prioritize, 
  whereas when someone took time to do something right in the past, 
  they're a master artisan of great foresight.
or, loosely reinterpreted: Don't make me wait for my donuts!

In OP's terminology, I would add that the left-path ascenders are playing king-of-the-hill as they know that (in our current business environment) they can be the one to roll down rocks from the top to both crush those latecomers attempting to overtake them, as well as cheaply flatten paths up for the consumer masses.

Those masses will pay this King for an easy ascent because, above all, the Hormuz spice must flow.

Who has time to make their own donuts?!

From this kind of P.O.V. the OP's middle and right paths are often just losing strategies whose appeal lies in their comfort & morality (i.e. a luxury of personal preference).

To be clear, I am not personally advocating for Capitalist Utilitarianism here, but I find it worthwhile to see our current turmoil from this higher viewpoint and perhaps relevant to some personal software development decisions.

The Moon is a harsh Mistress.

Re: Best Simple System for Now (2025)

#18
This article describes one of the classic polarities in our industry, the tension between the short term and long term. There are many others, such as the tension between autonomy and alignment in organisations with lots of teams. The article did not mention polarity management, but it would help it if it did IMHO. The essence of polarity management is that the problems described can never be solved once and for all, because it's not a problem that you can fix, like you can fix, say, the damage to your car after an accident. The short term and long term tension will be ever present, and the key to managing them is to acknowledge that both have positive attributes, but both, when taken too far, have negative ones. The best advice in these kinds of situations is to work out in which direction you may have leaned too far, and lean back the other way. The key is not to dogmatically lean back too far the other way because you've treated it as a problem that can be "fixed". It can only ever be managed, and each fix creates the next imbalance.

Re: Best Simple System for Now (2025)

#19
Does BSSN still apply to the agentic era, though? Agents are compilers for ideas and architectural molding is kind of trivial at this point. So, one can start with an execution that works for the current state and complexify the implementation lazily if and as the need arises, later.

Re: Best Simple System for Now (2025)

#20

I think context matters a LOT here. Knowing when to be pragmatic and quick vs thorough is the mark of an experienced engineer. The trick is knowing HOW to pick the right approach. A key point is understanding the business (or personal) goal of the system. Is this a mission-critical system that is core to how the company makes money? Then make sure its robust. Are you a startup figuring out product-market fit? Then th…

[flagged]
Post reply on HN