October 27, 2006 at 08:36 MDT
At the last couple of presentations I have delivered I have been asked the question 'How do I find the time to keep up with all this stuff?'. A lot of time I think this is a pretty funny question as the answers seem like common sense. Here is my short bullet point (with some brief descriptions) on how to maximize your development day:
Wake up early (shoot for 5AM if possible) - I just started at a new contract a couple of months ago, and I have definitely fallen off the wagon with this one. Our house is currently undergoing renovation so currently all 6 of us are sleeping in the same room. This has definitely thrown me off my game!! When things are normal schedule I usually try to be up at 5:00AM and hit the gym for a refreshing workout that gives me the energy I need to challenge the day head on. As a personal practice, I also try as much as possible to spend some time in the morning in prayer and reflection, giving thanks to my Lord Jesus Christ for all the blessings he has brought into my life. Starting the day early can give you an extra edge (and time) when it comes down to fitting in other activities into what would seem like an impossible schedule.
Check your email in the morning and then turn if off - Ok, that may seem a little extreme, but it is definitely possible. I usually only check my email once or twice during a work day, and even then it is just to see whether I have anything I 'need' to respond to. My mentality is, if someone really wants to get a hold of me they can give me a call.
MSN What? - I could probably win an award for least amount of time spent instant messaging. I am not sure why, but I have never really got into it. Occasionally I will chat with someone about a topic, but for the most part my MSN is off for most of the work day, and usually most of the day period. Again, if someone wants to talk to me they will phone me.
Ditch The Mouse - I concur 100% with Jeremy Millers [point](http://codebetter.com/blogs/jeremy.miller/archive/2006/10/24/The-first-step-to-coding-faster.aspx). There was a 2 week period in the last year where I purposefully did not attach a mouse to my laptop (my main computer). Initially it was a bit painful but I learned a whole bunch of awesome keyboard shortcuts for all sorts of apps under windows. And I have gotten to the point where it pretty much such beside my keyboard unused for most of the day. Because I spend most of my day in VS2005, ReSharper has become an invaluable addition for allowing me to achieve near mouseless computing. The keyboard is to developers what the command line is to administrators. Sure you can achieve the same result using the mouse, but you will definitely get to the end result faster if you use the keyboard (almost always).
Don't be afraid of utilities - Scott Hanselman maintains his ['Ultimate Tools List'](http://www.hanselman.com/blog/ScottHanselmans2006UltimateDeveloperAndPowerUsersToolListForWindows.aspx). If you have not already checked it out, stop reading this and go there right now. I can guarantee that you will find utilities that will allow you to achieve greater productivity in your development day.
Upgrade your computer - It is no good having all the fastest utilities and IDE's in the world if your computer can't run them. Don't let your computer be a bottleneck for your productivity.The cost of hardware is so cheap right now that there should be no good justification for not providing developers with the tools they need to do their job properly.
Strive for at least a 5 hour day - What I mean by that point is that as a developer, if you are not finishing the end of your day feeling mentally taxed, then you probably did not push yourself as hard as you could have. Too many people surf the net for a while, check email, messenger etc. If they redirected their energies into ensuring that they got a solid 5 hour coding stint in (within a 8/9 hour work day) they would definitely leave work feeling a lot more satisfied, with a greater sense of accomplishment.
Take your lunch break - Even if it just a short walk around the block to get some fresh air, you will be doing yourself a favour.
Pair for focus - This is not something that is applicable for everyone, but if you find that you spend a lot of idle time at your computer, find someone to pair program with and you will lose the opportunity for unnecessary down time.
That's it for now!! I hope you find some of these practices useful.