means you can't be sure what it does, which means even if it works it might not work in the way that you think which means it might contain bugs and it will
be hard to work on in the future.
Throw it away and find a smarter way to do it. Or a less smart way. Find
the simplest way to do it.
means it's too complex for you to understand. No matter how hard you try, you will not comprehend.
s think they know everything about everything, so nothing is TooComplex
But they just call it that, while they secretly do understand it, and expect nobody else to.
Sometimes, they are right, but this is very very rare
-- Norbert Fogarasi
is a bad situation for large legacy systems. If the dependencies are so great and the code so opaque that a MaintenanceProgrammer
can't understand it, the MaintenanceProgrammer
will probably just use TrialAndErrorProgramming
. This makes the code even more complex.
When examined closely, the items initially termed TooComplex
may turn out to be understandable. The object or system can be understood if one takes the time to examine it OnePartAtaTime?
. Time is the key word here, It takes time to understand and navigate ComplexSystems
It is a SimpleApproach?
to understanding, but requires the investment of effort and the investigation of the reasons for complexity.
is often only an excuse.
"Imagine a MxMxM Rubik's Cube, M larger than, say, 20, and the cube starts out solved. Make a minor change through the interface, and you've just made one turn of the cube, and everything gets slightly messed up. After N such changes, it is completely impossible for a human being to figure anything out." -- Saarus
That depends on various things, such as the labelling, what resources are allowed, etc.