When I first started as a programmer after college I learned that there are many different ways to develop requirements and many different coding features that could be used. I used to create the most brilliant architectures and technical solutions (according to me) using these cool features. The problem was that they resulted complexity to support and maintain and probably went beyond the business requirements.
As I have gained experience in my career I have learned that simpler approaches are always better. This applies to the creation of code, documenting processes or any other solution that I have tried to implement. Simpler solutions are easier to create and maintain and make sense to people. I have realized that there is a curved relationship between my experience and the complexity of the solutions that I have implemented. The figure below shows this relationship that as I first started I made things really complex, but as I gained experience I would make things more simple.
In my career I have seen countless examples where well-intending people have overcomplicated a solution or process. The net result is long lead times and complexity that has built up over time and is very hard to unravel. Now I try to make a conscious effort to keep everything as simple as possible. Based on the curve above, now when I see something that is simple I realize that the person who created it either didn’t know better (left side of curve) or was a genius (right side of curve)!

The curve is missing 3 dollar signs.
By: Bmc on February 11, 2012
at 5:54 pm