As a profession we like to throw the term 'Best Practice' around quit a bit. But what the hell does this term really mean? Because I know that it does not mean any of the following;
- This way is the only way it will work
- This is the way that 'every one else' does it
- This has been proven to work the best
No, the term 'Best Practice' does not mean any of the above. About the only thing the term means is 'I have found that doing XYZ in ABC way works the best for me'. But just because it works for you, or even works for a group of people that does not mean it is 'Best Practice'.
Lets take a look at a few examples so I can illustrate my point.
Agile is Best Practice
Even though I believe that following Agile techniques (TDD, CI, Iterations, Planning, etc, etc) makes me a more productive developer and allows me to produce better code, I will not go as far as saying that 'Agile is Best Practice' in terms of developing software. What I will say is that for me, in my situations I have found that writing software in an Agile manner has worked out well for me.
So, you may be asking, what is the difference between saying it is 'Best Practice' and it working out the best for me. Simple. I remember being on pure 'Waterfall' based project were we did not have a single test, delivered the product in 'big bang' fashion and we were successful. The product was released to over 1000 stores over the course of 2 years, with a new release about every 6 months.
Following Patterns is Best Practice
We all know that if your application does not follow a patterns it is doomed to fail, right? The problem is that this statement is a lie. Simply following a pattern, or using the latest technique does not guarantee success. In fact, putting in a pattern or technique in which you are not familiar with can cause massive pain and heartache.
I have been on projects in the past that implemented very little in terms of patterns, or even layering and they were successful, sure they may not have been as extendable or maintainable as they could have been, but we still released the project and it was used
Remember the term 'Best Practice' is a lie meant to make you feel better about yourself and your code.. There is no 'best practice' there is only what has worked well for some, but just because it worked well for some, does not mean it will work well for you.
Till next time,
[----- Remember to check out DimeCasts.Net -----]
05-30-2008 8:03 AM