Managing Yourself
It can be pretty difficult staying on task when working for yourself. First of all, you know that no one is going to lecture you about taking time for personal things and the office mood is pretty laid back. It’s always been difficult for me to sit in front of a computer knowing I have work to do when computers also let you play games and waste your time. Sometimes I feel like I’m just not in the mood to program, and this can be a serious issue when I haven’t even started a project yet.
Staring at the glow of a screen thinking about a large project looming over me can be such a motivation-drainer that I end up not starting the projects for days. Falling behind causes a serious amount of issues which are decent motivators themselves. A delayed project means:
- Customer does not see milestones when they were expecting. Small delays are never an issue because clients actually expect a few of them, but when there are either too many delays they begin to get nervous about what’s going on. My goal is to never miss a deadline, and it’s important enough to have it’s own question in my project evaluation.
- Delaying anything doesn’t prevent me from doing work, so it’s best to just do it now and then move on. It’s really the same amount of energy, it just takes some additional get-going attitude now.
- Late work means my earnings are off schedule and payments may not be coming in when I expected. This causes problems with earnings and income estimates. If I end up wasting time not doing any work, then I’ve lost money as well.
- Delays cause chain-reactions that can only be reversed by burning the midnight oil. If I estimate seventy hours in December but I end up doing thirty of those hours in January, that’s a decent chunk out of available work time in January. Anything originally scheduled to begin would also be delayed, and we repeat the process over.
I’ve learned that I work best when I have things clearly organized and broken down. If I break down large projects into smaller chunks I find that the project is going to be easier to manage, and at the end I feel as if I’ve accomplished more. Here are some of the tricks I’ve used to manage my work time and motivate myself (most I’ve used for a long time but are more important now):
- Organize. I purchased some standard charting tape and I’ve used it to create nine large boxes on a dry-erase board. Each project I’m currently working on gets it’s own box and I write down a list of my next tasks for each project. Every morning I highlight the tasks that I plan on completing by the end of the day with an orange marker. Once certain tasks are completed I erase them and write in the new ones. I keep a small section empty for quick notes. Having things written out in big letters and placed in a grid gives a very good visual idea of what work I have to do.
- Give yourself enough work to last a few hours. Pick out some CDs or playlists that you can play straight through. They’ll act as a timer – once completed you can a fifteen minute break. Surf the internet, play a game, browse the iTunes music store etc. Do something fun so that you’re essentially rewarding yourself for doing that first chunk of work.
- Have a lunch you can look forward to. A fresh, tasty lunch is a great way to break up your day. You’ll look forward to that meal all morning and knowing that you can have that once you’ve finished half of your list, you’ll work harder. You wouldn’t really be excited for a so-cold-its-hard-and-tasteless-sandwich-that-has-fused-together-ingredients now would you?
Starting a new programming project can sometimes be like an artist staring at a blank. If I haven’t really thought about how I should begin then it can be scary, and possibly can cause a delay. I need to force myself to sit down and think about how something needs to be done and how the specifics of any existing code/design will impact what I need to do. This is probably the most difficult part of most projects because I have no one to bounce ideas off of.
Sometime next year it may be necessary for me to a hire a junior developer, or at least sub-contract some work. Maybe then I’ll have someone to bounce ideas off of.