Best Practices Starts Small

time to read 2 min | 385 words

Jay Kimble posted in response to Sam Gentile post about Microsoft's future direction. The part that I didn't like was:

Honestly while I understand the whole MVC pattern and why everyone is all gaga... it's not always necessary to go to that extreme.  My understanding has been that MVC is great for web sites that have high traffic...

And short afterward, we have this gem:

I could probably give a number of the DailyWTF entries based on examples from this site

I had the chance of working in systems of exploding complexity, what I have found is that shortchanging the best practices even in the small has a high cost on many levels, testability, maintainability, complexity, etc. The problem is that you start small, thinking you can just hack it done, but when change is required, which is inevitable, you are in for a world of hurt. This kind of thing leads to awkward technical solutions that doesn't solve the root issue, are much more complex than they should, and obfuscate the solution entirely.

Here is the secret about these kind of best practices, done right, they are less costly than the just throwing code at the problem. If you are building non-throwaway code, then I would always suggest to use the best practices, even if you start small.

Jay's point about MVC being applicable only to web sites with high traffic is not correct, MVC is about splitting responsabilities in the application in a consistent manner. It is as application in a toy applications as in a highly scalable ones.

There are a set of patterns that you want to use if you are building truly highly scalable applications, but they really make your life harder for smaller scale applications (the vast majority). But, and this is important, in a properly designed application, it is usually not hard to make significant changes to the application as a whole, and add the best practices that fit your specific scenario.