ToDo Manager for AvrStudio 5.0, 5.1 and Atmel Studio 6.0

The ToDoManager extension started out as a very basic extension that was created to allow the user to manage Tasks from within Visual Studio but has quickly grown into a very capable application. Quite a bit of information may be associated with the task but the design goal was to keep it simple while keeping resource usage to a minimum. Originally developed for the new AVR Studio 5.0 IDE it can also be used with Visual Studio 2010 and now AVR Studio 5.1 and the new Atmel Studio 6.0 and is ideal for the lone developer as a replacement for the Visual Studio TaskManager.

Feature List

The features provided by the ToDoManager extension are

  • What Project the task belongs to. Projects may have detailed description and version numbering associated with the Project.
  • Task Priority, a value from 1-10.
  • Start and End Dates
  • A detailed description.
  • Work history - A list of work entries that together provide a history of the work completed. Contains a category field to help keep better track of how time spent.
  • Multiple Notes may be associated with each Task
  • Import tasks from the IDE Task List into an Imports project where they can be moved to other projects and additional information added.
  • Refresh button on Main toolbar used to sync DB with other instances of Visual Studio if running more than one.
  • Archive Manager that allows the user to archive/retire old Projects and/or Tasks.
  • Archive Viewer used to view archived data.
  • Task Type field indicates the type of task, available options are; Bug, Task, Feature and Other.
  • Links allow a task to have a dependency link that can be set as either; depends on or depended on. Ability to follow links, forward and back.
  • RichText note editor
  • An intelligent filter scheme that allows the user to filter by; Project, Category, TaskType, Priority, Time Range and as before those that are completed or not.
  • Ability to mark item as complete from Main Grid.
  • Work Flows - Vesatile work flow functionality that allows the user to better track where ToDo time is spent.
  • Split off Status from Category and ComboBox provided to select Status.
  • The location of the DB can be defined by the user to allow multiple DBs or multiple machines to access the same DB. I have been asked by a few people to include this option!
    Caution: This does not mean that this can be used by multiple people this will NOT work. When using from multiple machines you must manually update the DB each time a change is made from another machine.

If you have any problems with this version or have a feature you would like to see implemented leave me a message.

Getting Started

Download the ToDoManager application using the link provided in the upper right corner of this page. Once it has finished downloading you will need to navigate to the downloaded file and double click it and the following window will be displayed.

Click the Install button and the window below will appear, once this window is dismissed by clicking OK button the extension is loaded and ready to use.

Using ToDo Manager

To open the ToDo application you can either go to the Tools menu or the View->Other Windows menu item in the main menu and select the ToDo Manager option at which point the main window shown below will be displayed and may be docked.

The toolbar in the main window has a couple of new icons which allow one to create or select a DB in the location of your choice. When the ToDoManager is started the first time the DB is located in the AppData directory and will be satisfactory if you don't care about using it on multiple machines.

One other thing of note here is the new TimeSpan control and as can be seen in the image below it is much more compact and shouldn't be that hard to adjust to. By clicking in the right most portion of the control a context menu is displayed that allows one to select a time reference. The value entered may be either a whole number or a fractional to indicate partial periods an example of a valid value would be 1.75 which is 1-3/4 hours or 1 hour and 45 minutes.

Once the extension is installed first thing that you will want to do is to define a project for ToDos to be associated with. This can be done by clicking on the pencil to the left of the TextBox at which point the Project Manager window will appear and Projects may be created, edited and deleted.

When you have entered and selected a project the next step is to create ToDos. This is done by clicking on the Add a new task icon in the toolbar at which point the Input window shown in the image below is displayed and data may be entered.

The Input window is where you will spend most of your time and hence the bulk of the work has been done in this area to make entering and viewing data as easy as possible. You may enter as much or as little data as you like and the only requirement is that you enter a Title and although time is not required it would make sense that it be entered at some time. Work Flows were added as a way to logically break a task down into it's constituent phases where each phase can have time logged against them and together form a complete task from start to end. This has been lacking for a long time but didn't have time to implement until I stopped traveling.

If you've used this extension before you will notice a few things that are different in the Input window. At the top I have split off the Status from Category and provided a ComboBox to select the current status. I did this because there was some confusion that a task could have an Open Status but the user could be in the Design mode category.

In middle left of the Input form you will find the new Work Flow control that is broken down and explained in the sections and images that follow. A default Work Flow is provided that can be modified but not deleted, this was done so that there would always be a Work Flow available ever if it was not being used. The default provided on initial install has only the Coding phase, I did this so that those that do not wish to use Work Flows can just enter time against a single phase in the task.

Entering values in the new Work Flow control can be accomplished by entering data directly in the fields shown or in the popup that will be described shortly. When entering data the following priorities are adhered to;

    For Budget values;
      - The phase level values have the greatest priority
      - Work Flow level values when entered may override phase level, user is prompted to confirm
        if this occurs.
    For Actual values;
      - The highest priority is Work Items or time logged against the indevidual phases.  If a phase does not have
        an item logged against it a value may be entered.
      - The Work Flow level may only be entered if no values are entered in any of the phases.
    

A breakdown of the Work Flow control is shown in the following image. The main thing to point out here is that the upper line is the Work Flow level containing all things relating to the current Work Flow and is a semi-static area that only changes if another Work Flow is slected using the selector provided. The lower line contains the Current Phase information and represents the Phase that is currently active. Each item in the phase list contains the totals for all Work items associated with that phase, as an example if there are 3 Coing Work items associated with this task the total bedgeted and actual values will be shown in the corresponding fields.

When the Work Flow select button is clicked a Work Flow selection window will appear that allows one to manage Work Flows. As can be seen in the image below you will be presented with a list of existing Work Flows to choose from. When you select a Work Flow it's constituent phases are shown in a grid to the right that allows you to enter the Budgeted values for the phases. If you choose to not eneter the budgeted values here they may be entered at a later time using the Work Flow control.

Work Flows are managed using the tool strip above the list to the left. This brings up the window in the next image and Work Flows are created by entering a Title in the TextBox and then dragging items from one ListBox to the other and placing the items in the order in which you anticipate that they will occur.

By clicking the Current Phase selector icon a modal popup is displayed that contains information pertaining to all phases contained in the work flow as well as values that have time logged that are not in the Work Flow. The idea of assigned and unassigned work items will be discussed in the next section.

The notion of assigned and unassigned work items comes in to play when you are entering/logging time against the current task. There are times when a slice of time needs to be spent on an activity that has not been previously alloted time for. In this case the user may enter the data and it is displayed along with the other assigned phases but are read only and have no budget associated with them. An example of what this would look like is shown in the following image where the Design, Coding and QA item are the assigned phases and the Research is the unassigned phase.

To enter time against the task use the Work tab on the input form. Once the time is entered the Actual Time field on the Input window is updated to reflect hours entered.

Notes pertaining to the current task may also be entered by clicking on the Notes tab in the Task Input Form. Notes are different from Description in that they have a title and creation date associated with them.

A lot of effort was put into this area as the number of tasks increased. I included as many ways to find/filter the tasks as I thought would be required and it works for me.

This is the reworked Import select form that allows better control over the way that the Visual Studio tasks are imported. By default all uncompleted (non-checked) User Tasks are elligible for import but non-user tasks may be imported as well by checking the "Include all Task categories" check box as can be seen in the image below.

The Archive Manager allows the user to retire Projects and/or Tasks that are no longer active thus removing them from the viewing area. They can no longer be edited or viewed except by the Archive Viewer. This process cannot be undone so be sure that this you really want to do this.

The Archive viewer is the only way the user is able to view tasks that have been archived and is read only no infomation may not be modified.

Summary

It's a pretty simple application and it's use should be rather intuitive. As stated above if any problems are encountered please leave me a message below and I will address them, but please leave as much infromation about the problems as you can so that I will have a better understanding of what's wrong and how to fix it.