10 ms·
I personally refer to these concepts respectively as inherent and incidental complexity, what should be classed as inherent complexity is anything that directly
by pm 6y ago
I personally refer to these concepts respectively as inherent and incidental complexity, what should be classed as inherent complexity is anything that directly supports the description of the problem. Everything else is incidental complexity (and we mostly write incidental complexity).
The big thing that I don't hear often is about where complexity lives. Complexity is like a pile of receipts you need to hunt down to do your tax - you can have it distributed all over your house, you can sweep up into a pile, or you could file it. The first is by far the most complex, and I've worked on codebases that looked like that. Even the most trivial of changes takes a long time.
- jariel 6y agoI think the bifurcation might be more clearly described as 'problem space' and 'solution space' complexity. The 'complexity of the problem' is inherent, by definition. Unless accountants want to literally change the requirements. The complexity of the solution space is something else entirely and it may be hard to derive theoretically ... But with sufficient tooling, such as AI, maybe it becomes trivial. If we have 'AI Apis' that can immediately handle complex problems and dissolve them into something really simple, then many apparently complex domains could be reduced to something simple. As long as we're allowed to use 'other software' and not have it 'count' as part of the complexity we are measuring, well, the then complex of the 'app' tends towards 0. You can already see this a little bit with CRUD apps, which often feel like just gluing some forms together.