4 ms·
I was struggling with that last but as well. Sure, in some cases the people before did a bad job, but in my experience that occurs way less often than engineer
by halbritt 8y ago
I was struggling with that last but as well. Sure, in some cases the people before did a bad job, but in my experience that occurs way less often than engineers simply developing for the requirements that they understand, which evolve over time, that is, both the requirements and the understanding.
It is possible to create very extensible software architectures, I’ve met many engineers that will spend a great deal of time anticipating future needs, but in many cases this constitutes premature optimization.
- _bxg1 8y agoSomething I've only recently started to grasp is that good code isn't about taking abstraction and extensibility to the very maximum, it's about picking the right amount of abstraction to fit the amount of change the code will likely face in its lifetime. Abstraction isn't without its own cost. Unfortunately, all of these design decisions - even the meta-decisions like degree of abstraction - are relative to the project and many of them have to be made at the outset, where you're only guessing what the future will bring.