Composite applications do not need to be complex. This example shows you how to combine existing SharePoint functionality in a SharePoint 2010 Team Site to create a simple but effective Project Management solution.
My company has decided to create a SharePoint Power User portal on the Internet to support this book. We have created the high-level concept ("SharePoint Mentor") but now need to set up and execute a project to turn our concept into reality. We need to be able to assemble our project team, create a simple project plan, allocate and track tasks, share documents and knowledge, capture and discuss ideas, and track our progress against the project goals and deadlines.
Our solution is to create a SharePoint 2010 Team Site and then customize it to fit our needs. The Team Site template gives us a great starting point, providing most of the functionality required to solve our problem. We first remove the things that we don't want and then add new pages, lists, and libraries as required.
For our security model, everyone should be able to read the site, but we only want our project team to be able to upload and update its information. We want to keep our security model as simple as possible. We deploy our project site in our existing intranet site collection, but break the security inheritance at the site level. We add the project leader who will be the owner of the site. We will add all our project team members as contributors and the rest of the organization as readers.
To allow us to coordinate the work that needs to be done in our project, we will use the tasks list. We add the tasks that need to be done and assign them to members of the project team.
To capture and share knowledge of the project, we will use a number of complementary approaches:
The project home page is a wiki page. This is modified to replace the placeholder data that the Team Site template provides with information that shows the goals and status of, and important information for, the project. We add and link to other pages as we need them.
Project documentation is captured in the existing Shared Documents library. As we don't want to lose important information and change history as the project progresses, we configure this library to track versions, require checkout, and enable content approvals. We will also want to collect feedback on and seek approval for the various project documents as the project progresses. We use the out of the box Collect Feedback and Approval workflows for this.
There will be things that our project team needs to work out as they go along. A discussion board is an ideal medium for this. The Team Site template provisions the Team Discussion board ready for use. However, as our SharePoint mentor concept isn't thought out in any detail, we also want to capture the ideas from the rest of the company as well. We will add a second Ideas Discussion board for this and tweak the security permissions on this board to allow everyone in the company to contribute to it.
To complete our knowledge sharing, we add a project blog. The project leader will periodically post project updates to the blog, keeping the project team and the wider project stakeholders informed of the project's progress.
This recipe works for:
SharePoint 2010 Foundation (not workflows)
SharePoint 2010 Standard Edition
SharePoint 2010 Enterprise Edition
These instructions are intended to guide you through the key steps that you should perform to build this composite application. They are not a comprehensive guide like the recipes presented earlier. You will need to apply the knowledge you have learned and refer back to the recipes presented earlier to successfully build this application. Recipes that will be particularly useful to you are listed in the Recipes that will help you build this application section later in this chapter. I recommend that you also read the How it works section of this recipe first to gain further insight before trying to recreate this application.
Create a new SharePoint 2010 Team Site for the SharePoint Mentor project. Set the site to Use unique permissions when you create it (using the More Options dialog).
Create new groups for the Owners and Members; inherit the Visitors group form the parent site.
Add the project manager to the site owner's group. Add each member of the project team to the site member's group.
Adjust the settings on the Tasks list to send an e-mail when ownership of a task is assigned. Add any existing tasks to the list.
Add a view of the task list to the home page.
Edit the Shared Documents library settings to require checkout, enable versioning, and content approval.
Adjust the Shared Documents and Tasks All Items view to only show relevant columns.
Upload any existing project documents to the library.
Add a Discussion Board named Ideas.
Break inheritance on the Ideas Discussions Board. Edit the Visitors group permissions to give them access to this list.
Add a new blog site under the Team Site named Project Updates. Use unique permissions for the site. Use an existing group for both the members and owners of the blog. Set this group to the SharePoint Mentor Project Site Owners. Use an existing group for the visitors to the site; use the same intranet visitors group as is used for the parent site.
Configure the blog, remove the placeholder post, and set up its categories.
Add any project-related meetings and events to the Calendar.
The SharePoint 2010 Team Site template gives us a great starting point for creating collaborative applications. Many business problems can be solved by customizing this site. SharePoint makes these customizations very easy to perform. In this example, everything we need to manage our project can be obtained by creating and lightly customizing a Team Site.
The customization process starts when we create the Team Site. We know that our scenario demands a custom security model and that we will not inherit the security permission for our parent site. The More Options dialog makes it easy to apply unique permissions as we create the site. It also means that no-one else can see our site and accidentally start using it before we have finished configuring and testing it. Further security tweaks are made to the Ideas Discussion Board (so that all intranet visitors can post ideas) and to the Project Updates Blog (so that only the project manager can post updates about the project).
Collaboration and coordination of the project is achieved by sharing tasks through the Tasks list, documents through the Shared Documents library, and events though the Calendar. Team members automatically receive an e-mail whenever a task is assigned to them. For convenience, all team members can connect to the tasks list, shared documents library, and calendar. Project documents are versioned, require content approval, and must be checked out before they can be edited. The out of the box workflows are used to seek feedback and approval for project documentation changes.
The team shares ideas and resolves problems through posts in its Team Discussion board. Again, this list is synchronized to Outlook 2010, allowing team members to be informed of and reply to new posts as soon as they occur without having to visit the site.
You can use Outlook 2010's folder function to move e-mail messages to discussion boards that you are connected to. The e-mail message will then appear as a new post in the board.
Weekly project updates are posted by the project manager on the Project Updates blog using Microsoft Word 2010. Stakeholders who wish to be informed of a project's progress register for an alert on this blog.
Creating a custom project site is all very well, but you really don't want to go through this process every time a new project comes along. Wouldn't it be great if you could just save the new, preconfigured project site as a template? You will be happy to know that SharePoint provides exactly that functionality. You will find the option under the Site Actions group on the Site Settings page. You can save your project site as a template and then create as many new project sites from that template as you wish. You can even choose to include your existing data in the template, so if there are tasks that you always perform on every project, add those to your site before you save the template and then include them in it. Each project site you create from then on will include those tasks already created. It is all designed to save your work and get your projects off to a flying start.
Composite applications do not have to be complex. Always start with the out of the box site template that best fits your needs and then work from there. We could have over-engineered (or paid for) an elaborate project management solution, but there really is no need. This project management site is quick to create, functional, and helps us get the job done. A Team Site with some minor changes and a tweaked security model is all that we need.
We typically require some custom security permissions in our composite applications. These are easy to create, but best practice is to keep these changes as simple as possible.
When we have created a custom project site that we are happy with, we can save it as a template so that we don't have to reinvent the wheel each time we need a new project site.
Create a SharePoint list, Chapter 1
Creating a Team Site, Chapter 2
Adding users to a Team Site, Chapter 2
Adding a new page to a Team Site, Chapter 2
Creating a new task and assigning it to another user, Chapter 2
Using the datasheet to bulk edit tasks in a task list, Chapter 2
Uploading an existing document to a document library, Chapter 4
Uploading multiple documents to a document library, Chapter 4
Requiring users to check out a document before they can edit it, Chapter 4
Enabling versioning on a document library, Chapter 4
Publishing a major version of a document, Chapter 4
Enabling content approval on a document library, Chapter 4
Creating a blog in my My Site, Chapter 5
Posting to my blog from Microsoft Word 2010, Chapter 5
Using the Collect Feedback workflow to receive feedback on a Microsoft Word 2010 document, Chapter 8