Assessing project plan effectiveness: reasons for changes

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

Assessing project plan effectiveness: reasons for changes

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. A client adds a new login feature halfway through the project, so tasks are added to the Gantt chart. Which reason for change is this?
A Scope creep
B Poor estimates
2. A task planned for 2 days took 6 days because the developer underestimated the work. Which reason for change is this?
A Personnel change
B Poor estimates
3. A team member leaves mid-project and tasks must be reassigned. Which reason for change is this?
A Personnel change
B Technical issue
4. A third-party library stops working with the latest Python version and the schedule is pushed back. Which reason for change is this?
A Scope creep
B Technical issue
5. Which of these is a planning cause of change rather than an external cause?
A Poor estimates of task durations
B A key developer becoming ill

Match the Pairs

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

Left columnRight column
1Reason: scope creep AA task took longer than planned because the original time estimate was too low, so the schedule was adjusted.
2Reason: poor estimate BThe client asked for extra features after the plan was approved, so tasks were added and the plan changed.
3An external cause of change: a team member leaves part way through the project and tasks must be reassigned. CPoor estimate: 5 of 7 changes
4A pattern of reasons: most logged changes were caused by poor estimates, which shows the original plan was not very effective. DTechnical issues are an external cause, not a planning fault. Judging plan effectiveness needs both external and planning causes considered.
5Change 4: Reason: the plan was changed EReason: personnel change
6Assessment: 'All changes were technical issues, so the plan was badly made.' FThe reason does not classify the cause. It only restates that a change happened. It should state a category such as technical issues.

Definitions

Reason for change

Fill in the Blanks

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

1.
reasons = ["scope creep", "technical"] print(___(reasons))
2.
reason = "poor estimates" if reason __ "poor estimates": print("Planning cause")
3.
counts = {"scope creep": 3, "personnel": 1} print(___(counts, key=counts.get))
4.
counts = {"scope creep": 2} counts["scope creep"] __ 1
5.
external = ["personnel", "technical"] reason = "personnel" print(reason __ external)

Spot the Error

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

Question 1
A reasons = ["scope", "tech"]
B total = length(reasons)
C print("Total changes:", total)
Question 2
A external = ["staff", "tech"]
B reason == "poor estimate"
C if reason in external:
D print("External cause")
E else:
F print("Planning cause")
Question 3
A tally = {"scope": 0, "est": 0}
B tally[scope] += 1
C tally["est"] += 1
D print(tally)
Question 4
A total = "8"
B scope = 4
C share = scope / total * 100
D print(f"Scope: {share}%")
Question 5
A reasons = ["scope", "tech"]
B for r in reasons:
C if r == "scope":
D print("New request"
E else:
F print("Other cause")

Answer Key

Assessing project plan effectiveness: reasons for changes
Section A: Quick Questions
Q1
A — Scope creep
Q2
B — Poor estimates
Q3
A — Personnel change
Q4
B — Technical issue
Q5
A — Poor estimates of task durations
Section B: Match the Pairs
Q1
Reason: scope creep → The client asked for extra features after the plan was approved, so tasks were added and the plan changed.
Q2
Reason: poor estimate → A task took longer than planned because the original time estimate was too low, so the schedule was adjusted.
Q3
An external cause of change: a team member leaves part way through the project and tasks must be reassigned. → Reason: personnel change
Q4
A pattern of reasons: most logged changes were caused by poor estimates, which shows the original plan was not very effective. → Poor estimate: 5 of 7 changes
Q5
Change 4: Reason: the plan was changed → The reason does not classify the cause. It only restates that a change happened. It should state a category such as technical issues.
Q6
Assessment: 'All changes were technical issues, so the plan was badly made.' → Technical issues are an external cause, not a planning fault. Judging plan effectiveness needs both external and planning causes considered.
Section C: Definitions
Q1
Reason for change — The cause of a plan change, classed as scope creep, personnel, technical issues or poor estimates. Patterns in these causes show how effective the original plan was.
Section D: Fill in the Blanks
Q1
reasons = ["scope creep", "technical"] print(len(reasons))
Q2
reason = "poor estimates" if reason == "poor estimates": print("Planning cause")
Q3
counts = {"scope creep": 3, "personnel": 1} print(max(counts, key=counts.get))
Q4
counts = {"scope creep": 2} counts["scope creep"] += 1
Q5
external = ["personnel", "technical"] reason = "personnel" print(reason in external)
Section E: Spot the Error
Q1
B — Python has no length() function. Use len(reasons) to count how many reasons for change were logged.
Q2
B — == compares values, so reason is never created and a NameError follows. Assignment needs a single =.
Q3
B — The dictionary key must be the string "scope" in quotes. Without quotes Python looks for a variable called scope and raises a NameError.
Q4
A — total is stored as a string, so dividing by it causes a TypeError. It should be the number 8 so the percentage can be calculated.
Q5
D — The closing bracket is missing from the print() call, which is a syntax error. It should be print("New request").