Outlook AddIn: Available Agillity


In my last article I talked about a Java based tool which I put together that lets Agile teams estimate their available hours by interacting with an MS Exchange server to get calendar details. From a practical standpoint it was a bit inconvenient since you have to supply username and password credentials and you get a CLI response back.

I decided to take things one step further and create a C# version that integrates direclty into Outlook. Now I can find out my agility with a few quick clicks.

References

 

Compatibility

This Add-In was tested and works against Outlook 2010

It may be compatible with other versions, but they were NOT tested

 

How it Works

I use the Microsoft.Office.Interop.Outlook namespsace to hook into MS Outlook and obtain the necessary calendar information to perform availability calculations

 

License Information

This work is subject to this BSD style license:

Copyright (c) 2014, Rion Carter
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

How to Install

Installation is pretty simple: Just run setup.exe

To uninstall, go to add/remove programs, select the AvailableAgility entry from the list and click the Uninstall button.

 

Configuration

After installation has completed, you'll need to setup a few things:

  • Configure the Outlook Calendar settings by Right-Clicking on the Calendar and selecting Calendar Options... You will be presented with a screen that looks like this. Please fill it out:
    SetOutlookCalendarOptions.png

  • Configure the Agile Add-in by Clicking on Add-ins -> Agile Availability Calculator ->Settings like this:
    ConfigureAgileSettings-1.png

  • You'll be greeted with this screen (or one like it) to alter the tool settings:
    ConfigureAgileSettings-2.png

 

Description of the Agile Availability Configuration Options

Days in Range: This setting lets you control how many days in advance the tool should look ahead. For best results, be sure to select in increments of 7 (like 7, 14, 21, 28, etc...)

Lunch Settings: If you don't want lunch to count as 'work hours', make sure this is set correctly. It defaults to a One Hour lunch between  12pm and 1pm

Include Fragments: By default the tool does NOT treat tiny amounts of free space between meetings as usable time (since the chunks are so small as to be worthless). If you check this option, the tool will treat ALL space between meetings as FREE time where you can work

Min Usable Time: If we are ignoring fragments of free time (default behavior), we need to know how much time is the minimum amount of contiguous time to be useful. This setting is in Minutes and any free-space block that is smaller than this will not be considered free time.

 

How to Use

After configuring things to your liking, simply click on Add-Ins -> Agile Availability Calculator -> Calculate Availability

This will popup a dialog box which shows you your available free time for the time range you configured in the settings:
ResultsWindow.png

This is meant to be a fairly straight-forward tool right now. If there is any demand I'll see about changing things. :)

Here's what the result options mean:

Total Days in Range indicates how many days ahead you want to look

Work Days in Range indicates how many of those days are work days (defaults Mon->Fri)

Total Meetings Scheduled shows how many meetings you have upcoming in the next 2 week period

Total Days of Scheduled Time shows how much time (in days of your life) that are being taken up in the next time period for meetings or other activities.

Download

Outlook 2010: This download contains both the Visual Studio 2010 solution along with the setup.exe. Enjoy!

The setup.exe is found under the Publish folder.