top | item 35836782

(no title)

dimtion | 2 years ago

Given your last sentence incidental complexity can be created and destroyed (and is more difficult to destroy than create).

The quote would probably be more accurate as:

> "ESSENTIAL Complexity can neither be created nor destroyed, only moved somewhere else."

discuss

order

kqr|2 years ago

Essential complexity can also be created and destroyed, though sometimes it happens earlier in the design process. Picking the problem you choose to solve is how you control essential complexity.

makapuf|2 years ago

Essential complexity is inherent to the problem you have. The solutiom is layered between product design, technical design and implementation. What is essential complexity for a layer can be accidental for the layer above.

LudwigNagasena|2 years ago

That just makes it a tautology. It basically says “essential complexity exists”.

tracker1|2 years ago

It's often a matter of framing. When you abstract, refactor or move complexity it should serve to make the rest of the system/application easier to understand or for those adding features into the application(s) to be more productive as a whole. If it doesn't do one of those things, you probably shouldn't do it.

It's one thing to shift complexity to a different group/team, such as managing microservice infrastructure and orchestration that can specialize in that aspect of many applications/systems. It's very different to create those abstractions and separations when the same people will be doing the work on both sides, as this adds cognitive overhead to the existing team(s). Especially if you aren't in a scenario where your application performance overhead is in eminent danger of suffering as a whole.

paulddraper|2 years ago

It's a frame of mind.

Often a developer will see something big or complex and see it as a problem.

But they should consider whether this matches the size/scope of the problem being solved

peteradio|2 years ago

Maybe but it still useful to know that essential complexity exists and to identify it in your project.

paulddraper|2 years ago

Yes :)

That is the more precise adaptation of Kelsers Law.

Obviously you can always add also superfluous complexity :)