The other day I was bemoaning my lack of Yukon/Widbey betas, raving about XML Schema and InfoPath, and complaining loudly that there were far too many cool new technologes I wanted to check out and not enough time to look at them to a friend of mine over a cup of coffee. He’s a smart guy (well, smarter than me for sure) and he slapped me down (metaphorically) with the following simple phrase. Practices are more important than tech. You know what, I think he’s right. I like to think I write reasonable code, but I KNOW there are some practices I could use that would make my code better (like more automated testing). So why don’t I use them? Laziness? Apathy? Maybe I have my eyes on too many of the wizzy new high-tech toys that I don’t give myself enough of a chance?
Practices hurt a bit at first. If you’re used to writing imbedded SQL code and decide that you don’t want to be a victim of SQL injection attacks then making the transition to calling parameterized stored procedures might be a little painful. At first you have to write all this wrapper code around your stored procedures, then remember to give your user(s) permission to execute them. There are some things which are easier to do if you’re building a SQL string on the fly, and you’ll have to cross those bridges too. After a while you become used to it. Maybe you even automate the wrapper writing process, and calling a stored procedure becomes just like calling any other method. While your coding took a backward step for a little while, you eventually made up the deficit, and your applications will be more secure, easier to maintain, and possibly better performing as a result.
In light of my friends comments I’ve revised my TODO list a little. New tech is fun, but I’ve added a few things that aren’t quite as sexy (well, maybe I have a warped sense of sexy), but are cool, and will definitely lead me to better development practices. Maybe I’ll add “Code Complete” or “The Pragmatic Programmer” to my stack of books to (re)read. Does anyone out there in blogland want to tell me about a development practice they took up and now wonder how they ever considered themselves a programmer without?