MS Project - Adding multiples of the same resources to multiple concurrent tasks - project-management

I'm currently working on a project within MS Project and have most aspects covered apart from resources. I want to add multiple versions of the same resource (in this case a generic employee) to some tasks. I also have concurrent tasks which these generic employees will also be working on but I don't want this to count towards the total resource count. In short, I want to use the same resource multiple times each on 3 concurrent tasks which share resources. Is this possible in MS Project 2013?
Here's the context which will hopefully help: I'm currently working on a project to set up a conference. I have around 10 employees who are each on the same wage ($ per hour). I have 3 tasks running concurrently during the conference as follows ; Hand out brochures to patrons, Enforce rules and regulations and Be on hand at all times during the conference. I want the same 10 employees to work on all 3 of these tasks at once and to be paid only once for doing them all concurrently. Is there a way to specify this in MS Project? I've tried simply assigning the same employee resource object to the same task multiple times but it doesn't seem to like that. Should I just create 10 generic employees ('employee 1', 'employee 2' etc) and assign them to them all? If so, how then would you ensure that the employees are paid the same for doing all 3 tasks?
I hope I have provided enough clarification.
Thanks

Since these employees are interchangeable, set up ONE resource and set the Max Units to 10. Then assign as many of those resources as you want to each of the three concurrent tasks.

Related

Parallelize part of the Spring Batch flow for each item in a list

I would like to parallelize several but not all steps of my spring batch application.
My flow looks like this:
MainStep1: read customers table and create a list of customer config
MainStep2 per customer (If a flow for a single customer fails, do not abort the job):
innerStep1: retrieve all transactions of this customer from transactions table
innerStep2: generate a customer bill from these transactions
innerStep3: email the bill to the customer
MainStep3: aggregate results (which customers succeeded and which ones failed)
MainStep4: email results to the manager
What would be the best way to approach this? I am looking for general advice. I see several concepts, such as: multi-threaded steps, parallel steps, split flows etc.
For clarification, if there are 400 customers in the customers table, I do not want to spin up hundreds of threads in MainStep2.
Another approach would be to drop everything in 1 step:
Reader: read customers table
Composite processor:
processor1: retrieve all transactions of this customer
processor2: generate a customer bill from these transactions
Writer: email the bill to the customer
Step2:
Tasklet1: aggregate results (count success and failure)
Tasklet2: email results to the manager
Problem with the last approach is, there's a lot of logic going in each processor here and it might get overly complex. The goal is to have parts of the flow reusable for many jobs in the future (e.g. how a bill is created differs from a vendor to vendor but sending a bill is the same).
This is how I would approach this problem & I would use partitioning to achieve desired goal - provided you don't partition for each customer but a bulk of customers. Secondly, I would design it as a two step job to achieve better results in case of failures & reruns.
1.First I would try to group customers with some other attributes in addition to CUSTOMER_ID & would try to achieve a grouping of max 10, 50 or 100 groups.
So <CUSTOMER_ID,CUSTOMER_ATTR1, CUSTOMER_ATTR2, ...> will be your partitioning criteria.
So what I am saying is that you achieve parallelism at step level for a group of customers & not for each customer ( since that is going to be very time consuming as you would be setting up one partitioned step for each customer ).
For better performance, grouping needs to be done wisely keeping in mind a better distribution over all steps.
2.Your concern - I do not want to spin up hundreds of threads is valid & you first limit that concern by point#1 - by fixing number of max partitions irrespective of how many customers you got.
Secondly, setting up of partitioned steps & actually starting a partitioned step are distinct in Spring batch & that is achieved by using an async task executor & setting its concurrency limit.
SimpleAsyncTaskExecutor.setConcurrencyLimit
So at any point of time, you will have max these many steps / threads running in parallel.
You need to set your custom defined async task executor to partitioned step definition / configuration.
3.Within step # 1 transaction ( points 1 & 2 ) , keep marking customers that have successfully been processed as PROCESSED & read DB again for these processed records to prepare the reports that you need to send.

How to limit the use of a certain CPU to a certain group of users?

I'm using Debian.
In bash scripting I implemented a script that adds different users to the system obtaining data from file.
This data include a primary group and the number of CPU that this group can use. Data from users also can include several secondary groups and the CPU number each group is limited to.
I only need to apply the CPU limitation of the primary group, but I need to consider the limitation of secondary groups if the user changes its group to another.
In example: user John and Laura are in primary group RegularPeople which can only use CPU 2 and are also in secondary group VIP which can use CPU 0. This means that every process created by Laura and John should be executed by CPU 2. But, if John changes its primary group to VIPeople, processes created by John should be executing in CPU 0.
I know that I can do this with the utility cgroups, but could someone explain how to do that? I only know how to limit the CPU of a certain process by its ID, but this is out of my reach.
I've been programming in bash linux for several years, so writing code is not a problem, but I don't have any idea on how to solve this.
Thank you everyone for your help!

How to calculate concurrent users in Jmeter

I have created a test script with the below scenarios and having thread group count as 100 and ran it for 10 minutes.
Employee Creation took 1 minute during the test script design
Update Employee took 2 minutes during the test script design
In the above mentioned scenario how many concurrent users will be on the system for 10 minutes?
I don't think there is a formula to predict or calculate concurrency as we don't know the number of samplers, response time, etc. so go for one of the following options:
Generate HTML Reporting Dashboard and look into Active Threads Over Time chart - it will show you the actual concurrency.
If you don't want or can not generate the dashboard you can achieve the same using Active Threads Over Time Listener which can be installed using JMeter Plugins Manager as a part of 3 Basic Graphs bundle.

Project Server Sharing resources across departments

Microsoft Project Server 2013, I am newbie , I had a system under MSProfessional to see capacity when I had just parts of people
We have a number of staff that work % of time in multiple departments, is there a way of seeing the total capacity of a department e.g. Software Department when we have staff say 50% on SW and 50% on help desk
Also this applies to role so we expect staff to have multiple roles so when working on Help desk they have a different role to Developer.
In Microsoft Project there are many different ways to accomplish this. I know, this is a "programming" site and I have used it for query help in the past but what you are asking for is built into Project already without having to go into development mode. One way you can do this is with one or two custom fields. Or, you could use the RBS and the units on each Resource. I know that the goal is to answer the question but this is one of those questions that is pretty wide open because there are two or three good solutions but each are based on a different business scenario. So, in the spirit of giving a path to do this I would suggest that you add a custom field for each resource with the department classification and then also put in the Resource's capacity and then you can run as many slices of this data as you want from the Resource Center. That will show you availability versus capacity and workload. You also mention roles, you may use a skill set field for that and use that as another method of slicing this data. Again, many choices to get that data directly from the system....
In the end I was able to perform this with custom fields on the resources, able to work with % split roles the amount of capacity by role +ve and negative to give full capacity planning. Managers able to see forecast resource capacity and down to an individual see how they were being utilised.
This was not real time, but an over night process that collated the data into set of Excel pivots to give graphs on trend etc..
Worked a treat as it was even able to model based on historic for different types and classes of projects . Basically gave a detailed portfolio management facility, so even worked when projects had no detailed plans. This was based on either forecast and actual. Also showed issues with the profile of projects e.g. optimistic testing profile, showed resource bottle knecks and where high valued staff doing low valued tasks. Even identifying quality issues where high % of rework on user stories (no unit tests normally ) .

In Visual Source Safe is there a limit to how many labels you can apply?

We have a collection of 25 or so projects in a source safe database and we want to apply daily labels to each of them. Is there a limit to the number of labels that can be applied?
We've been using one repository for 5 years so far. It stores numerous projects and something like ten daily builds run every day on that repository. Every daily build creates a new label on some project every time it runs. So far we haven't seen any problems with possible labels exhaustion.
No, there is no practical limit. We once did what you ask about - daily builds applied a label with the build number, this went on for several years.

Resources