When a programmer is bored he sometimes over-engineers and under-designs a project. We adopt an attitude like "well, if I have to do this in VS2005 and .NET 2.0 I may as well implement a service-locator and message bus and use all that technology I wanted to learn.

Larry Wall truthfully said the best virtues for a programmer are laziness, impatience and hubris. Sometimes you ignore these virtues when you get bored, you start to do stuff you know you shouldn't, and your laziness doesn't balance your hubris.

My new virtue that I'm going to work hard on is, ironically, laziness. :) KISS is the new methodology for me to follow: Keep It Simple, Stupid for design, YAGNI: You Aren't Gonna Need It for architecture.