27 ms·
I believe complexity is nothing that can be created or destroyed, but just moved around. Sure, you can create artificial complexity by making things harder than
by 9dev 2y ago
I believe complexity is nothing that can be created or destroyed, but just moved around. Sure, you can create artificial complexity by making things harder than they need to be, but that just the complexity of the side effects you added accidentally. When you reduce the solution down to what is needed to solve the actual problem at hand, the complexity required to do so will always be the same. Now, you can hide that complexity behind an abstraction; it’s still there, but hidden behind a trade-off: you placed a cover over the gears, made it look nice and clean, but if you have to change gears, you’ll need to remove that cover first, and possibly make a new one afterwards. The overall system complexity stays the same.
Now, I think what most engineers enjoy is the act of slicing the complexity in neat boxes, and shift them around, until it feels balanced. It’s a very similar task as building a cairn from pebbles, actually, just on an intellectual level. You get the joy out of a feeling of accomplishment when the stack balances out.
- keepamovin 2y agoThat's a good attitude too. Maybe if you are employing a 'bad programmer' on your team you are just moving the complexity in their own brain/worldview into your team/codebase hahaha! :) I agree with you that there's unavoidable complexity and there's a limit. Let's assume we can even get to that clarity, but it's achievable to get there - and once you get there you realize that we just have to dive in. There's no way around it. Even so I'm always looking for that simple-as-possible, first-path-to-poc way to do it. Another thing you said is interesting too: the balance of complexity (almost aesthetic that arranging isn't it?). That's very clever and I that describes the 'dark side' of 'good designs' that are actually not useful, even tho they may appear elegant. This has produced a lot of really interesting answers. I feel condifent saying that programmers in general definitely work with, think about, and are intimately invovled with complexity. I think because we are (in a down to earth not grandiose way) at the coalface of programming reality, and reality is complex.