4 ms·
Seems like a great argument for clear, modular, well-written code to me. Sometimes you get dead ends, but that's true of evolution too. If your base is sufficie
by benwerd 17y ago
Seems like a great argument for clear, modular, well-written code to me. Sometimes you get dead ends, but that's true of evolution too. If your base is sufficiently flexible that it can tolerate significant changes, the amount of refactoring you have to do further down the line is diminished.
- sophacles 17y agoThere are some problems with this. First, it assumes you know up front the best way to solve the problem. Second, it assumes that the problem doesn't ever change. Third, it completely ignores a suprisingly common issue: the tradeoff. By this I mean: sometimes modularity/flexibility in one area requires being unflexible in another. Guessing wrong requires a big refactor. There are good arguments for both -- sometimes you just have to do one and find out if you were right. The problem comes when management says "how come you didn't do it right the first time?" and refuses to accept that thier three sentence change of spec requires serious redesign.
- nocivus 17y agoThat is precisely my point in the post: A lot of times the problem itself changes. Not to mention the requirements that management sees as "details" but that, in reality, are complete game changers as far as the system architecture goes.