Ryan Trudelle-Schwarz

ROI, or life as a consultant

I remember dreaming about consulting while back in school, all those years ago. I had this notion that I would be an army ranger type, parachuting in to solve a major problem and heading out amidst heavenly praise. Now that I'm jaded, I know better. There's no parachuting involved, surprisingly little problem solving and rarely any praise. Instead of praise what we usually get is a constant glassy eyed stare. Within the reflection of those eyes can clearly be seen dancing dollar signs. Gold plated dollar signs. Encrusted in diamonds.

Perhaps that's a bit overly dramatic but we do, constantly, have to prove ourselves to our clients as they, ultimately, are paying us to be there (Mind you, I'm fortunate enough to be a salaried employee of Magenic, the world's best consulting firm, imho anyway). So, one of our main activities is to prove our worth, our ROI. One of the ways I generally do that is by being faster, better and more knowledgeable than any of the client's employees. In many cases this is a tall order, so any tools we can bring to the table to help out are always a good thing.

Among the tools which I use these days to boost my performance are Visual Studio and CodeRush with Refactor!. With each new version of Visual Studio I've used, my productivity has gone up. The tooling in 2005 is fantastic, and looks to be even better in 2007. That said, there are holes in what Visual Studio can do for you. The biggest in my mind is that you still have to type almost everything (yeah, I know, it supports snippets and such, and does some expansion and inference here and there, but in general). Things I find exceedingly boring like writing boiler plate properties and such, can be tedious. However, I don't feel comfortable going to the other extreme and using code generators. I need to be intimately familiar with the code I write, otherwise it isn't mine.

Enter CodeRush. I started using this when it was in early Beta back in 2003 or so. I've never been without it since. Simple things that once you get used to them, you can't live without. Among my favorites (these are all out of the box, I haven't updated:

  • Paste a field and have it automatically wrapped up as a property, with the cursor waiting for you in the setter block.
  • Hit the LEFT or RIGHT arrow key while hitting ALT and the cursor skips left or right to the next word within a camel cased identifier. Can't even fathom how much time and typing this saves.
  • CTRL+C without anything selected, before, within or after an identifier copies the identifier.
  • CTRL+3 embeds a property or method in a region bearing the name of the property or method. I use this to embed every property and method for a nice, clean view of my classes without resorting to gargantuan regions.
  • ALT+UP or DOWN arrow key within a method / property / class changes the visibility of said method / property / class. There's also a drop down to do the same, if you ever need to take your hands off the keyboard.
  • Context lines. If you've ever seen someone using CodeRush you know what I'm talking about, thin lines that link the open and closing of any block of code.
  • Refactoring, without the overhead of Visual Studio. Yeah, you can do many of the same things in Visual Studio directly, but it does it across a solution, which can take ages.
    • For example, renaming a variable and all references within the file, live, in real time, without indexing every file in the solution.
    • One I've been using quite a bit of late, removing type qualifiers throughout a file (adding a using statement at the top and applying it).
  • Typo fixers, things like "1=" gets turned into "!=".

Anyway, the list goes on, those are just off the top of my head. Point is, with all the tools I've tried, the one I really hate living without (I've had to do it before, but it gets ugly) is CodeRush. Personally I think every developer should have a copy. Then again, maybe I should hold on to this little gem to make myself look better to clients ;)

Ryan Trudelle-Schwarz