Can you track subcontractor costs in MS Project? - ms-project

I am looking into MS Project and before I purchase, I need to make sure it can do what I need it to do.
Lets say I have 2 roofing subcontractors that I would use for a project. Each contractor would perform 1 of a list of tasks I have established and I have a list of all prices for these tasks.
Can I store all of the following information for each vendor in MS Project?
Contractor, Tasks they would perform, price for each task.
Roof Contractor 1:
Roof Maintenance (per house) $150.00
Replace Sheathing (per sheet) $40.00
Replace Roof (per square) $180.00
Roof Contractor 2:
Roof Maintenance (per house) $160.00
Replace Sheathing (per sheet) $45.00
Replace Roof (per square) $190.00
For example: Project 1
Tasks:
Roof Replacement (20 squares): $160.00
Replace Sheathing (2 sheets): $45.00
I would pick the roofer based on best price and availability at the time, but I would like to keep a list of all roofers, their tasks, and their prices in my project template.
Is this possible in MS Project?
Thank you

The short answer is not directly, but you can make it work.
MS Project does not support fixed costs based on resource. You can have fixed costs on tasks, but they won't be dependent on which resource is assigned (aka which contractor). That said, you can work around this limitation as follows:
For labor-driven tasks, create a resource called "Contractor 1 maintenance" with a rate of $150/hour and assign this to your task with one hour of work. The key is to always make sure the work on the task is just one hour (1h). Likewise, create another resource called "Contractor 2 maintenance" with a rate of $160/hour.
For material-driven tasks, create a resource called "Contractor 1 sheathing" with a rate equal to the sheet/sqft cost and assign this to your task with the work (e.g. hours) as the number of sheets required.
For both of these scenarios, make sure the task is set to "Fixed Duration" so that adding resource work does not affect the duration of the task.

Related

Who should ensure that the project with one product uses 1 PO and 1 Product Backlog?

Management are involved. They want to split the product into multiple streams but it's still one product.
Management have introduced multiple Product Owners and given then a stream each.
The Scrum Masters are recommending 1 product = 1 owner = 1 backlog. Management disagree.
Everyone is pulling their hair out with dependencies, it's a mess.
Who should take action and what?
Depending on the project this is possible. I would recommend looking into LeSS Huge we use this system for larger projects. You keep one Product Backlog, one definition of done, one product & one main PO. You just add extra areas or "sub" projects that are directed from their own areaPO that takes from the main backlog. The main PO just divides it more into manageable chunks and makes sure that parallel parts don't have to wait on other parts of the project to finish

How to assign "fixed work" task to multiple resources taking vacations into account

Let's say you have a small project. The team has estimated all the tasks as 300 days of effort.
I have 5 developers in the team, and I want MS Project to tell me when the project will complete considering vacations and working schedule of my team member.
In order to do that:
I'm creating a Task "Development" with fixed work "300d", and task type "Fixed Work".
Then I create 5 resources, and specify a 2 week vacation for one of the developers somewhere in the middle of the schedule.
Then I assign my 5 development resources to this task.
The problem is, the 300d distributed evenly to all 5 development resources. And If one of them have a two weeks vacation in between, due to that particular resource the work will be finished 2 weeks later, where other 4 resources are sitting and doing nothing for 2 weeks. Total duration is 70 days.
what I get
What I want to get is: work is distributed accordingly through all 5 resources unevenly in a way that the whole task finishes as earlier as possible taking most of the usable time from all developers.
That's how I would expect it to work. In that particular case I was distributing hours manually.
what i would expect
Is there a possibility in MS Project to do something like this? Or am I doing something wrong?
There are a couple issues with how you are approaching the problem.
1. Rather than just planning out the manpower hours estimated to be needed for the entire project on a single line item, You should plan out the tasks that will need to be done to accomplish "Small Project"
If you discretely plan out the tasks that need to be accomplished to satisfy the scope of "Small project", you can establish dependency (predecessor/successor) relationships between your tasks and figure out what tasks need to be done before you can move on to others. When you do this it will give you a good idea of how long the total duration of the project will take and likely be more accurate than just relying on an estimate based on the manpower hours estimate your developers give you. Find out what tasks they actually need to do, not just how many hours they think the whole project will take them. This will also allow you to plan out the utilization of your resources better because you'll be able to assign specific resources to specific tasks, and not all of your resources need to be on every task.
2. In general I would avoid using the Task Usage form.
I noticed you are altering resources in the task usage form, but unless you are really experienced with Microsoft Project I would avoid ever touching that, as it's really easy to set the period of performance of resources assigned to a task to be different than the actual period of performance of the task itself. This will cause MS Project to behave unusually, and it can be hard for an unexperienced user to understand why. This usually leads to pain and frustration. This leads me to my next bit of advice:
3. If you really want to specify a resource's vacation time, it's better to adjust the calendar associated the resource to exclude those dates as working dates.
In your situation with only 5 resources on your project, this can be fairly easy to do. You can accomplish this 2 different ways (I'll start with the easiest option):
1. You can add resource specific exclusion dates to the default calendar in your project
You can accomplish this by opening the Resource Sheet table and then clicking the Project tab then Change Working Times. If you have the Resource Sheet open instead of the Gantt chart, you can specify the resource that is going to be effected by the exceptions:
In this example you can see that I would be excluding (removing) 8/23/21 thru 9/3/21 as working days for the SW Engineer resource, without needing to change the calendar used by the resource completely.
2. You can completely change the calendar used by particular resources to be different than the default calendar set for the project.
You can accomplish this by going into the Resource Sheet and opening the Base Calendar column:
From here you can assign any calendar that exists in the project to the resource. Of course this means you would need to create the calendars and assign exclusion dates to them.
To create a calendar, click the Project tab then click Change Working Times. Click Create New Calendar on the form that opens up and give it a name:
From there you can add exclusion dates and all that.
Note: In a larger project with many resources, I would recommend not messing with the calendar for the resources at all. It just gets hard to deal with when there are a lot of resources.

Resource quantity decrease for temporarily maintenance

I am using the Resources to configure multiple types of bookable on my website as suggested in the documentation. This way, we have for a specific Product P, for example:
Resource A quantity: 50
Resource B quantity: 50
However, I need to temporarily decrease the quantity on a specific date due to maintenance. So, the question is, how to decrease the quantity in a specific date period without jeopardizing the remaining period of the month/year?
Well, I discussed this point with the development team, and they said that we don't have this option on the plugin. The solution was to create specific resources for particular days and disable the other resources on that day. In other words, use multiple resources with the availability configuration.

What will happen to total project cost if activity which is in progress from scheduled project is deleted in primavera?

What will happen to total project cost, if activity which is in progress (2 days complete out of 5), is deleted in primavera?
The Budgeted Total Cost for the project will no longer include the cost for that activity (assuming the deleted activity has an associated budgeted Resource cost or Budgeted Expense cost). Also, there were Actual Costs associated with the 2 days of progress, then the Total Actual Cost of the project would not include those costs as well.
Michael - Plan Academy
In the simple case where there is no baseline, then all the costs associated with the activity are removed from the calculations in Primavera. You can see this by adding the At Completion Total Cost to the WBS view, making a note of the values and then deleting the Activity.
If there is a Baseline attached to the project then the costs for the deleted activities remain inside the Baseline but they cannot be seen. This is because Primavera links from the Current Project into the Baseline Project through the Actiivity Id.
This also means the Activity and it's cost stays in the Baseline. If you want to see what I mean just create a Baseline and make it the Project Baseline. Then add the BL Project Total Cost to the WBS view. Take a note of the values. Then make a note of the Activity Id of an Activity with cost on it. Then delete or dissolve that Activity. The BL Project Total Cost and the At Completion Total Cost goes down in value.
Now create a brand new Activity and give it the same Activity Id as the one that has been deleted, but do not add any costs to it. You will see there is no change to the At Completion Total Cost, but the BL Project Total Cost has increased.
So what? Away from the technical capability of P6, it isn't a good idea to just delete Activities from a project, particularly when they have actual costs on them. It is far better to give the activity an Actual Finish date of when it was cancelled and make sure the actual costs are correct.
When there is a Baseline as well (and why shouldn't there be a baseline :-)) the activity in the baseline may need to be changed if the cancelling of the activity is a change to the scope.

Parsing RTF files into R?

Couldn't find much support for this for R. I'm trying to read a number of RTF files into R to construct a data frame, but I'm struggling to find a good way to parse the RTF file and ignore the structure/formatting of the file. There are really only two lines of text I want to pull from each file -- but it's nested within the structure of the file.
I've pasted a sample RTF file below. The two strings I'd like to capture are:
"Buy a 26 Inch LCD-TV Today or a 32 Inch Next Month? Modeling Purchases of High-tech Durable Products"
"The technology level [...] and managerial implications." (the full paragraph)
Any thoughts on how to efficiently parse this? I think regular expressions might help me, but I'm struggling to form the right expression to get the job done.
{\rtf1\ansi\ansicpg1252\cocoartf1265
{\fonttbl\f0\fswiss\fcharset0 ArialMT;\f1\froman\fcharset0 Times-Roman;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red109\green109\blue109;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\deftab720
\itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrt\brdrnil \trbrdrl\brdrnil \trbrdrt\brdrnil \trbrdrr\brdrnil
\clvertalt \clshdrawnil \clwWidth15680\clftsWidth3 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadl0 \clpadr0 \gaph\cellx8640
\itap2\trowd \taflags0 \trgaph108\trleft-108 \trbrdrt\brdrnil \trbrdrl\brdrnil \trbrdrt\brdrnil \trbrdrr\brdrnil
\clmgf \clvertalt \clshdrawnil \clwWidth14840\clftsWidth3 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadl0 \clpadr0 \gaph\cellx4320
\clmrg \clvertalt \clshdrawnil \clwWidth14840\clftsWidth3 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadl0 \clpadr0 \gaph\cellx8640
\pard\intbl\itap2\pardeftab720
\f0\b\fs26 \cf0 Buy a 26 Inch LCD-TV Today or a 32 Inch Next Month? Modeling Purchases of High-tech Durable Products\nestcell
\pard\intbl\itap2\nestcell \lastrow\nestrow
\pard\intbl\itap1\pardeftab720
\f1\b0\fs24 \cf0 \
\pard\intbl\itap1\pardeftab720
\f0\fs26 \cf0 The technology level of new high-tech durable products, such as digital cameras and LCD-TVs, continues to go up, while prices continue to go down. Consumers may anticipate these trends. In particular, a consumer faces several options. The first is to buy the current level of technology at the current price. The second is not to buy and stick with the currently owned (old) level of technology. Hence, the consumer postpones the purchase and later on buys the same level of technology at a lower price, or better technology at the same price. We develop a new model to describe consumers\'92 decisions with respect to buying these products. Our model is built on the theory of consumer expectations of price and the well-known utility maximizing framework. Since not every consumer responds the same, we allow for observed and unobserved consumer heterogeneity. We calibrate our model on a panel of several thousand consumers. We have information on the currently owned technology and on purchases in several categories of high-tech durables. Our model provides new insights in these product markets and managerial implications.\cell \lastrow\row
\pard\pardeftab720
\f1\fs24 \cf0 \
}
1) A simple way if you are on Windows is to read it in using WordPad or Word and then save it as a plain text document.
2) Alternately, to parse it directly in R, read in the rtf file, find lines with the given pattern, pat producing g. Then replace any \\' strings with single quotes producing noq. Finally remove pat and any trailing junk. This works on the sample but you might need to revise the patterns if there are additional embedded \\ strings other than the \\' which we already handle:
Lines <- readLines("myfile.rtf")
pat <- "^\\\\f0.*\\\\cf0 "
g <- grep(pat, Lines, value = TRUE)
noq <- gsub("\\\\'", "'", g)
sub("\\\\.*", "", sub(pat, "", noq))
For the indicated file this is the output:
[1] "Buy a 26 Inch LCD-TV Today or a 32 Inch Next Month? Modeling Purchases of High-tech Durable Products"
[2] "The technology level of new high-tech durable products, such as digital cameras and LCD-TVs, continues to go up, while prices continue to go down. Consumers may anticipate these trends. In particular, a consumer faces several options. The first is to buy the current level of technology at the current price. The second is not to buy and stick with the currently owned (old) level of technology. Hence, the consumer postpones the purchase and later on buys the same level of technology at a lower price, or better technology at the same price. We develop a new model to describe consumers'92 decisions with respect to buying these products. Our model is built on the theory of consumer expectations of price and the well-known utility maximizing framework. Since not every consumer responds the same, we allow for observed and unobserved consumer heterogeneity. We calibrate our model on a panel of several thousand consumers. We have information on the currently owned technology and on purchases in several categories of high-tech durables. Our model provides new insights in these product markets and managerial implications."
Revised several times. Added Wordpad/Word solution.

Resources