This article belongs to the "OnePlaceLive Scenarios Unleashed" series that looks at how OnePlaceLive can be used to solve common challenges and issues associated with building business solutions (systems) on SharePoint. Each article takes an in-depth look at a single realistic business solution (scenario) and how to apply OnePlaceLive to overcome the key challenges faced.
Before reading this article it is recommended that you have read the series introduction article that introduces the OnePlaceLive product and the Solution Profiles concept.
This article is structured into 3 main sections:
Project Management, Engineering, Construction, Design
This scenario depicts a project-centric engineering company. Projects are carried out for external customers and projects typically run for several months to several years in duration. Each project is appointed a single project manager who is responsible for the project and also has a project team who is responsible for conducting some form of work during the life of the project.
The projects typically contain a lot of documentation (both internal and shared externally with customers). At the moment most sharing of documents outside the company happens via email.
The company has a single office and all staff and customers are located geographically close together.
The company is usually operating with 10 - 15 projects active in different phases (this is expected to increase as the company grows).
A SharePoint solution has been implemented in Office 365 to service the needs of the Project Management Office so that projects can be run in a consistent, controllable, and governed manner.
The Project Management Office solution has been implemented in SharePoint/Office 365 with the following site structure.
The top-level Project Management Office site is the navigational entry point into the system and contains a Project Register list. This is a list that defines every project within the system along with its important metadata such as Project Title, Customer, Status, Phase, Project Manager, Project Team, and Budget.
The Project Register list also includes project tracking information such as % Over Budget and % Behind Schedule which the Project Manager is responsible for keeping updated, allowing an efficient high-level view across the health of all projects.
The projects are managed, and relevant documents and email stored, in individual project sites (which are created as subsites to the top-level Project Management Office site). Each project site is created from a common site template which contains:
Each project list item in the Project Register (of the top-level Project Management Office site) contains a link to the relevant project sub-site. The following image shows the Project Register and links to the project sub-sites.
Adobe Reader / Acrobat
Office (Word, Excel, PowerPoint)
Active Projects - Work with just those projects that are currently active without old inactive projects cluttering up the navigation
All Projects - The number of active projects is relatively small and remains fairly constant. Over time however, the number of inactive (closed) projects just keeps growing and search is a much more efficient method of locating these projects.
Projects I Manage - Give Project Managers a dynamic list of active projects where they are the project manager. This list will change as new projects are created, old projects completed and project management responsibility is reassigned.
My Projects - Give users a dynamic list of active projects where they are part of the project team. This list will change as new projects are created, old projects completed, and project team membership changes.
We have two fundamental groups of users:
To cater to the differing requirements of our two user groups we will create two solution profiles in the OnePlaceLive client.
Let's tackle the non-operations users first. This user group needs to have the system readily available but we don't know ahead of time which projects they will want to access.
We will start by giving these users access to all projects, to do this let's create a Central Register profile item and configure it the use the Project Register list held in the top-level Project Management Office site. We will leave the Central Register Query blank as we want all projects to be returned.
While we are here we will also set up a shortcut to the Online Help document library in the root Project Management Office site so users will always have it handy. For this we set up a Shortcut profile item, we are prompted to select the location in SharePoint we want to link to, here we have selected the Online Help library.
Since this Online Help library isn't a location we expect users to be saving to, we have left the Capture behavior settings as default.
Before we publish and save this solution profile, let's edit the solution profile itself and change its availability so that it is only available to our groups of non-operations users that need access to the solution (Legal and Finance). It is recommended that you use AD groups where possible.
We will now ensure the status of the profile is set to Published and save the changes, then flip over and take a look at how this looks for a user consuming this profile.
In Outlook the user can see the Project Management Office solution profile and the All Projects and Online Help items directly available from the Outlook navigation pane.
Dragging and dropping an email to the All Projects folder results in the OnePlaceMail Save Window appearing and allowing the user to select the appropriate project. As you can see the list of all projects is quite long, we will address this and other scalability issues in the next section.
The Solution Profile items within Outlook provide direct access to SharePoint content. By selecting the All Projects item, all projects from the Project Register are available in a tree view that can then be navigated and content previewed.
With OnePlaceDocs Explorer, the user enjoys the same consistent experience when navigating the Project Management Office solution profile.
This user experience is consistent across the entire OnePlace Solutions Product suite including insert and save operations from Outlook, Word, Excel, PowerPoint, Adobe Reader, Adobe Acrobat.
To complete this section we will return to the OnePlaceLive client and configure the visibility of our second solution profile so that it is only visible to our group of Operations users. In the example below I have just made it available to Tom and Sally who we will be using to demonstrate some of the personalization techniques later in this article. It is recommended to use AD groups rather than specific users.
We have achieved the objective of deploying the Project Management Office solution to different user groups by using multiple solution profiles and making them available to targeted groups of users. This allows the flexibility to now configure these profiles independently to best fit the different user groups of the solution.
Currently, our profile is configured to show All Projects from the Project Register list. Already you can see that this presents the user with a long list of projects to select from. Over time this list will keep growing and the solution becomes more difficult and time-consuming to navigate. We can address this challenge by replacing the All Projects item with an Active Projects item. Since the company is typically working on 10-15 projects at any one time, these active projects represent a much smaller subset that will be easier to navigate and removes all the old inactive projects from the list.
To create the Active Projects item we can simply rename our All Projects Central Register profile item, we then need to specify the Central Register Query to limit the projects to just those with an Active state of Yes. How do we achieve this? The OnePlaceLive client makes it super easy, as you can have it write the query for you based on any view that exists in the Central Register list. So let's go to the Project Register list in the Project Management Office site and create a view showing Active Projects.
Now in the OnePlaceLive client, we can use the "Base query on Central Register view" button to select the Active Projects view we just created and the query is written for us.
Note that this is a one-time export of the query from the view. If you modify the view, the changes won't be automatically reflected in the solution profile item. You are free to then modify or extend the query, or you could enter the CAML query directly without basing it on an existing view.
Here's the result from the user's perspective, we now see a much smaller and more relevant list of projects which over time shouldn't grow as the company typically has 10-15 active projects at any one time.
If the company grows and has the capacity to have more active projects then we could look at using other project metadata to keep the list of projects manageable. Perhaps they expand their market into a different area, we could then split projects by area and have solution profile items per area such as Active Projects (Green Lake area) and Active Projects (Blue Hills area).
This partially solves our scalability challenge, but we still need to be able to get to those inactive projects if we need to. Unlike active projects, the number of inactive projects is just going to keep growing. In time we will have hundreds or even thousands of inactive projects. Eventually (when we get up into the thousands of projects) we will start to hit SharePoint threshold limits and we simply can't show that many projects in a single list (not that it would be very usable anyway!). This is the perfect use of a Search Location profile item. The Search Location item allows us to use the SharePoint Search service to find SharePoint hierarchy (Site Collections, Sites, Lists, Libraries, Document Sets, Folders) and present these results to the user. So let's add an All Projects search location to our solution profile.
Here's the result from the user's perspective. When they select the All Projects location an initial search is performed which executes the base search query we configured (all websites) and returns the first 25 results.
The user can then enter a free-text query to refine the search results and locate the project.
Now the user can drill into and navigate the site as they normally would.
When search locations are used in Outlook a drag/drop operation to save an email into SharePoint immediately opens the Save to SharePoint window with the initial search results presented ready for the user to refine.
We have now achieved the objective of keeping the solution usable as the number of projects grows over time. The user experience is now consistent and remains just as usable if there are 50 projects or 5,000 projects.
We will continue by working on the Project Management Office solution profile for the Operations group of users who actively participate in projects as either project managers or members of project teams.
If we take a look at the Project Register list we can see that each project has a single project manager and one or more users listed in the project team.
In SharePoint the Project Manager column is configured as:
In SharePoint the Project Team column is configured as:
We can use this information in our solution profiles to be able to personalize the projects that users are presented with.
The first item we will tackle is giving project managers the projects they are responsible for. We will use a Central Register profile item for this as we can use a query on the Projects Register list to locate all active projects where the current user is the project manager. In the image below I've created the Projects I Manage item within a category folder called My Work. We will create personalized items under this category folder to keep a clear distinction.
Rather than writing the CAML query ourselves, we can base this one off a SharePoint view. We will now create a view in the Project Register list called Projects I Manage and set the filter on the Project Manager column to be [Me] which is a reserved token in view queries to represent the current user.
If we go to this view in SharePoint (logged in as Sally Jones) we can see the projects list has been filtered correctly.
We can now return to our OnePlaceLive solution profile item and base the Central Register Query on this new view by using the button. This results in the query being written for us, as shown below.
Here is the result from Sally's perspective when using OnePlaceDocs Explorer.
These projects are now self-maintaining as they are driven directly from metadata in the Project Register list and Sally will always have the active projects she is managing quickly available. As a project moves from active to inactive, or if a new project manager is assigned, the project will be automatically removed from this list that Sally sees.
In addition to managing projects, Sally will also be involved in other projects as a member of the project team. There are other operations users, such as our engineer Tom, that do not manage any projects but are on the project team of many projects. So we want to create a profile item that will display all projects a user is working on whether they are the project manager or member of the project team.
We will again create a Central Register profile item to address this, but this time we are going to have to write the query ourselves as it's not possible to create a SharePoint view that can handle all the membership conditions we need to cover. It's beyond the scope of this article to discuss CAML queries in depth so I'll just show the necessary query with some annotation to explain the different parts.
Using this query we are able to create the My Projects profile item
When Sally uses OnePlaceDocs Explorer, the My Projects item includes all the projects she manages plus any projects where she is a team member.
If we take a look at the same solution profile through the eyes of Tom Brown (an engineer involved in many project teams) we see the projects returned are personalized to Tom.
We have now achieved the objective of providing personalized views of the SharePoint system that are self-maintaining, and we've driven SharePoint locations directly to the users that need them. As a user I no longer have to go to SharePoint and find the Project Management System site, then find the project sites that are applicable to me or that I'm working on. They've found me and surfaced themselves inside the desktop applications I use (exactly where I need them), and because this is based on dynamic queries and search, my projects will keep finding me in the future without any ongoing administrative overhead.
Up to this point, we have been focused on getting the right projects to the right users. Next, we are going to take a look at the user experience navigating within a project and discuss some techniques for increasing efficiency in this area. We will continue looking at the My Projects items which we have already made personalized as these represent the projects that a user is going to be working with most of the time.
If a user expands a project under My Projects, they are presented with the structure of the site (as expected) and can then drill down to the location within the site that they want to access or save to. Since our solution profile has context and we know the user is working with projects with the Project Management Office, and we know the site structure of each project site, we are in a position to offer our users something better than just a generic SharePoint structure to navigate.
Let's look at this by taking two common actions that a user would be performing and see how we can make these more efficient.
By using the My Projects item in Outlook, this would be the user experience of transferring an email to SharePoint:
We are going to create add a new Central Register profile item to our solution profile in the OnePlaceLive client and call it My Projects - Email. The purpose of this item is to give users a direct link to the email library within the project sites. The configuration and query are exactly the same as for My Projects (so we are starting with a personalized list of project sites). Now we can use the Descendant Locations section to tell OnePlaceLive that it's not the project site (that the query returns) that we are interested in, rather it's a location within (descendant location) that we want. So we go ahead and add a descendant location providing the display name that we want to appear "Email", the URL of the Email library relative to the project site, and the type of SharePoint location that the Email library is.
Now back in Outlook, we can see that we have simplified the process of transferring an email to a project by eliminating the need to navigate within a project.
Following a save operation a Recent Location is created to the email library. This Recent Location retains the name of the project to allow for one-step drag/drop operations to transfer subsequent emails to recently used projects.
Each project contains a Documents library and has the same five top-level folders. As described in the Information Architecture section at the top of this article, the Operations folder is where most of the documentation is created. As far as the Operations team is concerned this is where they store all of their documentation during the running of the project. Other functions of the business create content in the other folders.
As we did with saving an email, let's look at the number of steps it takes for a member of the project team to access content in a project's operations folder.
We are going to create add a new Central Register profile item to our solution profile in the OnePlaceLive client and call it My Projects - Operations Docs. The purpose of this item is to give users a direct link to the Operations subfolder (within the Documents library) within the project sites. The configuration and query are exactly the same as for My Projects. This time we use the Descendant Locations section to tell OnePlaceLive that it's the Operations folder within the Documents library that should be displayed instead of the project site returned by the Central Register query. So we go ahead and add a descendant location providing the display name that we want to appear "Operations", the URL of the Operations folder relative to the project site, and the type of SharePoint location that the Operations folder is (LibraryFolder).
Now back in OnePlaceDocs Explorer, we can see that we have simplified the process of accessing the Operations Documents folder from 3 steps to 1 step.
In this article, we've seen the solution profiles in the context of Outlook and OnePlaceDocs Explorer. The same consistent user experience extends to other core applications where the user works as well, including Word, Excel, PowerPoint, Adobe Reader, Adobe Acrobat, and Windows Explorer.
The project sites all contain a Site Assets library, this library could be considered a part of the design of the site and is not a location that end-users should be storing documents in. For this scenario, we also want to remove the Calendar list.
We can remove locations from the project site by modifying the Active Projects Central Register item adding multiple descendant locations. Add one location for each list/library we wish to show to the user, all other lists/libraries will be hidden. As you can see from the configurable Display Name, we have the flexibility using a descendant location to rename or present the list/libraries with a different name if we want.
After making this change the appearance of the navigation is changed and we have been able to present a view of the site with the Calendar and Site Assets libraries filtered out.
This article has demonstrated how OnePlaceLive and Solution Profiles can be applied to overcome common challenges that are encountered by building robust and scalable business solutions on SharePoint/Office 365 that keep end users engaged and productive.