I’m a horrible artist. I’m so incredibly bad that it’s comical. It’s funny because when we’re in retros, I’ve taken to drawing caricatures of the members of my team. It has become a kind of running joke. When I say “the members of my team”, I’m including myself. When I drew my own caricature, I was wearing a Dropkick Murphys shirt, I was holding a keg of homebrew, and there was a computer with a broken mouse in the background. DKM and the keg of homebrew are topics for another post – for now, let’s focus on the evils of the mouse.
The mouse is a great tool for first person shooters, Photoshop, and surfing the web. That’s it. Even in Photoshop, people use it too much. It should only be used for controlling the brush or dragging a selection – you can and should change tools using the keyboard.
As a developer, the keyboard should be your best friend. The mouse robs you of more productivity than you can possibly imagine.
The first logical place you can ditch the mouse is in your IDE. Regardless of your IDE, you can leverage the keyboard. If you’re lucky enough to be using IntelliJ or Visual Studio with Resharper, then you can almost completely eliminate use of the mouse. Find a cheat-sheet with the keyboard shortcuts for your IDE of choice and keep a printout of it next to your computer.
Even with the printout next to your computer, it can be easy to fall back into using the mouse if it’s your habit. I have the perfect solution – get rid of your mouse. One of my teammates started with us in January right out of school. We were pairing one day and he was using the mouse often enough that I thought I was going to be ill.
Me: “Hey Eric, can I see your mouse for a second?”
Eric: “Sure, here you go.”
It was a wireless mouse so he handed it right over. I promptly put it well out of his reach. He struggled at first but with a little coaching and lots of computer assistance, he was well on his way to keyboard-ninja status in no time. A few hours later, we needed a third developer’s help with something. He asked Eric if he could take over for a second. Eric moved out of the way. He quickly noticed there was no mouse.
Rod: “Where’s your mouse”
Eric: “Ryan took it.”
Rod: (amidst delirious laughter) “What a dick!”
The computer assistance I mentioned above was twofold in this case.
First, if you forget the shortcut for something when working in IntelliJ, on a Mac you can press Command + Shift + A. A box pops up and you can just start typing the name of the command you want. IntelliJ will show it to you along with the shortcut. I don’t know what the equivalent shortcut is for IntelliJ on Windows or Linux, but I’m sure it exists. You can probably find an equivalent command in Eclipse, too. When you know that one key combination, it makes learning the rest easier.
Next, when you are pair programming you can leverage something like KeyCastr on the Mac or KeyJedi on Windows to broadcast the keys you are pressing to your partner. This is invaluable when pair programming with someone who is over-dependent on the mouse. It can also be really helpful when doing projector sessions that involve code. You never know when you might learn a new shortcut, even if you’re familiar with your IDE of choice.
Not everything on the web has to be mouse-centric, either. You can (and should) enable keyboard shortcuts in Gmail. I think they’re on by default in Google Reader. My last hackathon was spent adding them to Rally. I’m not sure when that will see production, but I’m going to fight to get it there.
The keyboard is your friend. The mouse is your enemy and it robs you of more productivity than you know. Take away your own mouse for a day and see what happens.