4 ms·
The author seems to be starting with the premise that complexity is necessary. I'm not sure I'd agree. Some complexity exists because the effort to simplify wa
by aazaa 6y ago
The author seems to be starting with the premise that complexity is necessary.
I'm not sure I'd agree. Some complexity exists because the effort to simplify was too great. Either cost or skill prevented the refactor. As the saying goes, "sorry this letter is so long, I didn't have time to make it shorter."
I've repeatedly found that the first iteration of a solution tends to be more complex. One culprit is that sufficient abstractions were either not recognized or not implemented. Put those abstractions in, and you simplify the system.
So that refactoring step after an initial solution is created is crucial and unfortunately often just not done.
- deleted 6y ago[deleted]
- gmfawcett 6y agoIt depends on the kind of work. Systems integrations are often complex for uncontrollable reasons. That one legacy system only speaks ASN.1, not JSON; the three vendor systems have different semantics for a fundamental concept (vendor, order, shipment); failure modes are under-documented, so defensive programming is needed; etc. If we accept that the integration itself is necessary, then the complexity necessarily comes along with it. Not to mention all the complexity generated by the client base: I'm paying for this system, it's mine, so make it do X, even if you think X is too complicated/impossible/etc.