Wednesday, April 13, 2011

Using Drag and Drop to Create Task Templates

We're very proud of the fact that the same IntelliGantt Web Part UI can work with both SharePoint and Basecamp. One of the best tests of any product is how well it works with multiple data sources. It forces us to examine and implement features that are valuable for project management in general. One such feature is the ability to create templates.

As you know, the IntelliGantt Web Part, whether running as a desktop application or as a Web Part embedded within a SharePoint page, supports file drag and drop. By default these files are saved as attachments to the task item you dropped them on. Now we've taken things a step futher-- we've implemented the ability for the IntelliGantt Web Part to serialize tasks to an 'igantt' so they can be used as a template. (OK, it's really an XML file, but we use the igantt extension to identify these templates).

You can then drag one or more of these igantt files onto a project or summary task and it will create the tasks stored in the igantt file as children of your drop target. If that description didn't grab you, here is a walkthrough with screen captures.




Here we see the IntelliGantt Web Part within a SharePoint page. We've already expanded the task manipulation pane by clicking on the little blue button in the upper left corner.

When we move the mouse into the 'empty' manipulation pane, icons appear in the row under the mouse. These icons show what you can do with this task item.



For example, we see the 'Summary' row as the following:

1) Write to File (the pencil)
2) Make Discussion (the caption -- creates a topic in a Discussion List)
3) Make Event (the calendar -- creates an event in a Calendar list)
4) Add a Sub Task or Sub Summary (the plus)
5) Remove the item (the minus)

Since we're focusing on task templates this post, imaging you just clicked the pencil. What you'll see is a 'Save As' dialog:




Here you will name the file that will store the task information. We really wanted to seed the filename with the name of the task, but we have to wait for Silverlight 5 to come out. After the file name 'Summary1' has been typed, the Summary task and its children are then saved to file 'Summary1.igantt'.

Now you can view this file with Windows Explorer and, better yet, drag it over any project or summary task in the IntelliGantt Web Part:




Notice the helpful blue 'upload' arrow that shows which row this igantt file will be applied to. Here we are targetting the 'Tasks' project with a drop of our Summary1.igantt file.

Once we drop the file, you will see the task group we had saved magically reappear in the new list:




If your igantt'd tasks have assignements, then IntelliGantt will try to match the user from the old source with the same user in the new source and make the assignment. Also, if the group of tasks in the igantt file have self-contained dependencies, these will be reproduced as well.

Finally, if you happen to be one of those folks using both SharePoint and Basecamp, you can copy from one and drag/drop to the other.

We did tie this feature to a privilege that can be turned on or off. By default it actually is off in the IntelliGantt Web Part (unless you are running on the desktop or are an administrator).

Here is a link showing how to enable the 'Writing Task Blocks' privilege in SharePoint.

Tuesday, April 12, 2011

The Big Kahuna of SharePoint Gantt Charts

Navigation is a good thing when you're trying to find something. The common structure for burrowing into sites and lists within SharePoint is often called the 'chrome'. This may consist of the site links across the top of a page, or the quicklinks to the side. But how useful are they once you've arrived at your destination?

For example, you may have heard we make a really great gantt chart for SharePoint lists. You probably also have a really great monitor (or two) with lots and lots of available pixels. One of the things our Silverlight gantt chart can do is make use of 'full screen' mode, whereby every inch of real-estate can be devoted to your project plan. We thought this to be so useful, we made it a single click away.

Here's a shot of the IntelliGantt Web Part running within Internet Explorer sited within a SharePoint 2010 page.



Notice two things:

1) There's an abundant amount of blue desktop we can fill with our SharePoint view.
2) The IntelliGantt Web Part resides within the SharePoint navigation chrome-- even in IE9, which made a point of maximizing the viewing experience.

We decided to maxmize it all the way. As of the 1.0.83 release you will see an orange-ish 'expander' arrow pointing to the upper left.




When you click it, the IntelliGantt Web Part will go into full screen mode and devote every available pixel to showing your task list and timeline.




Now you can see the really big picture of your project-- and have good reason to get an absolutely gigantic monitor.

Monday, March 07, 2011

Passing URL Querystring to IntelliGantt Web Part

One of our design goals for the IntelliGantt Web Part was to make it easy for users AND for system integrators. For instance, we know how important a brand is so we reserve an area of the gantt chart to display a customizable name with a url link. Additional configuration options like colors, zooms, custom list IDs and more are available via the web part editor or passing parameters via the initParams string (our control being a good Silverlight citizen).

Then someone asked us 'can I pass configuration parameters with the url querystring?'

What a simple and powerful idea! Last Wednesday we said 'no', but today we can say YES!

We have created a table of all the parameters IntelliGantt recognizes. You can use these parameters via the initParams property if you've configured a 'Site Only' instance of the IntelliGantt Web Part, or you can pass these parameters to the SharePoint page housing the IntelliGantt Web Part via the url querystring and make things really dynamic.

The best example of this new capability is how you can now select a task list and view by placing information in the url querystring. Let's say I have a SharePoint site with two task lists: Tasks and Big Project. By default, the IntelliGantt Web Part finds all the task lists in your site and displays them:




Yes, we can either use the 'Exporer' to select just one project, or we can use the web part editor page to select a single project. But what if we could determine the list to show before-hand and construct a url with selected project and view information? Then we can actually plug the web part into a multi-step workflow process.

First, let's add a SelectListIDs value to the url so that just one project is selected. You can find a task list id value by first navigating to the task list:




and then going to the List Settings:




Once in the List Settings, notice that the url string in your web browser contains a querystring parameter of List=:




We can use this exact same list idea value in the querystring of the url of the IntelliGantt Web Part page. Rather than just 'List', we use 'SelectedListIDs' because we think it's clearer and we support multiple lists in the view. There, we create an url like so:




Finally, you can add multiple paramteters to the querystring just as you'd expect-- by concatenating them with the '&'. So, now that we've selected the right list, we can also select the view to use via the query string by appending the view name:




And voila, the task list and view for the IntelliGantt Web Part have been determined by the values in the querystring. What if the same parameter is defined in the web part editor? Then the web part editor value will take precedence. In order use the querystring parameter, make sure the corresponding field in the web part editor is blank.

As we add more configuration options to the IntelliGantt Web Part, we will make sure they can be set via the web part editor, the initParams or the querystring. This will ensure our design goal of making our web part as flexible for system integrators as possible.

Saturday, March 05, 2011

Selecting a Single Basecamp Project

Build 1.0.72 of the IntelliIGantt Web Part for Basecamp has a new feature we hope 'power users' will appreciate: the ability to identify a single Basecamp project in the url string.

I was online with a customer who wanted to view a specific project, but we had to wait for all projects to load before we could select a single project. This doesn't sound too bad, until you consider they had 100 projects. Kudos to 37 Signals for handling so many with aplomb. Now it was our turn to step up to the plate.

We took a look at the url used after clicking on a project from the initial dashboard. It looked something like this:



We thought 'we can use that'. So, if you copy the same url and place it into the IntelliGantt Web Part for Basecamp like so:




The IntelliGantt Web Part will then match that project and show that single project in its view.




You can still access any of the other projects by clicking on the Explorer (pith helmet). This will show you all projects with the current, single project selected for you:




Select any of the other projects and they will appear in your current view as well.

Saturday, February 19, 2011

IntelliGantt Web Part for SharePoint 2010 Sandbox

SharePoint 2010 introduces a 'Sandbox' mode that limits the scope of what a web part is able to do on the server. This is something of a curious feature for a Sliverlight-based web part such as the IntelliGantt Web Part because it doesn't do anything on the server-- it's only downloaded from the server and then runs on the client. In fact, here is the source code in its entirety for the IntelliGantt Web Part when built for sandbox mode:

public class IntelliGanttWebPartInstance : WebPart
{
protected override void CreateChildControls()
{
base.CreateChildControls();
}
}

That's it. The only difference between the IntelliGantt Web Part in sandbox mode and the 'normal' IntelliGantt Web Part is the latter is able to plug into the web part editor forms to make it easy to configure all the IntelliGantt Web Part options. In sandbox mode, you'll have to supply all the options yourself in the 'Custom Initialization Parameters' field.

However, we realize that sometimes policy will dicate that the IntelliGantt Web Part is deployed to the SharePoint 2010 sandbox. Here's how to do it.

Friday, February 18, 2011

Filtering SharePoint Task Lists by People and Choices

In the previous blog post we looked about how the IntelliGantt Web Part can dynamically build pie charts when the user selects a choice field. IntelliGantt finds all the choice values and cross references them against every users task assignments. The result is a nice display of everyone's status (for example) across all their assigned tasks, across all the projects you have selected.

Something like this:




Wouldn't it be grand if you could select a user's pie chart and have the task list filtered so that only that user's tasks are shown?

We thought so too, so yes, you can select one or more users and the task list and gantt chart will filtered so that only those users tasks are displayed.

What about the choice values? It'd be nice if you could select those and have the task list filtered so you can quickly see everything that is 'Not Started' or 'In Progress'.

We agree, and you can. Click on any of the choice values and IntelliGantt will immediately filter the tasks.

Finally, the Pièce de résistance, what if you could mix and match the choices and the people so you could see all of Joe and Mary's tasks that are 'Not Started'.

Yes, you can absolutely do that too!

Thursday, February 17, 2011

Charting SharePoint Choice Columns

Choice columns are a great feature in SharePoint in that they let the administrator constrain the 'anything is possible as long as its text' textbox to a predefined list of acceptable values. For a SharePoint task list, the 'status' choice column is a perfect example. Rather than let users type in 'Getting Close' or 'I think I just about got it', users must select from 'Not Started', 'In Progress', 'Completed', 'Deferred' and 'Waiting for someone else'. Of course, more values can be added to a choice column at any time by a site owner.

Here's how the IntelliGantt Web Part works with the choice columns defined in the list settings. As mentioned earlier, 'status' is a powerful choice field for relaying the basic state of a task. IntelliGantt works with the built in status choices to build pie charts for each person (comprised of that person's task assignments) and builds a pie slice for each choice value present.




The choice columns available in this section are controlled by the current view in use. In this example, the 'All Tasks' default view has both 'Status' and 'Priority' choice columns in its list, so these choice columns are available to select. (Note: the 'People' option is something the IntelliGantt Web Part adds if you just want to see people and not pie charts).




The choice columns themselves are defined in the list settings for the task list (or any list, for that matter).




IntelliGantt is completely dynamic in its presentation and pulls column information from SharePoint for its display. So let's add another choice column and see how it appears in IntelliGantt. After clicking on the 'create column' link in the list settings we can name and type our new column:




Next we will provide the values and add some formatting information:




Note that made 'North' the default choice and added this column to the default view. When we return to the IntelliGantt Web Part, once it has refreshed, we will see this choice available.




The 'Region' column is now available in the charting pane and has been added to the Task Grid as well. When we select the 'Region' column in the charting pane its values populate below it. Notice that North is in bold. This is because North is the default value.




The pie charts themselves are not very exciting at this point because, since this is a new choice column, none of the tasks have any region values. Let's add some.




Of course, choices aren't set in stone. Sometimes they need to be updated. Because IntelliGantt is so dynamic it handles this case as well. Let's go back to the region column definition in our list settings and add the most important region of all-- Northwest!




When IntelliGantt refreshes it will recognize the new value and add it to the option list for the 'Region' choice.




Thus, when we update a task with this new value, the other visuals will be updated as well.




The pie slices use IntelliGantt's default color palette, which starts out with similar colors so the Gantt chart doesn't look like a Christmas tree. You can change the default color palette, or you can designate a specific choice field to use a custom palette. How to change colors is covered in detail in our forum.

How to set the Initial Timescale of the Gantt Chart

January 2015 Update for IntelliGantt for SharePoint 2013.

A customer requested that the IntelliGantt Web Part's initial timescale be adjustable when it first appears. It's just a bit of math to generate the time scale so we were happy to oblige. We introduce the 'Zoom Factor'.

It's the ultimate in precision, especially for you engineering types, as it literally is the zoom factor being used to display the Gantt Chart. By default, the zoom factor is 1.0. If you moved the slider, it will range between 0.075 and 1.925. (the range wasn't always so wide-- another user requested we make it wider, so we did).

Now when you set the zoom factor the gantt will compress or expand time appropriately (what a feature!), and the slider will change to the correct position.

More Gantt and Task Status Color Options

We updated the custom color system for the IntelliGantt Web Part to help our users in three ways:

1) An easy way to change Status specific colors.
2) A way to define your own custom palette.
3) A way to define a custom palette to be used with a Choice field of your choosing.

Here's a shot of the custom colors in action with the KPI pie charts:




Here is our forum post with all the details.

Wednesday, February 16, 2011

Filter Basecamp Todo Items by Person and by Status

As of build 1.0.70 the IntelliGantt Web Part for Basecamp offers an easy way to quickly filter your Basecamp Todo Items by who is assigned and its current status. This also means we've introduced a 'Status' field to Basecamp Todo Items with the following choices: Not Started, In Progress, Completed, Deferred and Waiting for someone else.

I know when I first start explaining this feature to folks it run a little dry. Thankfully, 37 Signals provided an extra bit of data to make it fun. Every Basecamp user has information about themselves they can provide, including an avatar url. We thought this such a great idea we incorporated it into the product:




At the bottom of the picture is our new 'People' pane. You can see that three people have actual photos in their avatar uri and two people do not, so they get the general stock image. Because 'Unassigned' is much more a concept than a person, it gets a special generic, non-descript bulbous person icon.

The idea here is not only to show who is involved with what project, but also to enable quick filtering of a persons tasks. How to do this? Click on the person (or the 'Unassigned). The task grid and gantt instantly filter the list so that only tasks assigned to the selected person are displayed. You can select addition people and their assigned tasks will pop into view as well. Unselect everyone to return to the full list.

The other thing to notice in this pane is the dropdown control at the left. This let's you select either the default view of people (with pictures) or two additional fields: Status and Priority.

When you select Status or Priority, the pane changes a bit. Instead of people with the number of tasks assigned to them, you will see a pie chart reflecting a breakdown of that persons Status or Priority choices for all their assigned tasks:




Similar to selecting people, when you select one of the choices in the list (like 'Not Started'), the task list and gantt chart immediately update so that only items matching the choice selection are in the view. You can select multiple choices (ie. 'Not Started' and 'In Progress') to apply at once. Futhermore, you can still select a person or two by clicking on a pie chart to get really granular. As before, simply unselect everything to go back to the default view.

We have detailed examples of these steps for filtering by people and by choices on our site. Better yet, we have a fully functional 15 evaluation available so you can try our IntelliGantt Web Part for Basecamp today.

Sunday, February 13, 2011

One Challenge for SharePoint? Inadequate Interfaces

CMSWire recently posted an interesting article about SharePoint adoption and the five biggest challenges to further growth. The first interesting nugget is SharePoint 2010 deployment is roughly equal to SharePoint 2007 deployment. As a someone building solutions for SharePoint 2010 and 2007, a growing market is a good thing.

More directly important for us, however, is one of the issues facing SharePoint (as cited by the article):
76% of those surveyed said that the interfaces were only adequate or even inadequate for their needs
.

We firmly believe one of those areas is Project Management and specifically the Task List. So it's not too surprising that the response to our IntelliGantt Web Part technology for SharePoint has been particularly strong. We've taken many years of experience, volumes of customer feedback and the latest technology and distilled these ingredients into a Gantt chart that at least 76% of SharePoint users will appreciate.

Things like:

Two Clicks to install the product
Feedback from every clickable image
Clickable arrows that bring off-the-screen tasks quickly into view
Native Drag and Drop for attaching files to tasks
Changing the Gantt timescale with a simple slider
Dynamic refreshing for up to the minute data
One click Item or Summary task creation and removal
Rich printing with user defined start and end dates
Explorers for combining multiple task lists into one view

and even more features to be available this week!

I can't see we knew exactly how many folks would benefit from our improved interfaces when we started down the SharePoint road. It's nice to see there's more than a few.

Friday, February 11, 2011

Key Performance Indicators - People and Choices

Folks have been asking about Key Performance Indicator (KPI) enhancements within the IntelliGantt Web Part since its inception and we're happy to report it's almost here.

Here's a 'thousand word picture':



Basically we are introducing an expandable region at the bottom of the Task Grid and Gantt Chart that shows choice fields and people. What task you select determines the list of choices and people you see.

For example, if you select the topmost 'task', which can contain multiple projects, you see all the people across all the projects. This is a nice way to see a global rollup.

If you select a particular project, then the number of visible people is narrowed to just those within the project. This can be helpful if you want to drill down on a single project.

Similarly, the available choices change depending on your task selection. At the broadest selection only Status and Priority are available. However, when you click on a task or summary task within a project, then all the choice fields from the current view become available.

As you can see, all that information can then be distilled into useful pie charts reflecting each persons allocation choice values (ie. Not Started, In Progress or Completed for the Status choice).

The coolest part? Watching the pie charts dynamically refresh as new data automatically is retrieved.

Lot's more information coming. We're so excited we just had to share a peek.

Wednesday, January 12, 2011

Viewing SharePoint Data Lists in a Gantt Chart

It's great when tools can work with well-structured data in well-defined lists like Tasks, Events and Discussions. But what about the other 99% of the data out there? You know, the stuff that started in Excel and was then uploaded to a SharePoint Custom List. It would have been nice to clean the data up and put it into a task list, but that's more work than people should be required to do.

Rather, in a perfect world, a tool should be able to work with the hodge-podge of data that reflects our daily routine and aid in making sense of it.

We couldn't agree more.

Therefore, we designed the IntelliGantt Web Part to work not only with SharePoint Task and Project Lists, but with just about any list, including the least structured of all-- Custom Lists. This gives you the ability to work with the unruly but critical data already in use today and adds a dash of structure to help you organize a collaborative effort so you can finish tomorrow.

Take, for instance, this basic Custom List called 'Raw Data'. It probably came from a spreadsheet somewhere long forgotten.




That 'Client Notified' field indicates there's probaly some work behind updating these rows of data. It'd be great if we could lay it out in a real task oriented tool like the IntelliGantt Web Part.




Ideally, we would like to place the 'Raw Data' right into the task list as an additional project to view:




Happily, you can do just that!

First, we need to inform the IntelliGantt Web Part of the new list type we want to use. Every SharePoint list has a template id. In the Web Page Editor, the IntelliGantt Web Part has a text field you can add one or more template ids into.




The template id for a Custom List is "100", which makes me think it might have been the first list the SharePoint team ever created. We will add "100" to the field.




Click 'OK' to save your changes and when the IntelliGantt Web Part refreshes, lo and behold!




First, IntelliGantt Web Part found the 'Raw Data' because it matched the template id. Then it adapted to the data and view on that list and updated the column headers of the task list to match.

But we're not done yet. It's time to add our dash of structure to the mix. What we will do is add a few more fields and start whipping this data into shape.

First, let's go back to the 'Raw Data' list and open the List Settings.




Scroll down to the 'Columns' section in the List Settings. Here is where we can either add new columns or use columns already defined by SharePoint.




Why reinvent the wheel, right? Therefore let's go to the 'Add from existing site columns' and see what we find.




Looks like '% Complete' is at the top of the list. We can use that. And we will look for 'Start Date' and 'Due Date' as well.




Click 'OK' to add them and, upon return to the List Settings page, you should see these columns are now available in the 'Raw Data' Custom List.




While they where automatically added to the default view, let's change the order of the columns so we see the Start Date, Due Date and % Complete columns first.




OK, that wasn't too bad. Let's see what our IntelliGantt Web Part looks like now.




Excellent! Since this is a 'task aware' tool, we can quickly add a bit more structure to really help organize our data. For example, we can flesh out the Start and Due dates.




There, we've quickly applied a little bit of project management discipline to a formerly unstructured mess. Better yet, we did not have to examine and update each row of data in order to shoehorn it into an inflexible system. Instead, we brought a flexible (IntelliGantt!) system to the data and solved the problem.

By the way, everything is being stored in SharePoint and the simple updates we did to the Start and Due dates were saved in the 'Raw Data' Custom List.




If you have an unruly SharePoint dataset needing a bit of order, give the IntelliGantt Web Part a try today.