On any given day, I could wear a variety of different hats for different customers. Depending on the customer, I serve as a Project Manager, Team Leader, Enterprise Architect, Software Developer, Technical Analyst, Tester, and even Chief Technology Officer.
The danger that I always face is knowing when and how to switch gears and managing the tasking while still maintaining enough flexibility to deal with the roles of Devil's Advocate, Negotiator, Firefighter, and a few other non-technical but just as required roles that I play on a daily basis. Of course, I keep all my tasking in dotProject and SugarCRM, but they don't handle the complete way I work.
Instead, I keep a simple sheet of lined paper nearby and write down my most important tasks from dotProject and SugarCRM for the given day. Then I write down a start and stop time for each task based on my estimate on how long it will take and when it is due. I purposefully do not break items down below 30 minutes or larger than 2 hours.
Now that I have a specific time to start/stop specific tasks, I start working. Since the blocks of time can be moved around relatively easily, if I am making good progress on something, I simply push back other items or completely cut them from the list. If something is going poorly or I'm having trouble getting started, I have a schedule to fall back on that forces me to set aside the unfruitful things and move on.
Yes, there are probably some issues with changing gears and getting back into the flow, but there are some strengths:
- On a daily basis – sometimes more often – to consciously choose which things are most important.
- Protects my time from those annoying unrelated things that generally devour time.
- It works regardless of the level of technology involved. I previously used Excel and the desire to add functionality and information was nearly overwhelming.
- It encourages me to not visit Slashdot, Joel On Software, etc except during breaks.
Oh, my time is up here. Have to move on to CodeSnipers… 😉