As we begin each product cycle, we take a look at customer feedback from users of the prior version + folks in our Beta program. With Project 2002 and 2003, customers were fairly unanimous in wanting to eliminate the "round-tripping" of actuals through Project Professional.

In Project 2002 and 2003, project managers can publish assignments from Project Pro to Project Server. Team members used Project Web Access (PWA) to then provide updates on the status of those assignments (via % complete, remaining work , or hours per day). Project managers then need to log into PWA to see the submitted updates and then open Project Pro, send the updates from Project Server to Project Pro via an XML document, reschedule the project using Project Pro, and then save the updated schedule from Project Pro back to Project Server.

The core issue driving the need to round-trip was the need to reschedule the project plan based on the actuals submitted by the team members. Since only Project had a scheduling engine, actuals needed to be moved from the server down to the client, rescheduled on the client, and then saved back to the server (so reports were up to date). To eliminate round-trips, we needed to build a server-side scheduling engine.

Sounds simple enough. CPM schedulers are easy enough to implement. However, we had a few challenges: (1) we needed to handle high peak loads w/o bringing the server to its knees = 100s of project managers trying to update their project plans at the same time, (2) we needed to recalc custom and formula fields ... not just task start and finish dates, and (3) we needed to recalc and update resource availability based on changes to the project schedule. Netnet, we needed to build a server-friendly version of our scheduling engine that could also handle much more than just task start/finish dates.

Project Server 12 includes a set of new scheduling and calc technologies. These technologies are exposed via a set of PSI (Project Server Interface) methods. These methods allow you to create, read, update, delete, and reschedule projects + tasks and assignments within the project. Server side scheduling takes advantage of the Project Server Queue. This allows Project Server to accept large #s of concurrent scheduling requests and supports processing the requests based on CPU availability (and priority of the queue job).

From a project manager's perspective, they can now view submitted updates, preview the impact of the changes on the project plan, and then update the plan ... all using a web browser and Project Web Access.

We have built a number of additional PWA features that take advantage of the new server side scheduling in Project Server 12. I will talk about the new features later this year (after Beta 1) and you will see server side scheduling and some related, cool new features at The Project Conference in January (Seattle, USA) and February (Munich, GER).

Adding server side scheduling to Project Server was A LOT of work. We think that it will significantly improve the usability and performance of Project 12. Once partners get their hands on a beta of Project Server 12, we will begin to see entirely new types of project and resource management apps developed on this technology.