Three Methods of Reducing Complexity
From reddit, I found a really nice and succinct description of the three ways to reduce complexity. This helps with my quest to define “simple” for software (a more difficult task than you think), and to popularize the idea of making things “simpler” and not just “easier”.
The paper talks about reducing complexity, which is in opposite-talk the increasing of simplicity. Partitioning is about reducing the number of things that must be dealt with simultaneous, which is why I tend to find arrays and subscripts less “simple” (though “easier” to think about sometimes) because it has more bits to twiddle. It talks about narrowing focus, which I think is key, further described as “obstruct as much as possible each modules view […] of the system”. Very nice.
An oblique statement “the shape of the hierarchy is important and should reflect the functionality of the system” is pretty hard to test for.
I’ve got this bookmarked and now blog-marked as well. The programmers (and software managers) amongst us should spend some time on this.
Powered by ScribeFire.


