Back when I was put on my first Agile (with a capital A) project at VW Credit we did paired programming. We had 3 pairing sessions a day except for the days we had our IPM, Showcase and Retrospective. I was one of the stronger developers on the team and thought our code quality would be up a bit and our knowledge sharing (or Bus Count) would be up as well but I really didn’t think I would learn a heck of a lot from pairing with some of the less experienced developers. I was proven wrong the first pairing session I had with Steve.
Although I knew more about the code and the API and development in general, I started to realize when Steve was driving that when I explained what we wanted to do with a piece of code how fast Steve was at coding. It wasn’t just the typing, for I could type as fast as him, it was beyond that. It was the way that he would open his tool windows and the way he jumped around the code. He would also make crazy use of shortcut keys and used temporary macros like they were going out of style.
It got to the point where I was actually the one feeling a little self-conscious when I was coding; when you would think it would be the other way around. I would start coding something and in my head I would think, “Steve must be thinking I am coding this so slow” and this would cause me to go even slower. I finally realized that Steve was very rarely using his mouse. I brought it up to him and he said that he used to use the mouse quite a bit but he had a co-worker that swore by using the keyboard as much as possible to speed up productivity. Steve said it was quite difficult at first and it was probably a good two weeks of forcing himself to be less dependent on the mouse and then it just became second nature.
Our entire development team ended up embracing Steve’s Anti-Mouse mantra. In fact we ended up installing an application on all our workstations that would keep track of how many yards our mouse moved for the day and would announce at our Daily Stand-up when someone broke the Shortest Distance Record.
So try it out for 2 weeks and see what you think. I would start with:
- Getting to know the shortcut keys to the 2 or 3 applications you use most
- Visual Studio – you can also create your own shortcut keys to be more efficient. If you are doing something over and over again, think about recording a macro and assigning it to a key combination. For example if you are in my environment and you hit CTRL-SHIFT-W the current word where the cursor is would get highlighted and copied to the clip board. The Watch window would then take focus and the word would get pasted into the Watch window.
- Mouse Tracker – for those that want to make a game out of it or to visually see how well they are improving
- AutoHotKey – If there isn’t a shortcut key, then make your own. AHK is a great scripting language that allows you to easily assign text and/or mouse activity to a hot key or key combination. Back before Windows 7 came out I actually used AHK to easily “snap” my windows to the right or left side of my monitor. I will do another post just on AutoHotKey with some of the ways I use this application.