in general, the .NET crowd overthinks and over-engineers just about everything
No matter how bad that sounds – you have to admit it’s probably true (though, im sure its not just a .net thing – it’s a developer thing). Over thinking and overdoing isn’t always wrong – that extra step may be ‘the next big thing’ or pushing the boundaries of what’s already been done. But in most day to day work, sometimes we could just be wasting our time.
His post actually references a post made before it – about jumping the 20% fence. While I didn’t feel that this was pushed in the article, I feel that a good chunk of the ‘bugs’ every developer faces can be from over thinking the actual problem. The more complex your project (as a programer, or any other profession really), the more complex the bugs can be, and the more difficult it can be to get to the root of the problem.
That’s not saying you have complex problems to solve. When solving thee problems, its amazing to look back and say ‘wow, I really did that, and it works!’. But one thing that has always helped me is to break everything down and look at it piece by piece. Develop each piece, and link everything together. Then This not only helps simplify the problem, but helps you to refractor your code as well. Once you know each of these pieces, refactoring is much easier, and helps you see the problem solved as a whole in the end. Finally, if even a ‘little piece’ is to complicated, theres a chance that it can be broken down even more.
I have found that focusing on each of these pieces, getting them done, and moving on – it really adds up. Taking a break isnt bad either – plenty of times I have felt ‘stuck’ on a problem, got up to get something to drink, and came back to easily solve something I thought was near impossible just moments before.
Personally though, I think this may be one of my favorite quotes:
Simplicity is beautiful.