Comment by nilirl

13 hours ago

Can you have a coding philosophy that ignores the time or cost taken to design and write code? Or a coding philosophy that doesn't factor in uncertainty and change?

If you're risking money and time, can you really justify this?

- 'writing code that works in all situations'

- 'commitment to zero technical debt'

- 'design for performance early'

As a whole, this is not just idealist, it's privileged.

I would argue that these:

- 'commitment to zero technical debt'

- 'design for performance early'

Will save you time and cost in designing, even in the relatively near term of a few months when you have to add new features etc.

There's obviously extremes of "get something out the door fast and broken then maybe neaten it up later" vs "refactor the entire codebase any time you think soemthing could be better", but I've seen more projects hit a wall due to leaning to far to the first than the second.

Either way, I definitely wouldn't call it "privileged" as if it isn't a practical engineering choice. That seems to judt frame things in a way where you're already assuming early design and commitment to refactoring is a bad idea.

  • Your argument hinges on getting the design right, upfront. That assumes uncertainty is low or non-existent.

    Time spent, monetary cost, and uncertainty, are all practical concerns.

    An engineering problem where you can ignore time spent, monetary cost, and uncertainty, is a privileged position. A very small number of engineering problems can have an engineering philosophy that makes no mention of these factors.

Their product is a high-throughput database for financial transactions, so they might have different design requirements than the things you work on.

  • Yes, my point is it's a privilege to have an engineering philosophy that doesn't need to address time spent, monetary cost, or uncertainty.

You forgot “get it right first time” which goes against the basic startup mode of being early to the market or die. For some companies, trying to get it right the first time may make sense but that can easily lead to never shipping anything.