Saturday, October 8, 2011

Have a problem managing your tasks? Read this post!


If you are lucky enough to handle all your tasks and requests in time, without a need to manage and prioritize a backlog, then you probably don't need to read the post. If you are a manager and all your direct reports are excellent in managing their task lists and setting by themselves correct tasks priorities then you probably can skip the post too. The rest of you should keep reading.

This is the situation:
  • You have a team of bright engineers
  • You have many requests coming from different sources: monitoring alerts, customer support tickets, internal change requests, new software releases deployment requests, corporate IT requests (if you still wear the hat), internal requests from different departments like sales, marketing, etc
  • You have a bunch of internal tasks generated by you and your team
  • The amount of time you and your team can work on the requests is much less compared to what is required to handle them
  • The team has a backlog of requests, and the backlog is only growing from day to day

You need to solve the following problems:
  • How to track all requests and internal tasks (for simplicity let's call both types as "requests")
  • How to prioritize the requests to keep everyone satisfied
  • How to keep all parties updated with the progress on their requests
  • How to track the amount of time spent on each request

And now, just two things in order to accomplish the task:
  1. A good requests tracking system
  2. A request management policy
Requests tracking system
My personal favorite is open source software RT - Requests Tracker by Best Practical. From commercial software you may try JIRA by Atlassian.

Depending on how your team will be handling the requests you may want to create individual RT queues (or categories/projects in JIRA) for different type of requests; for example:
  • "Support" queue for customer support requests
  • "Network_Alerts" queue for external monitoring alerts
  • "Corp_IT" queue for corporate IT requests
  • "ChangeControl" queue for change requests
  • "Network" queue for network issues
  • "System" queue for system issues
  • "General" queue for general requests/tasks
In general, you will need to create a separate queue for requests which:
  • require different default request priorities
  • requite a different set of team members to handle requests in queue

All RT queues should have email interface enabled since this significantly improves the speed of communication between RT users.

All configured RT queues should have defined a proper list of "watchers" - individuals receiving email updates about all activity in the "watched" queue, and expected to take necessary actions to handle created tickets.

RT software has quite a flexible permissions management system, so it should not be complicated for you to set proper access permissions to relevant RT queues for all registered users/groups.

You should also deploy the following additional RT modules:
  • rt-reminder - this is a reminder script which is used to send regular notifications to ticket owners with a summary of assigned open tickets
  • rt-count - to send daily reports about the amount of new/open/closed/stale tickets

Requests management policy
Before defining the policy you have to set expectations with all possible external (for the Operations team) requesters; for example:
  • SLA for handling of customer support tickets and escalation procedures
  • SLA for production service uptime
  • SLA for corporate IT requests
  • SLA for new software release deployments

In accordance with the expectations you can define default priorities for each of the managed queues; for example:
  • "Network_Alerts" requests - 100 (maximal priority)
  • "Network" issues - 95
  • "System" issues - 95
  • "Support" requests - 90
  • "ChangeControl" requests - 85

For queues with urgent requests you may want to configure SMS alerting for unhandled tickets like described in this post.

Now you have to make sure that all requests are entering the ticketing system and are assigned to a proper queue. Document your requests management policy, and make sure that all internal and external customers are using the policy for submitting requests to the Operations team.

What you, as a manager, are responsible for?
  • Make sure that all requests are forwarded to proper RT queue
  • Proper automatic escalation procedures are in place for urgent requests
  • All request queues are configured with correct default priority
  • Timely assign tickets to specific team members
  • Timely adjust the priority of potentially conflicting requests

What your team members are responsible for?
  • Start their work day with getting a sorted by priorities list of RT tickets
  • Work on the requests in accordance with defined priority (obviously, starting with highest priority tickets)
  • Make decisions about handling of tickets with equal priority, and ask the manager if unsure
  • Timely update the status of all worked requests. An update should include a few words about the ticket progress, and time worked on the request

From now on your ticketing system is becoming:
  1. Your team's requests/tasks management system
  2. Your interface with all internal and external customers
  3. The interface for communication/updates inside the team
  4. Your tracking system for number of handled requests and time spent processing the tickets

Using the described approach you can build for your team quite a comprehensive requests management system.

1 comment:

  1. I would like to thanks for your post. I am getting more knowledge about how to handle the Team with effectively .

    Robotic Assisted Surgery

    ReplyDelete