I've spent the past day or so designing a set of classes to parse in some events from a telephony system and then log them to a database. Having created 5 of the dozen classes I figured I'd need to parse the event parameters into a hashtable figure out what the event was and create an insert statement. (A base class and interface for the event and event data classes that hold all the event data + factories...)
I Had an epiphony that the whole design was a bit complicated for what it needed to do as there was no manipulation of the events at all.
I've redesigned it down to three methods that take event headers and data and return an insert query...
So I guess Occam's Razor strikes again...
What is your biggest over complication of a simple probelem? And when did you have that "forehead slap" moment when you realised you'd over designed it to high hell?