Project Management Using SharePoint At Bamboo: A Case Study

(Note: If you wish, you may choose to download a .pdf version of this article.)

Summary: This article describes how Microsoft Office SharePoint Server 2007 is being implemented at Bamboo Solutions to manage its multitude of concurrent projects and product portfolio.  It demonstrates many out-of-the-box functionalities as well as how Bamboo's own commercial Web Parts are used to extend the basic capabilities of SharePoint.

Bamboo Product Team, Bamboo Solutions Corporation.
July 2008

Background

Our company, Bamboo Solutions is a commercial software vendor that provides comprehensive product suites based on Microsoft's SharePoint platform.  We are the leading vendor in providing off-the-shelf SharePoint products, and currently have more than 40 Web Parts and Solution Accelerators available on our Web site.   We strongly believe in an agile development process where products are quickly designed, built and released.  Customer feedback is promptly reviewed and product enhancements and patch releases are scheduled accordingly.  In a typical month, we release 4-6 patch releases, 1 major new product and 1-2 minor/major releases.

Besides product development, Bamboo also takes on custom projects for our customers.  Most of these projects are also on the same quick development and delivery schedule, which lasts from 6-10 weeks depending on the level of complexity.  Typically, there are internal IT infrastructure and future research development projects running concurrently.  This could add up to 4-6 projects in a given month.

Today, we employ one full-time project manager to support the product development team, and "half" of a project manager for the custom development team.  How is it possible for one-and-a-half project managers to manage the workload?  The secret is the quality of our people, combined with a little help from SharePoint.  We can't tell you how we do everything, but we will share with you how we are using SharePoint to manage our projects.

Bamboo works in a fairly distributed environment.  While our headquarters are in Reston, Virginia, U.S. (where the majority of our employees are), we also have offices in California, St Louis, Atlanta, and as far away as Europe and Vietnam.  More importantly, many of our line of business and functional areas are distributed.  For example, our engineering functions are in the U.S. and Vietnam, and our support teams are in the US, Sweden and Vietnam.  It is imperative that our teams collaborate on all phases of project management in order to be able to deliver on the aggressive delivery schedule that our project managers are facing each day.

Our SharePoint Infrastructure

We started to use SharePoint seriously as an intranet portal with the SPS 2003 version.  Today, we are running MOSS 2007 (standard version) to support about 120 users.  Our server farm topology is fairly typical, with two Web front ends, one Shared Services server, one Search server, and one SQL 2005 back end server.  Our main portal Web application is extended with a secured SSL internet-facing site for remote access without a need to use VPN access.  Partners and some enterprise customers can also collaborate with us via a Form Authenticated site so that we can maintain stricter security access.

Our SharePoint portal is being used mainly for collaboration and document management, with typical information architecture contained within two main areas: departmental private sub sites, and company-wide sites.  Users and Groups security is defined at the top-level site collection at the corporate level and enforced at each department site.  Public and cross-functional sites are managed by project managers, or by the "functional" lead for that particular site.

Our basic architecture is to allow our central administrator to control the overall system security and infrastructure updates, but push our day-to-day management and site design to each department.  The main goal is to keep IT costs as low as possible while giving each operating unit as much control over their site as possible.

The project management capabilities are designed to satisfy the most important needs of the following stakeholders:

  • Project Managers: Project status, task management and reporting capabilities;
  • Engineering Team: Day-to-day development tasks and bugs management, as well as collaboration on design and development;
  • Quality Control: Day-to-day testing and bugs management, as well as learning and understanding the functional capabilities of each product;
  • Support: Knowledge base repository of product capabilities, as well as managing the status of outstanding bugs; and
  • Executive: Overall project status, as well as drilling down into specific project details.

Our Project Management Site

The project management site is one of our cross-functional areas.  A typical project involves pretty much everyone in the organization: Marketing (product specs); Sales (pricing); Product Management (project management); Engineering (the heaviest site user); and Support (bugs and kb). 

Besides information that was created indirectly in SharePoint Lists, our data are also being aggregated from several Line of Business systems:  our online e-commerce application server, our CRM system, our Great Plain accounting system and our online community server.  This information is usually summary data that are being aggregated into highly visual reports presented in charts and graphs that provide snap shots of our operations.

With our short and agile development cycles, we rely heavily on SharePoint as the main collaboration tool, along with the usual Office productivity suites of Outlook and Word.  We actually do not use any spreadsheets.  MS Project is sometimes used in the planning stage to model the project phases and high-level tasks, but is not used once the project has actively begun.  We do not use any project servers (except for internal product development and integration testing) such as MS Project Server 2007 or Primavera, as these would only represent overkill and add too much overhead in our situation.  Overall project health and status is monitored using a rollup of data and charts, as we will show you later in this article.

Logically, the top project management site is a sub web under our main portal top level site collection (phew!). 

The top project management site is based on a SharePoint Site Template, which contains a custom List of current projects.  The project list is manually created and customized to contain the data that we need.  This page provides an aggregated view of all projects, allowing users to use the pre-build filter view of the List to show projects listed by status, due date, types or project IDs.  The user can then drill down to each project site by clicking on the project’s Title link.

When a new project is created, a sub site is created based on a custom site template that we pre-build and populate with the required Lists and Web Parts.  In our case, the process of creating the project site and populating the List is handled automatically by one of our commercial Web Parts, the Site Creation Plus Web Part. 

Project Site Home Page

Each project site is based on a customized Multipage Meeting Workspace template (as shown in the image above).  This meeting workspace allows us to create multiple tabs to navigate to other major sections.  Each project site contains all the information related to that particular project: Tasks, Bugs, Documents, Knowledge, Support, Training, and Product Management.

On the Home page of each project site, we want to display the most important information and an overview of the project.  The following information is available at a glance:

  • Objective: This is a custom SharePoint List that displays the key objective for each release and the due date.
  • Team: A Custom List contains information on team members and their respective roles in the project.  Note the presence information next to each team member's name.  Bamboo Solutions uses Exchange and Community Server 2007 with full Voice-Over-IP (VOIP) Unified Messaging, so each team member's schedule, contacts and methods of communication are readily available within our portal no matter where they are in the world.

                             

  • Project Log: This is a custom List that we use to track major events and decisions made during the project lifecycle.

Tasks and Milestones

The next most important tabs are the Tasks and Milestones.  As we mentioned before, we do not use other project management tools to manage the project once it's underway.  Instead, team members rely on the Tasks list to manage project tasks.

 

The Milestones tab uses our Calendar Plus Web Part to display the tasks in a calendar view.  SharePoint provides a calendar view out-of-the-box for the Task List; our Calendar Plus provides some of the additional features that we use extensively in managing tasks, such as:

  • The ability to color code different status of the tasks; and
  • The ability to view the schedule in a quarter or year view.  Note that even though our projects typically last just 6-12 weeks, we do manage multiple releases within a calendar year and it's good to have a view which captures multiple releases running concurrently.

One of the enhancements that we will implement in the near future is to use the Team Calendar Web Part to create meetings and milestones for individual team members.  The Team Calendar contains all the features of Calendar Plus that we use today, and it also provides the capability to create meeting requests directly on each member's Outlook calendar (with the ability to do the same with Tasks in the future).

Tracking Bugs

The Bugs tab contains an Incident List where we track the bugs and enhancement requests for each release.  The Incident List is grouped by priority and is displayed on this tab as the default view. 

 

On the right-hand side of this page, we also created several views of the same list to summarize the current active bugs by Status, Priority and Assignee.  This data are sometimes displayed in chart format using our Chart Plus Web Part.

The information on this tab is very important in 2 distinct phases:

When the project is in its testing phase, our QA team uses this list to enter bugs, assigning them to the development team.  The developers also use this list to change bug status from "Open" to "Fixed".  Our QA team then verifies the fixes on the next build and closes out the bugs upon verification of the fixes.Our Product Management team uses this list to produce and update release notes each time we release a new patch or upgrade to the product.

In the middle of the development process for a given release, there could be hundreds of bugs created, modified, validated and closed (yes, the screen shots above do not adequately represent this).  We supplement this list with 2 capabilities that make it much easier to manage the entire QA process:

Search

We use the Simple Search Web Part to allow our team members to constrain their search to this specific bug list.  Yes, it's true that SharePoint (MOSS in particular) has a great search capability, but try to use that to find a bug for which you want to change the status; it's overwhelming and not very easy to set up.  The simple search allows our user to search for all important fields, and is further filtered by Status, or by the person who reported the bugs.

Alerts

As good as having a portal where people can go and look for information is, we have learned through the years that tracking of bugs and tasks is accomplished much more easily using the Alerts mechanism in SharePoint.  It's very difficult to look at the bugs list and have a sense of which items have been updated.  In our situation, we want to send a notification to the team member when any of several conditions occur:

  • When a new bug is created, the developer to whom it's assigned should receive an email notification.
  • When the status of the bug changes, the originator of the bug and the project manager should both receive email notification.
  • When a bug is closed, the review team and the project manager are notified.

Initially, we used the out-of-the-box SharePoint Alert to implement this functionality, but quickly realized that it does not provide all of the functionality that we needed.  We received many complaints about people receiving "alerts spam" each time an item is touched in the list, so another of Bamboo product, the Alert Plus Web Part is being used to filter and send notifications out only to the people who should be receiving alerts (as specified above).

Believe me when I say that cutting down the amount of trivial alerts really helps the team to collaborate much better.

Site Columns

The Task and Bugs list is also a perfect place to implement Site Columns.  A site column is a reusable column definition that you create and upload to a site gallery, and it can be assigned to multiple lists across multiple SharePoint sites. We use Site Columns in our Task and Bug Lists to ensure consistency of metadata across all project sites.

For example, we defined "Bsc Bug Categories" as a Site Column and populated the list with a set of pre-defined choices.  This Site Column is used in the Bug List of the Project Site Template that is used to create all the project sites.  As a result, when a user creates a bug item, they will see the same choices in every project.

Document Management

As the rule, all electronic documents relating to the project are stored in a Document Library and can be accessed with the "Document" tab.  All of the libraries have versioning enabled and provide the ability for our users to perform check-in/check-out for updating.  Some, but not all projects have workflow enabled to facilitate reviewing of final documents. 

For each project, we use several libraries to hold documents:

  • Document Library. This library is used to store design documents and requirements specs, as well as other miscellaneous documents.
  • Picture Library. We use this library to store screen shots, images, and screen prototypes.
  • Wiki Library. A major part of our design is done using the wiki library.  We encourage our developers to use wikis to write design and support documentation.

Content Types

In our Document Library we also implement several Content Types to standardize the type of documents being uploaded to the libraries.  Content Types allow us to retain additional metadata about different types of documents in the same document library.  Some examples of Content Types that we use are Design Document, Review Documents, and Sample Codes.

Discussions

Another thing we learned over the years doing project management is that there is no such thing as "completed" bug, tasks, or design documents.  As soon as a task or bug was created, it usually follows with 10 emails asking for clarifications, additional details and other information.  These email trails not only created confusion, ate up network storage, and upset our IT admin, but most importantly, we would lose the knowledge of how a particular problem had been solved, and would thus also lose the ability to quickly resolve the problem the next time it happens.  This is where a discussion board can be the most effective tool in managing your project.

 

We use the discussion board pretty much out of the box and enforce the rules that any questions related to design, bugs, tasks, etc., are created in this forum.  The discussion list is sorted by the date of the last post, and a simple flat view is used.  We also use the Alert mechanism and the entire development team is subscribed to receive notification when there is a question or answer being posted.

This discussion area is the only place where we wrote a custom piece of code, to solve one very annoying and time-consuming problem with the SharePoint build in text editor.  As our team started to heavily use discussion threads and wikis for design, not only did the lack of editing capabilities become apparent, but the biggest problem that we encountered is that it's very hard to upload images directly to the discussions.  You have to upload an image into a Picture Library, and then provide a HTTP link to the image in your text.  It sounds like a simple additional step, but it becomes less so when you have to upload 5 images for each discussion.  A simple problem like that can make our users stop using the site altogether.

 

We solved this problem by replacing the build in text editor with another third party editor that allows the user to upload and insert the image in a single step, as you can see in the above screenshot.  With a little programming capability, you can accomplish the same using a third party editor like Telerik's RadEditor.  Bamboo will also release a new Custom Column Pack product in the near future to help with this particular problem.

Knowledge Management

With as many projects and products as we are handling during a typical quarter, our development resources are typically rotated between projects.  As our product portfolio grows, new team members are constantly being added or moved.  One of our primary goals is to find a way to retain as much knowledge about the project as we can from each team member.  Our solution is in the Knowledge tab.

The KB tab contains a simple list where we store all the external links and reference materials that we discover during the research and design phase of the project.  Right now, we do not use automatic crawling of external sources, but just simple static links to the information.

Each project also has an iFrame-based control which allows us to view the KB articles that we publish on our online storefront and community sites.  This KB store provides a set of articles that we publish for our customers on various topics such as how-to, workaround, top issues, etc.  This information is very useful for the project team to consider when implementing enhancements and patch releases.

Bamboo also uses an internal Knowledge Management system based on the SharePoint platform.  This KB system contains internal process, information worker tips, how-to, and IT/Sales/Marketing-related questions.  This information is also filtered based on keyword and attached to our project site to help new team members understand how to use the portal more effectively.

Training

For many matured products, we also create a List containing a number of training topics for new project members.  Most of the training is done in the wiki-based format where exercises are set up with questions on how certain aspects of the product, or projects, are designed and implemented.  The questions then refer to the reference materials in our KB, Discussion, or Document Libraries.

 

Project Aggregated Views

Once the project sites are up and running, some of the most frequent questions that you will hear are, "How do I see the overall status of all the projects?", and "How do I know which tasks are assigned to me from multiple projects?".  The project top site can give you the overall status at a glance, but in order to see overall tasks, issues or bugs across all projects, we have to be able to aggregate data from multiple projects into one site.

SharePoint does not provide the roll-up capability that we need.  Initially, we used the SharePoint Designer to pull data from various lists and create a data-view, but we soon found a better way to aggregate data from another of our commercial Web Parts, the List Rollup Web Part.

What we decided to do was create a cross-functional site at the top level that can be used to display data from multiple project sites.  This is our "Bamboo Weekly" site as shown in the screenshot above.  Using the List Rollup Web Part, we can bring the Calendar, Tasks and Bugs from various project lists into one view.

Using the List Rollup capability, we can display the data using the built-in Data-Viewer Web Part. This Web Part provides capabilities to filter, sort and group data as needed.  One of the problems with using the built-in data-viewer is that we have to use SharePoint Designer each time we want to change or customize the view, so we finally decided to use our Data-Viewer Web Part, which can read the data from the List Rollup to display the aggregated data.

The major benefit for us in using the Data-Viewer Web Part is being able to perform grouping, sort, and filter at run time without having to resort to SharePoint Designer (which also removes the Ghosting issues that we sometimes had to worry about).  This Web Part also allows us to have more information on the Projects data and the Task data at the same time.

Other Information

The rest of the tabs that we use in our project site are fairly Bamboo-specific, allowing our Support and Product Management teams to provide their information for each project.  These are implemented as views that get data from each department's private site, filtered according to each project and displayed in the project sites.  For information that we aggregate from external data sources, we use either an iFrame through the Page Viewer Web Part, or directly backend interface through our commercially available Web Parts.

Having external data related to the project on the same site is important to the project team.  We will be using Business Data Column and MashPoint in the future update to the site.

Lessons Learned

Project Management is obviously a large topic and frequently needs to be "customized" for each company according to specific needs.  We hope that this article was helpful in showing you one way that it can be done using SharePoint as a collaboration platform.  As we grow into the second year of using the project sites, our top takeaways and "best practice" recommendations to implement on a similar project site are:

  • Use a site template to provision your project sites.  This will provide a consistent look and make it easy for end users to create new "ready-to-go" projects.
  • Think of a way to rollup the data and provide aggregated information.
  • Understand and use Alerts.  Think of a way to provide effective Alerts via Audience or group that help control email spam.
  • Provide the ability to perform search that can be narrowed down to each specific project site or List.

Further improvements to the existing process that we have in mind:

  • Integrate our Calendar and Task with Exchange/Outlook for better task management.
  • Implement a Gantt view with capbilities to handle the grouping and dependencies between tasks.  This capabilities will be provided in a new product that we will be introduced in the near future. 
  • Use Business Data Catalog (BDC) or MashPoint to import information from other LOB systems.

Concerns going forward:

  • Defining and implementing a project archive process as data grow.
  • Making sure our implementation will survive the next major upgrade.  This requires a combination of minimizing and documenting any custom code, and making sure that Web Parts infrastructure is upgradeable.  The ability to implement redundant views of important business data, e.g., being able to view task lists with just a regular List, along with a commercial Web Part, is also helpful.

Conclusion

Is SharePoint the right tool for project management? There is no question in our mind that SharePoint (even WSS alone) is a great platform on which to build your project management infrastructure.  To us, the most difficult (and most expensive) part of project management is how to make sure information (especially changes) is transferred and received effectively by all appropriate team members so that required actions can be taken.  SharePoint handles these aspects of project management very well. 

We believe that you can accomplish a very practical and effective way to manage projects using SharePoint as a tool.  If you noticed, we have not used any features that are only available in the MOSS Enterprise version.  Windows SharePoint Services (which is free) or the Standard version of MOSS should get you started effectively.  We've also shown how some of the Bamboo commercial Web Parts can be used to enhance the user experience, and provide additional functionality for your project management site.  But you can absolutely build your own version of the project management site we've described using standard out-of-the-box SharePoint components.

Do you have questions or comments on this article?  Please visit our Project Management forum and share your thoughts with Bamboo Nation!

 


Posted Jul 23 2008, 06:13 PM by John Anderson

Blogs

    SharePoint for Project Management
  • Home

Bamboo Nation, Media Sponsor of:

SPTechCon

Q&A with Dux Raymond Sy

     Dux Raymond Sy

Meet Dux Raymond Sy, PMP, author of SharePoint for Project Management, and Bamboo's "resident expert" on all things related to SharePoint for project management, in our exclusive Q&A.

Now Available!

 

Dux's book is now available for purchase.

Where's Dux?

Don't miss your chance to meet Dux in person at these upcoming events where he'll be speaking:

 

Coming Soon

Check back regularly for upcoming feature articles on:

  • SharePoint and MS Project Server integration
  • Leveraging SharePoint with MS Project
  • Using SharePoint workflow in project management
  • Archiving your SharePoint project data
  • Application templates for project management in SharePoint
  • Best Practices
  • ...and more!

Bamboo Nation Almost Everywhere

Follow Bamboo Nation on:Bamboo Solutions on Facebook

Bamboo Solutions on Google+

Bamboo Solutions on LinkedIn

Bamboo Solutions on Twitter

Bamboo Solutions on YouTube

SharePoint Calendars

SharePoint Calendars

Bamboo Solutions Corporation, 2002-2012