KIS My YAGNI
Rudy Lacovara’s Smart Guy Disease post is a fantastic read. I’ve encountered many of those situations myself, but when you think about it in the context of Scott Hanselman’s Analysis Paralysis: Over-thinking and Knowing Too Much to Just CODE, I think it brings the overall problem more into focus.
I don’t believe that smart, seasoned, experienced programmers create overly complex solutions because they want to appear smart (though admittedly some I’ve met have). I believe Scott’s answer that we over-analyze problems, then over-architect the solution is the real culprit.
When I’m starting on a new piece of code, I often find myself thinking through and solving issues that will most likely never occur. Its a hangover effect from some bad situation I ran into previously that I simply want to avoid again.
For myself, a combination of the solutions from both posts is the best.
YAGNI – Ya Ain’t Gonna Need It
You’re a seasoned, experienced programmer who has seen many pitfalls and issues. That’s awesome. Use that experience to evaluate the actual problem you’re solving now and potential pitfalls that are eminent. Forget the rest. If / when they become problems you can solve them then. You already know how to solve them, but why complicate the problem at hand.
KIS – Keep It Simple
Simple code is easy code. Easy to learn. Easy to maintain. Easy to transfer. If you can’t explain your solution to a programming problem by pointing to well known and accepted coding standards, you most likely over thought the problem and out thought yourself. I love the standard Rudy has:
…your boast should be that your architecture is so well designed that any junior developer can come in off the street, understand the basics in a day or two, and be productive within the week.
That standard is my idea of true programming expertise. Been there. Done that. Made it simple.