Resource Planning
Chapter Eighteen
Syllabus topic Module 1, "Software Development Life Cycle (SDLC) Planning: ... Resource planning".
Pages 104 to 111 of 499
In one line
Resource planning works out everything the project needs besides the plan itself: people's hours and skills, machines, software and services, money, and other people's time; when each is needed; and who provides it. It shares out the work so that nobody is overloaded, and it writes down who is responsible for what.
In the wording to use when asked: resource planning identifies the resources each activity requires, human, equipment, software, facilities and funds, estimates the quantity of each and when it is needed, assigns resources to activities against their availability, and resolves over-allocation by resource levelling or smoothing, so that the schedule can actually be carried out; responsibilities are recorded in a responsibility assignment matrix such as RACI.
What counts as a resource
| Kind | In a mini project | The question to ask |
|---|---|---|
| People | the team's hours and skills | who does it, for how many hours, in which weeks? |
| Equipment | laptops, a machine for the server, phones and tablets to test on | does it exist, may we use it, and from when? |
| Software and services | languages, tools, a code host, hosting | is it free, and does it need an account or a licence? |
| Money | anything that must be bought | who pays, and has anyone agreed to? |
| Other people's time | the guide, the client, the users, whoever runs the machines | when do we need them, and have we asked? |
| Information | data the system needs before it can start, such as a menu and its prices | who provides it, and by when? |
The last two are the ones students forget. A canteen owner's hour is scarcer than a student's, and a design review cannot happen on a day the guide is away. Plan them like any other resource: named, dated, and asked for early.
People: capacity, skills and allocation
Capacity is how many hours each person has. For this paper MU sets it: 2 credits, which is 60 hours for each student, 30 in each module. Over a 15-week semester that is 4 hours a week on average. Project work comes in waves, though, so a team should also agree how much a single week may hold. The worked team's rule was that nobody works more than 10 hours on this paper in any week, because every member has other papers with deadlines of their own.
Skills decide who can do what. The skills matrix of Chapter 6 rated each member on each technology, and the resource plan uses it twice: to give work to people who can do it, and to make sure that no skill the project cannot do without lives in one head only. The number of people who would have to be unavailable before a piece of work stops is often called its bus factor. For anything the demonstration depends on, it should be at least two.
Resource Planning
Allocation shares each work package's hours among the people who will do them. It passes two checks or it is wrong: every package's hours add up to its estimate in the WBS, and every person's hours add up to their capacity. If either fails, the plan is promising work that nobody has time for.
Checking the load, week by week
An allocation can give everyone exactly 30 hours and still be impossible, if 20 of someone's hours fall in one week. The load check finds this:
- Give every work package the dates of its bar in the Gantt chart.
- Spread each person's hours on it evenly over those working days, and put each meeting on its own day.
- Add up each person's hours, week by week.
- Mark every week in which anyone is over the limit. That is over-allocation.
There are three ways to remove an overload:
- Move the work within its float. A task with float can start later without delaying the project (Chapter 17). Moving it into a quieter week is resource smoothing, and the end date does not change.
- Give the work to someone else who has spare hours that week, and give that person hours back in a week when the overloaded member is free, so both still total their capacity.
- Delay the work until the person is free, even beyond its float. This is resource levelling, and when the work is on the critical path the end date moves with it.
Strictly, smoothing keeps the end date and levelling may not; in everyday use many people say "levelling" for both.
Responsibility: the RACI matrix
A responsibility assignment matrix lists the work down the side, the people across the top, and in each cell what that person's part is. The best-known form uses four letters, RACI:
- R, Responsible: does the work. A row may have several.
- A, Accountable: answerable for the work being done and done well, and the one who says it is finished. Exactly one per row, and in a student project this is the owner of Chapter 16.
- C, Consulted: asked for input before or during the work. The conversation goes both ways.
- I, Informed: told of progress or of the result. One way.
The single A is the point of the matrix. A row with two A's has nobody accountable, because each can say it was the other's; a row with none has the same problem more honestly. The A is not always the person who does most of the work, as the worked project shows.
Resource Planning
The worked project: the resource plan
Hours, Module 1
Every figure is person-hours. The first column is the WBS number from Chapter 16, whose owners are the A's in the matrix further down.
| Number | Work package | Aditi | Farhan | Sneha | Rohan | Hours |
|---|---|---|---|---|---|---|
| 1.1 | Problem choice, proposal | 4 | 1 | 2 | 1 | 8 |
| 1.2 | Plan | 4 | 2 | - | 2 | 8 |
| 1.3 | Reviews, stand-ups | 3 | 3 | 3 | 3 | 12 |
| 2.1 | Observation, survey | 4 | 1 | 4 | 1 | 10 |
| 2.2 | Interviews | 5 | - | 3 | - | 8 |
| 2.3 | SRS | 8 | 4 | 4 | 4 | 20 |
| 3.1 | UML set | - | 7 | 4 | 7 | 18 |
| 3.2 | Database schema | - | 6 | - | 4 | 10 |
| 3.3 | API specification | - | 2 | 2 | 4 | 8 |
| 3.4 | Wireframes | - | - | 6 | - | 6 |
| 3.5 | Architecture document | 2 | 4 | 2 | 4 | 12 |
| Total | 30 | 30 | 30 | 30 | 120 |
Two rows are worth a second look. Everyone has hours on the SRS although Aditi owns it: each member wrote the requirements for the part they would build, and Aditi wrote the rest and edited the whole. And Farhan owns the API specification, because the backend must honour it, but Rohan wrote half of it, because he would test against it.
Hours, Module 2
| Number | Work package | Aditi | Farhan | Sneha | Rohan | Hours |
|---|---|---|---|---|---|---|
| 4.1 | Frontend pages | 6 | - | 12 | - | 18 |
| 4.2 | Backend routes, services | 4 | 8 | - | 4 | 16 |
| 4.3 | Database integration | - | 8 | - | 2 | 10 |
| 4.4 | Authentication, validation | 2 | 3 | 3 | 4 | 12 |
| 4.5 | Error handling | - | 2 | 1 | - | 3 |
| 4.6 | Reviews, stand-ups | 3 | 3 | 3 | 3 | 12 |
| 5.1 | Unit tests | 2 | - | 1 | 5 | 8 |
| 5.2 | Integration tests | 3 | - | 2 | - | 5 |
| 5.3 | System, acceptance tests | 2 | - | 3 | - | 5 |
| 5.4 | Load, security tests | - | 2 | - | 2 | 4 |
| 6.1 | Local hosting | - | - | - | 2 | 2 |
| 6.2 | Linux server | - | 2 | - | 2 | 4 |
| 6.3 | APK | - | - | - | 4 | 4 |
| 6.4 | GitHub repository | 2 | - | - | - | 2 |
| 7.1 | Technical report | 5 | 1 | 1 | 1 | 8 |
| 7.2 | User manual | - | - | 3 | - | 3 |
| 7.3 | Presentation | 1 | 1 | 1 | 1 | 4 |
| Total | 30 | 30 | 30 | 30 | 120 |
Here too the owner is not always the main hand. Rohan is accountable for the integration tests, but Aditi and Sneha run them, in a week when he is deploying. And Rohan's two hours on the server are a practice deployment in the week of 14 September; Farhan's two are the real deployment in October, done from Rohan's notes.
The load check, and what it found
The team's first version of Module 1 put all of the plan, 1.2, in the proposal's week, because the plan goes into the proposal. The check showed the result at once: 12.7 hours for Aditi in the week of 17 August, when her share of the proposal, the whole plan and her share of the SRS all fell together.
Resource Planning
The fix used two of the three tools. The skeleton of the WBS and the schedule needs only MU's list of deliverables, known from the first day, so Aditi drafted it in the week of 3 August, while the team was observing the canteen: smoothing, since the plan has no bar of its own and the end date did not move. The estimates need the requirements, so they stayed in the proposal's week and went to Farhan and Rohan, who would build and test what they were estimating (Chapter 13). To keep everyone at 30 hours, Aditi took over Farhan's hour at the interviews and one of Rohan's hours of observation.
After the change, week by week:
| Week | Starting | Aditi | Farhan | Sneha | Rohan | Team |
|---|---|---|---|---|---|---|
| 1 | 27 Jul | 1.25 | 1.25 | 1.25 | 1.25 | 5.00 |
| 2 | 3 Aug | 7.25 | 1.25 | 4.25 | 1.25 | 14.00 |
| 3 | 10 Aug | 7.05 | 1.15 | 3.95 | 1.15 | 13.30 |
| 4 | 17 Aug | 8.70 | 4.60 | 3.80 | 4.60 | 21.70 |
| 5 | 24 Aug | 2.25 | 5.45 | 9.65 | 5.45 | 22.80 |
| 6 | 31 Aug | 0.25 | 9.05 | 3.35 | 9.05 | 21.70 |
| 7 | 7 Sep | 3.25 | 7.25 | 3.75 | 7.25 | 21.50 |
| Total | 30.00 | 30.00 | 30.00 | 30.00 | 120.00 |
Week 7 includes the design review on Friday 11 September; the build that starts the same day is counted with Module 2. Nobody passes 10 hours in any week. The heaviest is Sneha's week of 24 August, 9.65 hours, when the end of the SRS, her part of the UML set and all six hours of wireframes fall together.
A load check shows spare time as plainly as overload. Aditi's week of 31 August holds only the stand-up. If the UML set, which is on the critical path, ran late, she is the one with time to help: Chapter 17's crashing, planned in advance.
The same check on Module 2's first version found two overloads. In the week of 14 September Farhan had 11.75 hours, and more than 10 again the week after, because the backend and the database were both his, and both are on the critical path, so nothing could wait. In the week of 5 October Rohan had nearly 15 hours: deployment, the APK and the integration tests all fell on him at once.
Deployment has four days of float, and the first idea was to use them. The check showed why that fails: four days later is the week of Rohan's load and security testing, and his overload simply moved there, to more than 14 hours in the week of 12 October. Float helps only when the week it moves work into is quiet.
Resource Planning
So the team reassigned. Aditi and Rohan took part of the backend and the database in the weeks they were built, and Farhan took hours later, in authentication and validation, load testing and the server, where knowing the backend helps anyway. Aditi and Sneha ran the integration tests. And two of the server hours moved to the week of 14 September, for the practice deployment that Chapter 6 set as the answer to its first risk: nobody on the team had deployed Node.js on a Linux server. After the changes no week in Module 2 is over 8.25 hours, the heaviest being Farhan's week of 14 September.
Responsibility, Module 1
Every row has one A, and it is the owner Chapter 16 named. A dash means not involved.
| Work package | Aditi | Farhan | Sneha | Rohan | Guide | Canteen owner |
|---|---|---|---|---|---|---|
| 1.1 Problem choice, proposal | A, R | R | R | R | C | C |
| 1.2 Plan | A, R | R | C | R | I | - |
| 2.1 Observation, survey | R | R | A, R | R | I | C |
| 2.2 Interviews | A, R | I | R | I | I | C |
| 2.3 SRS | A, R | R | R | R | C | C |
| 3.1 UML set | C | A, R | R | R | C | - |
| 3.2 Database schema | I | A, R | I | R | I | - |
| 3.3 API specification | I | A, R | R | R | I | - |
| 3.4 Wireframes | C | C | A, R | I | I | C |
| 3.5 Architecture document | R | A, R | R | R | C | - |
The guide is consulted on the documents MU assesses and informed of the rest. The canteen owner is consulted wherever the system's behaviour or her canteen's facts are decided, and on the wireframes, because she and the counter staff are the ones who will use the screens during the rush. The meetings, 1.3, are left out: everyone attends them.
Equipment, software, services and money
| Resource | What the worked team used | Cost to the team | First needed |
|---|---|---|---|
| Development machines | the members' own laptops: three on Windows 11, one a MacBook (Chapter 6) | nothing | week 1 |
| A machine for the server | an old desktop in the college lab, reinstalled with Ubuntu 24.04 by the IT lab in-charge | nothing | week 8, for the practice deployment |
| A device at the counter | the owner's Android phone for the trial; a tablet at Rs 9,500, which Chapter 7 costs against the canteen's own savings | nothing | the trial |
| Phones to test the APK | two of the members' own Android phones | nothing | week 11 |
| Software | Node.js, MySQL Community Server, Visual Studio Code, Git, PlantUML and Android Studio, all free | nothing | before each is first used |
| Services | a free GitHub account and one repository | nothing | the first commit (Chapter 39) |
| Network | the college Wi-Fi, which reaches the whole canteen (Chapter 6) | nothing | the trial |
| Money | none: constraint C-2 (Chapter 14) | nothing | - |
Resource Planning
A plan in which every cost is "nothing" is still a plan: each line says where the resource comes from and when, and the two lines that depend on other people, the lab machine and the owner's phone, have been asked for.
People outside the team
| Who | What the team needs from them | When |
|---|---|---|
| Prof. S. Iyer, the guide | the proposal review, the design review and the code review; a look at each increment | 21 Aug, 11 Sep, 1 Oct; 24 Sep and 9 Oct |
| Lata Pawar, the canteen owner | an interview; the menu and its prices; the two increment reviews | 10 Aug; before the build; 24 Sep and 9 Oct |
| Ganesh More, at the counter | an interview and two lunch breaks of observation; the increment reviews | 11 Aug; 24 Sep and 9 Oct |
| The head cook | an interview in the kitchen; the second increment review | 12 Aug; 9 Oct |
| Six students of different years | a group interview | 13 Aug |
| The IT lab in-charge | an interview; the lab desktop reinstalled, and kept on during college hours | 13 Aug; before week 8 |
The interview dates are the ones Chapter 9 recorded, and the increment reviews are Chapter 15's. The guide's dates are the guide's to set; every other date was asked for as soon as the team knew it would need it.
Do this for your project
- List your resources under the six kinds. For each, write where it comes from and the week it is first needed.
- Write each person's capacity: MU's 30 hours a module, and your team's own weekly limit.
- Share every work package's hours among people. Check both sums: each package equals its WBS estimate, and each person equals their capacity.
- Do the load check: spread the hours over the Gantt bars, add them up by week, and mark every overload.
- Remove each overload by moving work within its float, reassigning it, or delaying it, and check again. A move can shift an overload rather than remove it.
- Give every skill the demonstration depends on a second person.
- Write the RACI matrix with exactly one A in each row.
- Book other people's time now: the guide's review dates, the client's reviews, the machine.
- Put the resource plan in your proposal (Chapter 33), and repeat the load check whenever the schedule changes.
Mistakes that cost marks
Hours that add up but do not fit. Thirty hours each is not enough; the weeks have to fit as well.
"All" in every row. An allocation in which everybody does everything hides who is short of time and who is accountable.
One person for a critical skill. If only one member can deploy, a fever in the deployment week ends the demonstration.
Resource Planning
Other people's time assumed. The guide's calendar and the client's lunch break are resources. Ask for them early.
Meetings left out. Fifteen minutes a week comes to between an hour and a half and two hours a module for each member, and that time has to come from somewhere.
Float used without looking. Moving a task can move an overload instead of removing it.
Quick revision
- Resources: people (hours and skills), equipment, software and services, money, other people's time, information.
- Capacity for this paper: 60 hours each, 30 per module, about 4 a week on average; agree a weekly limit as well.
- Allocation passes two checks: each package equals its estimate, and each person equals their capacity.
- Load check: spread the hours over the Gantt bars and add them by week; over-allocation is any week over the limit.
- Fixes: smoothing (within float, end date kept), reassignment, levelling (may move the end date).
- RACI: Responsible does it; Accountable, exactly one per row, answers for it; Consulted gives input; Informed is told.
- Bus factor: every critical skill should live in at least two heads.
Questions you must be able to answer
1. What does resource planning cover in a mini project? The people's hours and skills, the equipment, software and services, any money, other people's time and the information the system needs; when each is needed and who provides it; an allocation of the work that overloads nobody; and a record of who is responsible for what, usually a RACI matrix.
2. What is the difference between resource smoothing and resource levelling? Smoothing moves work only within its float, so resource peaks are reduced and the end date does not change. Levelling moves work until the resource is available, even beyond its float, so if the work is on the critical path the end date moves too.
3. What do R, A, C and I stand for, and why must each row have exactly one A? Responsible, who does the work; Accountable, who answers for it and says when it is finished; Consulted, who is asked for input; and Informed, who is told of the result. With two A's each can blame the other, and with none nobody answers for the work, so exactly one is needed.
4. The worked team's first allocation gave every member 30 hours in Module 1. What was still wrong with it? The hours were in the wrong weeks. With the whole plan placed in the proposal's week, Aditi had 12.7 hours in the week of 17 August, over the team's limit of 10. Drafting the plan's skeleton in the week of 3 August and giving the estimates to Farhan and Rohan brought her heaviest week down to 8.7 hours.
Resource Planning
5. Why did using the deployment's float not remove Rohan's overload? Because the four days of float moved the deployment into the week of his load and security testing, where his total came to more than 14 hours instead. Float removes an overload only when the week the work moves into has room for it; otherwise the work must go to someone else.
6. What is a bus factor, and how did the worked team deal with its weakest skill? The number of people who would have to be unavailable before a piece of work stops. Nobody on the team had deployed Node.js on a Linux server, so Rohan made a practice deployment in the week of 14 September and Farhan made the real one in October from Rohan's notes, leaving two members who had done it.
The rest of this subject
These notes are cut from the University's printed syllabus. Open the syllabus itself for the same subject.