Factor affecting project plans: personnel changes

Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.

Factor affecting project plans: personnel changes

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. A key developer leaves the team halfway through the project. Which is a personnel change affecting the project plan?
A Yes, a team member leaving is a personnel change
B No, only changes to the client's requirements affect plans
2. Which statement about a team member's absence is correct?
A The project plan stays exactly the same because tasks do not depend on people
B Their tasks may need to be reassigned, which can delay the timeline
3. The only person who knows how to write the database code leaves. What is the main risk?
A Loss of skills that the team needs to finish tasks
B The programming language will stop working
4. Which action is an example of reassigning tasks after a personnel change?
A Giving the departed member's testing task to another team member
B Adding extra features to the software without telling anyone
5. A team member is sick for two weeks. What should be updated in the project plan?
A Nothing, the plan should never be changed
B Task allocation and the dates on the Gantt chart

Match the Pairs

Draw a line connecting each item on the left to its match on the right.

Left columnRight column
1personnel changes Aif skilled_member == None: plan_training()
2reassign(task, new_member) BHer tasks still belong to someone who is no longer there, so the work stalls and the timeline slips. Her tasks must be reassigned.
3Loss of skills: when the only person who can do a task leaves, the team may need training or a replacement CA team member leaves or is absent, disrupting task allocation and the timeline of the project plan
4Reassigning tasks: a task is given to a different team member after someone leaves or is absent Dtask_owner = "Sam"
5Plan: Mia leaves the team. Keep her tasks assigned to Mia and change nothing else. EMoves a task from the absent or departed team member to another person so the work can continue
6Plan: Jo is absent for two weeks. No effect on the timeline, because the team size is the same. FThis ignores the loss of Jo's skills and work time. The absence can delay tasks, so the plan and its timeline need adjusting.

Definitions

personnel changes

Fill in the Blanks

Complete each line of code by filling in the missing parts.

1.
tasks = {"UI": "Mia", "Database": "Leo"} _____["Database"] = "Zoe"
2.
for task in tasks: if tasks[task] __ "Leo": tasks[task] = "Zoe"
3.
skills = {"Mia": {"UI"}, "Leo": {"SQL"}} skills.___("Leo") print(skills)
4.
team = ["Mia", "Zoe"] if "Leo" ______ team: print("Reassign Leo's tasks")
5.
duration = 10 delay = 3 duration __ delay

Spot the Error

Shade in the letter of the line that contains an error.

Question 1
A skills = {"Sam": "UI"}
B absent = "Sam"
C lost = skills.pop("absent")
D print("Lost skill:", lost)
Question 2
A owners = {"code": "Sam"}
B leaving = "Sam"
C for t in owners
D if owners[t] == leaving:
E owners[t] = "Mia"
Question 3
A team = ["Ava", "Sam", "Mia"
B team.remove("Sam")
C print(len(team), "left")
Question 4
A have = {"Ava", "testing"}
B need = "database"
C if need not in have.values():
D print("Skill gap!")
Question 5
A tasks = 6
B team = 3
C team = team - 1
D per_person = tasks * team
E print("Each does", per_person)

Answer Key

Factor affecting project plans: personnel changes
Section A: Quick Questions
Q1
A — Yes, a team member leaving is a personnel change
Q2
B — Their tasks may need to be reassigned, which can delay the timeline
Q3
A — Loss of skills that the team needs to finish tasks
Q4
A — Giving the departed member's testing task to another team member
Q5
B — Task allocation and the dates on the Gantt chart
Section B: Match the Pairs
Q1
personnel changes → A team member leaves or is absent, disrupting task allocation and the timeline of the project plan
Q2
reassign(task, new_member) → Moves a task from the absent or departed team member to another person so the work can continue
Q3
Loss of skills: when the only person who can do a task leaves, the team may need training or a replacement → if skilled_member == None: plan_training()
Q4
Reassigning tasks: a task is given to a different team member after someone leaves or is absent → task_owner = "Sam"
Q5
Plan: Mia leaves the team. Keep her tasks assigned to Mia and change nothing else. → Her tasks still belong to someone who is no longer there, so the work stalls and the timeline slips. Her tasks must be reassigned.
Q6
Plan: Jo is absent for two weeks. No effect on the timeline, because the team size is the same. → This ignores the loss of Jo's skills and work time. The absence can delay tasks, so the plan and its timeline need adjusting.
Section C: Definitions
Q1
personnel changes — When a team member leaves or is absent, their skills are lost and tasks must be reassigned, which can disrupt task allocation and delay the timeline of a project plan.
Section D: Fill in the Blanks
Q1
tasks = {"UI": "Mia", "Database": "Leo"} tasks["Database"] = "Zoe"
Q2
for task in tasks: if tasks[task] == "Leo": tasks[task] = "Zoe"
Q3
skills = {"Mia": {"UI"}, "Leo": {"SQL"}} skills.pop("Leo") print(skills)
Q4
team = ["Mia", "Zoe"] if "Leo" not in team: print("Reassign Leo's tasks")
Q5
duration = 10 delay = 3 duration += delay
Section E: Spot the Error
Q1
C — The key is the variable absent, which holds "Sam". Putting it in quotes looks for a member named "absent" and causes a KeyError. It should be skills.pop(absent) so the leaving member's skill is removed.
Q2
C — A for loop header must end with a colon. It should be for t in owners: so the loop can find tasks owned by the leaving member and reassign them.
Q3
A — The list is missing its closing square bracket, which is a syntax error. It should end with ] so the team list is created before Sam is removed.
Q4
A — A comma instead of a colon makes this a set, not a dictionary, so have.values() fails later. It should be {"Ava": "testing"} to link each member to their skill and spot a loss of skills.
Q5
D — Tasks per person is found by dividing tasks by team members, not multiplying. It should be tasks / team, which shows the workload rising after a member leaves.