This is part two in our series on optimizing drilling schedules with Microsoft Project Server 2010. In our previous post, we discussed how this series is designed to be a case study in managing resource constrained projects. In this case, our goal is to optimize a rig drilling schedule across multiple oil wells and then to report this data in an easy to use graphical format.
For Part I – Setting the Stage, please click here.
Creating the Projects
The easiest way to manage this challenge is by creating a single project schedule for each of the 8 well pads that we are managing. In this case, Edinburgh-based Rob Schneider has helped me out by providing samples of project schedules that he has created in the past to manage just such a challenge. If you’d like to contact him directly to request a copy of the projects, please visit his site here.
On each of the projects, I have assigned the resource of Big Rig, our fictional drilling rig to the key drilling activities. Note that I have assigned Big Rig a Resource Group of “Rigs.” Resource Group is one of the handful of resource fields that is carried over to the Task level data in Microsoft Project – thus allowing me to filter on activities to which a rig has been assigned in environments where I may have multiple drilling rigs.
To keep the reporting simple, the goal is to report the Start Date for each of the drilling activities for each of the projects. To roll this up to the project level, we’’ll use the old Report Key Dates at the Project Level trick, which requires three custom fields:
1) A flag field to identify all drilling activities.
2) A task level field to roll up the next drilling start date for each project.
3) A project level field to capture the rollup of the task level field for use in Project Center.
Here’re the parameters for each of the fields.
|Drilling Start Task (Date – Task)||IIf([Drilling Activity]=False,’NA’,IIf([Start]<[Current Date],’NA’,[Start]))||Minimum|
|Drilling Activity |
(Flag – Task)
|Drilling Start Date |
(Date – Project)
|[Drilling Start Task]||None|
Note that the formula for the Drilling Start Task will display the next drilling date for each project on the Project level. It will not display the drilling date after the next one – and will not display any past drilling dates.
I then create a custom Project Center View to display the drilling dates for each of the projects. For kicks I threw in a couple more useful metrics such as a Maintenance Backlog and a count of completed maintenance tasks.
You’ll also note a new feature in 2010 custom views – the fact that now I can actually change the column headers in a PWA view. In the old days of 2007, we had to actually create new custom fields to modify the field names to something slightly more intuitive. Now we can just modify the headers.
Armed with these priorities, I go back to the project files and create an ad hoc project to level the Big Rig resources:
I create a view to review the tasks assigned to the rig. To make life simpler for myself, I add priorities to each of the drilling activities to ensure I know in which order they should be planned. In this case, I take the Portfolio Prioritization Matrix results and multiply them by 1,000 to get the priorities.
Then I add manual dependencies to place the drilling activities in the appropriate priority as per the prioritization matrix we discussed in the last post. Note that if I set priorities appropriately on each of the projects, I could in theory trust the system to level for me. In this case, I prefer to attack the problem manually. I am adding 5 days of lag between each of the activities for tear down and transportation. (In a real model, I would probably calculate the Incremental Oil Recovery for each day post drilling and compare that to the costs of moving the rig.) For this example, I decided to keep things simple.
Note that I played with the sequence of the wells at the bottom of the list as their priorities are about the same and I wanted to minimize the rig travel time.
To validate, I now compare the start dates of the drilling activities with the relative priorities of each project.
Coming up next: how to represent this data in a Visio map.