The importance of tools to a software craftsman

And I have filled him with the spirit of God, in wisdom, and in understanding, and in knowledge, and in all manner of workmanship — Exodus 31:3

Folks often wonder why I carry my keyboard around with me everywhere there is a chance I need to write some code.  Bringing it home every night from work, carrying it with me to client sites, etc.  Here’s my (possibly feeble) attempt to try and give an answer as to why.

I like the term software craftsman very much.  For example, I’m sure folks who do carpentry for a living have their favorite tool(s) that they have mastered.  This allows them to produce some beautiful work with great attention to detail.  And the fact that they have learned to use their tool(s) effectively probably means they can work very efficiently.

This is exactly how I see the tools I use to build software.  Let’s face it, you’re not going to get very far building software without a good keyboard.  And I’d go one step further and say you’re not going to build software very efficiently if you’re not using your keyboard effectively.  And that applies to more than just your keyboard of course.  For all of you other ‘softies out there that have to use Visual Studio, if you’re not using a productivity add-in like CodeRush, or my long-time favorite, ReSharper, then you’re not working anywhere near as efficiently as you could/should be working.  And frankly, it’s not that hard to point out the overwhelming value that such tools can bring vs. their cost.

So I guess I would just encourage folks to acquire and learn to master the tools necessary to be as productive as you possibly can as a software craftsman. 

Quick Tip: Asserting response redirects in a MonoRail controller test