Microsoft Project 2010
The official blog of the Microsoft Office product development group. Learn how to manage your work effectively

January, 2007

  • Microsoft Project 2010

    Talk Amongst Yourselves

    • 52 Comments

    I've been getting a lot of email lately with some great questions.  Rather than attempting to answer individually, I thought it best to give you a forum to ask these questions.

    So, to facilitate knowledge sharing, please post your questions as a comment to this post.  Assuming it is information we can discuss publicly, we'll give you answers.  Also, we can all benefit from the knowledge gained in this dialog.

  • Microsoft Project 2010

    Publishing – Made Simple

    • 41 Comments

    “What happened to my publishing options?” is one of the frequently asked questions from sharp-eyed project managers who have just upgraded from Project Server 2003 to Project Server 2007. The answer is complex enough to deserve this blog entry.

    My design needed to deliver in two areas:

    - Simplicity, our research showed that very few customers understood the nuances of each publish option, especially when combined with the even more hidden Tools/Customize/Published Fields options

    - Scalability, our larger customers were hitting bottlenecks because of the serialized nature of project publish.

    Simplicity

    To address the simplicity I decided to strip project publish to its bare bones, changing from the two dialogs below:

    To the single option, placed next to the Save command:

    It doesn’t get much simpler than that - this should make the publish option much less of a dice throw for most of our customers – however “power publishers” will be asking for more functionality, you should read on to the Power Publishing section for more information.

    Scalability

    History Lesson: Project Server 2003 used a background service called “Views Notification” that was responsible for moving data from the Project client sql tables to the Project Server and Views sql tables in the database. This process was serialized on a single project and the whole process was single threaded, using a single cpu (although later service packs allowed it to be run on multiple servers), as you might expect publishing rapidly became a bottleneck on larger systems. It also had other issues in terms of manageability, capacity planning and availability but more on that in other blog entries.

    The new server architecture has radically changed how publishing works. Publish requests are placed on the Project Queue and are handled by a queue processor that:

    • Is multithreaded and multi-server and serializes per project rather than across all projects
    • Pulls data from the Draft database into the Published database through the MSP_*_WORKING_VIEW sql views
    • Invokes the corresponding Report Publish that handles the transformation of the data into a report friendly format into the reporting database
    • Optimizes (“folds”) multiple publish requests against the same project into a single request

    Even with all the additional work done by publishing (such as moving all custom fields, and serializing data from our internal binary formats) internal tests have shown sustained publishing rates of around 1,400 projects per hour for non-trivial projects on a farm infrastructure.

    And the Project Server 2007 queue infrastructure allows for much improved capacity planning and remote management as it exposes performance counters that the Windows System Monitor (fancy name for perfmon) and MOM can catch and track.

    Power Publishing

    The Project Server 2003 dialogs reflected the relative underlying complexity of the publishing process - much of that complexity was driven by the need to cope with the shared schema (now split across distinct databases) and the need to avoid the performance hit of a full publish. The server now publishes all changed information each time you request a publish operation.

    Changes are tracked using revision counters on our primary entities and their children (for instance Projects own {tasks, assignments, specific custom field values, calendars and local resources} – these counters increment each time the project is saved, deleted rows are tracked in our _SHADOW tables.

    The two main operations a power publisher wants to control are:

    • When a team member sees a specific task assignment (aka “Phasing”)
    • Who approves task progress (especially when the primary project manager is on vacation)

    Both these actions are now controlled through the task sheet where the settings are now visible and editable (Yay!).

    If you add the “Status Manager” and “Publish” fields to the sheet (as seen above) you can control the publishing process. Note that both these fields can be set as a group by filtering then using the mouse to drag the value down to more cells.

    Firstly – use the Publish Yes/No flag to control whether a task assignment is placed in the Statusing (“My Work”) system – this flag can be toggled at any time & the project republished to make it active. This empowers you to publish a project a phase at a time, allowing you to avoid bombarding your team members with future assignments.

    I made the flag at the task level because statusing is all about gauging progress against the whole task - assignment progressing is best managed in the Timesheet sub-system where work can be approved by resource managers rather than the project manager.

    In the reporting database the flag is actually stored on the assignment:

     msp_epmassignments_userview.AssignmentIsPublished

    There isn't a sinister reason for this, it just reflects the order in which we did the development work against a changing schema.

    Note that if you toggle Yes-->No then the assignment disappears from the Team Members My Work (any approved work doesn't get lost though!) so use this power carefully! Also be aware that if the line is already in a timesheet it won't be pulled back.

    Secondly - the Status Manager field has some strange rules (that echo those of project Server 2003) - it can be set to another pre-existing Status Manager on a task in the current project or the current user (ie the person with the project checked out and open) - this allows the value to be set even when the project is off line, and ensures that the Status Manager hhas (at least had) the ability to edit the project so that status data from team members can be applied once approved.

    So if you are going on vacation you'd ask your deputy to open the project, filter on an appropriate time window and set themselves as the status manager for the tasks that will be active while you are out. On your return you can easily find those tasks and reset them back.

    Phew! If you have any questions about other "mysteries of publishing", then please reply to this posting and I'll do a followup.

     

     

  • Microsoft Project 2010

    Please Send Us Error Reports

    • 32 Comments

    Send Error Report message

    Before I came to Microsoft, I always cancelled the "Send error reporting to Microsoft".  I didn't know what was being captured or how it was being used.  Brief feelings of being spied upon would come over me.  So, my choice was always to cancel.

    Now that I work for Microsoft, I wanted to pass on the two major points I have learned about error reporting.

    First, it's very important information.  Whenever a Microsoft Office application encounters an error, the Watson error reporting application captures what was happening with the PC at the time of the error and what error was encountered.  It will then prompt you to send this information to Microsoft. 

    PLEASE, PLEASE, PLEASE send this data to us.  Basically, we capture the program call stack data for debugging purposes and the error description.  The data sent to us allows us to analyze which errors are occurring, how often and why. 

    Errors follow the Pareto principle where a small number of issues create most of the errors.  We use the frequency and severity as one of the inputs in deciding what goes into future service packs and product versions.  This data was instrumental in selecting fixes for the Project 2003 service packs.

    Secondly, we are not spying on you.  We do not capture personally identifiable information in this process.  So, you won't start getting marketing material as a result of submitting this information. 

    I recently watched a user get an error, saw Watson do it's job and then saw the user cancel the send process.  I asked why they cancelled it and basically, they didn't want to take the time to submit the info.  I also asked how often had they seen the issue and they said enough to notice. 

    As a result, we both lose as the user will continue to experience the problem and we will continue to not know about it.

    Sending in the data is the easiest way to make sure your issue is reported.  In the end, we will all benefit from a better product. 

     

  • Microsoft Project 2010

    SQL Server Reporting Services Report Pack for Project Server 2007

    • 21 Comments

    This post contains a zip file attachment which is the SQL Server Reporting Services(SSRS) 2005 report pack for Project Server 2007. 

    This attachment contains 9 items total: 

    1. One overview document describing the setup for each report as well as any new custom fields/lookup tables that are required to make these reports function. 
    2. Seven PDFs which are sample output for each report
    3. One zip file of the Visual Studio project with report source code. 

    This VS project file can be used within the SSRS Business Intelligence Development Studio to deploy and modify these reports to your own needs.

    The Project Server 2007 Report Pack provides usable reports for some common requests and illustrates some of the new functionality in Microsoft Office Project Server 2007.  The Report Pack also provides report developers with sample queries for correctly retrieving data from the Project Server Reporting database.

    The Report Pack includes the following seven reports:

    1. Cost Center Availability
    2. Project Give and Get
    3. Project Portfolio Trend
    4. Project Proposals Listing
    5. Project Review
    6. Timesheet Audit
    7. Work versus Effort Audit

    All of these reports use a shared data source, which makes it easy to direct these reports to your own instance of Project Server.  I hope you find these reports useful.  If you have questions, please post as a comment to this post.

     

  • Microsoft Project 2010

    Material Resource Usage Illustrated

    • 20 Comments

    Dr. Ed Hanna, one of our most senior field people for EPM recently posted a great example of using material resources using Project Server.  So, I'm taking Ed's e-mail and converting into this post.  I hope you find this very useful.

    Here's an example of how you might use Project to track the pouring of the concrete for one section of a dam.

    First, create a Resource Sheet entry for the concrete.  Click the image below for more detail.

    The dam footing work we are tracking will contain 20,000 cu. meters of concrete and will be poured over a ten workday period.  The Gantt Chart task to pour this footing looks as follows.

    Next, the Resource Usage view shows the planned usage of concrete at 2,000 cu. meters per day. Note: there is no Actual Work as the task has not yet begun.

    Once progress begins, the Resource Usage view can be used to report actual usage.  In this case, only 1,000 cu. meters of concrete poured on day #1.  Consequently, work is off to a slow start.

    Here’s the full Resource Usage view showing 3,000 cu. meters of additional concrete poured on day #2.  On the left you can see totals.  For example, you can see that 20,000 cu. meters of concrete is scheduled to be poured (i.e. Work) and so far 4,000 cu. meters have been poured (i.e. Actual Work). The graph in the lower portion of the display shows Cumulative Scheduled Work (i.e. the cumulative amount of concrete scheduled to be poured).

    The display can also be changed to track the cost of the concrete. The graph in the lower portion of the display shows Cumulative Scheduled Cost (i.e. the cumulative cost of concrete scheduled to be poured).

    I hope this is helpful.  By the way, Hoover Dam contains 3.33M cu. meters of concrete. 

     

Page 1 of 1 (5 items)