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
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.