Being pro-active as developer

I've heard from many that I'm pro-active. Thought I will just share what I do so it can help someone and more importantly help me get feedback on anything I can still improve on.

Day planning

I spend some time everyday to plan the day and set daily goals. I start my day by checking mails and checking if there is anything which has come up as new priority while I was sleeping, if there was any calimity which needs my immediate attention or anything which says I have the day off (party).

Once that is done, I plan the day and start working on the items based on priority (blocker, critical, etc.). If I was working on a task the day before and still not done, I put that in the list as one level above it's origianal priority to decide if I should continue doing it before addressing others. For instance I was working on a task which is of priority major I'll consider it as critical while deciding next priority. This reduces a lot of frustration of PMs who are expecting important and priority tasks to be done first.

Time Management

I had attended an internal session on this early in my carrer and life which has helped me stay a lot focused. Best way to be most productive is to be pro-active and putting each task into the four quadrants. Read more about the quadrants here and here. Check below for short summary of the four quadrants.

  1. Important & Urgent: These are the high-priority tasks, ones that need to be handled ASAP. Putting them off will result in immediate repercussions.
  2. Not Urgent, But Important: These are the tasks that need to get done, but have no definitive deadline. These tasks take a backseat to anything that appears in Quadrant I.   
  3. Urgent, But Not Important: These are the details, minor responsibilities like recharging a phone or paying minor bills. Ignoring them may not have an earth-shattering impact, but it could have a negative effect, all the same.
  4. Not Urgent, Not Important: These are usually personal items that don’t have any immediate bearing. Think of it like this: Quadrant IV is filled with the tasks that a person doesn’t need to complete, but would probably like to, all the same.  

Delegate tasks to Tools

I use a lot of tools, some for task management and some for just to reduce the time to do a task. For instance I use Source Tree - light weight (I disable lot of features like auto refresh to make it light) GUI tool to show me the code diff, history, etc. OR Calendar to manage all the notifications (for responding back to a task for which I need to check logs of last one day and even to pay bills at times).

I use following tools daily to help manage my tasks and time:

  • Mac's say command for instance "composer install; say composer install finished" in terminal
  • Mac Mail
  • Mac Calendar
  • Mac Notes
  • Amazon echo dot

Clean inbox strategy

This really is working for me, I've hardly missed a task (even github comment) in recent past because of this. What I do is delete all the mails (jira/github) once I've taken action on it. Read them quickly once and then decide if they can wait for sometime or requires urgent action. Every day in morning visit all the mails, take whatever action is required and then delete them. Read more at: https://blog.hubspot.com/service/inbox-zero. For all non project mails I follow labels as mentioned in the blog (only one though - star/unstar).

Keep busy

I usually try to ask for tasks for next week, it's OK to have messy dashboard with too many tasks but it helps ensure I have something todo always, even if it is Christmas holiday.

For us (developers), we should always try to have clarity on next 2 days task and 2 different tasks at-least. If we get blocked on task 1 and PM / TA goes on leave for 2 days we should not stay blocked. Consider it our responsibility to stay busy on tasks all the time. PMs are there to decide the priority and not to ensure everyone has task all the time. Yes, they are responsible to build the backlog. I consider it as an escalation if PM has to come to me and say "it seems you don't have any task"

Pit stops

Check with PMs and TAs regularly when you have too many tasks. I know I said above that I like the board messy by having more tasks. But I also said I work on tasks that are having more priority first. Low priority tasks are for those times when you are stuck in the main / important tasks and to keep self busy but doesn't mean we follow FIFO here, a low priority task can stay in board for very long time, no harm in that. Even PMs won't have any issue with that - if you make it clear to them.

So what is pit stop? It is a quick call with PMs / TAs to review the board and decide priorities when I get new tasks assigned and I'm not able to decide the priority based on the information I have OR my judgement is conflicting with the priorities set by PMs (at times we may not know about the external pressure or a future task adding importance to a small / less priority task, best is to question and get clarity than following it blindly or not doing it at all).