On my professional journey, I have been focusing a great deal on how to become a better developer. I have done so by exposing myself to new technologies, learning new design techniques and patterns, improving my skill set, gaining new experience, and improving my toolbox. I believe all of these are crucial to becoming a better developer. However, my recent read of The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas has opened my eyes to a number of new areas of improvement. It is easy to focus on the fun stuff like new technologies and tools, but being a professional developer also requires you to be a professional. Shocking, I know… You can get away with a lot in a small company, but I’m discovering that thriving in the complex ecosystem of a large corporation requires a different skill set. For better or worse, one’s success is tied to more than the quality of one’s code. As developers, we still have to deal with the day to day mechanics of the workplace. Mundane tasks such as replying to emails in a timely fashion, showing up to meetings on time, and meeting your commitments, no matter how small, are a big part of professionalism. While this probably seems obvious, practical experience leads me to believe that most do not take this seriously. I know many developers investing in their coding skill set, and only a few actively working to improve their professional skill set. Then again, perhaps I am simply farther behind the curve than most.
Given my changing role on my team, it seems especially prudent for me to invest in professionalism. The Pragmatic Programmer has a section devoted to communication, and touches on some of the aspects of professionalism. This is what put the bug in my ear and provided the impetus for my own journey. I decided to focus the area I felt I had the most to gain, roll up my sleeves, and get to work. For me, this was organization. More specifically, I was having difficulty tracking all of my responsibilities. Things were falling through the cracks and I was plagued by tiny tasks and commitments that I couldn’t seem to remember. I really wanted to be efficient and reliable. I wanted my co-workers to trust that when I was given a task, it would be handled. As I began searching for ways to improve, I was reminded of this quote from The Pragmatic Programmer:
Tools amplify your talent. The better your tools, and the better you know how to use them, the more productive you can be.
While the quote refers specifically to development tools, I believe it is completely applicable to the problem at hand. Thus, I began searching for tools to help me improve my organization. I began with task management applications. Unfortunately, I have tried many task management applications in the past with little success. Shortly into my search, I decided I needed something more encompassing. I needed a system, not just a tool. I also had no idea where to start. Thankfully, I was able to leverage the experience of my manager, who is one of the most productive individuals that I know. Thus, I decided to begin using GTD (Getting Things Done).
I went straight to the source and bought Getting Things Done: The Art of Stress-Free Productivity by David Allen. Reading the first couple chapters was a struggle. I found it too abstract and the language reeked of self-help dribble. However, the nebulous gave way to the specific as the author takes a turn to the practical a couple of chapters in. I was able to begin applying the system about halfway into the book. The greatest gains came near the end of the book as the entire system began to fit into place. Even though I am only a GTD beginner, I found the system easy to apply and highly effective. Curiously, my greatest productivity gains have come outside the workplace. I think this is because our team processes and project management have provided an inherent organizational mechanism for my largest commitments. I do not have this crutch at home, so my personal projects suffered from disorganization far more deeply than my work projects. Even so, I believe that I have accomplished my original goal of becoming more efficient and productive in the workplace as well. The best part is that I have finally been able to shake that persistent feeling of forgetting something!
While the GTD system itself isn’t that complicated, it is outside the scope of this post. If you are interested, you’ll just have to check out the book or one of the many web resources for yourself. That said, I do want to talk a bit about supporting tools. GTD does not prescribe any given tool, instead you should select whatever tool (or set of tools) works best for you. That might even be good, old fashion paper! For me, I have a few simple needs:
- Track next actions
- Track appointments
- Store supporting information (notes)
Along with these needs, I have the following constraints:
- Readily available on all of my devices
- Inexpensive (this was important before I was sold on the GTD system)
- Open, and easy to re-organize so I’m not tied down to any specific organization mechanism
Given these needs and constraints, I decided upon the following tools:
- Google Calendar for appointments
- Remember The Milk for next actions
- Evernote for supporting materials
All are best-in-class tools, work on virtually every (current) device known to man, and are inexpensive (even free!). They have greatly eased adoption of my new system, and they are open enough to allow continuous improvements in organization. The more I use the system, the better it gets! Now if I could just get to work on time…