Reader Feedback: Personal Project Management

With August winding down to a close and the insane August family event schedule over with (5 birthdays and my wedding anniversary) I now have the time to answer some of the reader feedback questions I had solicited at the beginning of the month. So, to give something back I will be answering one question each day this week. Today's first topic is Personal Project Management.

As I never get tired of telling people, my employer is one of the enlightened few who lets their employees telecommute 100% of the time, so there are some different challenges in play. I understand that some people could not "handle the pressure" (their words, not mine, although I am paraphrasing) of working from home. At this point I could not imagine going BACK to working in an office.

So, with your boss always around on IRC and just a phone call away, how does your grumpy correspondent stay on top of his tasks since he knows the boss will never show up at my desk asking me a question? You may be surprised at the answer if you know me in real life: through self-discipline.

Yes, I can already feel the immense amount of eye-rolling (including my mother) but it really is true. If you are the type of person who needs to be constantly told what to do, you are not going to cut it in a telecommute environment because you WILL be left alone for long periods of time to Get Things Done Without Constant Supervision. The only way to make sure you are able to function without simply going upstairs and watching TV when you are supposed to be working is to, well, act like the professional coder you are supposed to be. So, how do I handle this? Please be aware that this is a method that works for me and probably only for me. Copy it at your own peril.

I tend to approach programming assignments as if it was Big Problem that can be solved by breaking it down into Little Problems. This is why when confronted with the question "is there any programming challenge you solved that you are really proud of?" I tend to draw a blank because, well, despite all my bluster and accusations of being an asshole, I don't really look at the stuff I do and say "goddamn, that was amazing work". To me, it's really just solving a bunch of smaller problems that make up a bigger problem. I guess you thought I'm a shameless self-promoter of my work. I try to do go

I mean, not every programming task I complete is what I would call exceptional work because sometimes you just can't figure out an exceptional way to do it. Plus, I can't bring myself to be such an asshole as to expect everything I do to be perfect. Not everyone is at their best all the time. Therefore, I try to follow a policy that was explained to me by gwoo from the CakePHP project: "Make it work, then make it work better". I can't think of a better philosophy for the type of work I do every day.

Everything beyond how I approach solving problems is really just non-important. I make lots of notes, but I'm not a compulsive note organizer. I don't have any system for keeping track of what I'm working on beyond a simple list of items in a spiral notebook that I cross off and scratch away at while I work. Hate to disappoint people, but I try to keep it very simple. Whenever I veer off into the land of Complex Task Tracking, I spend more time tracking tasks than doing them. Keep it simple, keep it something I can use each day and every day.

So, that's my approach to personal project management:

  • Be professional since you are, you know, being paid to do it.
  • Keep your solutions simple
  • Adopt organizational practices you can follow every day.
  • Try and do your best work whenever you can, but understand when you are not at your best