Have you ever encountered an over designer? An over designer is a software developer that had some life changing event and became obsessed about architecture. The result being, obsessive decoupling, endless coding of Factories, creating deep (also needless) inheritence hierarchies and various use of design patterns for no good reason.
I believe the over deisgner is a mutation in the natural evolution of a software developer.
Software Developer’s Evolution
Not every software developer reaches to Senior level. Few reach to Jedi Master and some rare geniuses evolve to Jon Skeet’s level.
I believe somewhere during the transition from Code Monkey to Senior a mutation occurs: The Over Designer.