SEN2022 · Week 3 · Project Management, Scope Definition

Project management and scope: function points, timeboxing, WBS

Estimating project size with function points, converting to effort and schedule, scope creep and timeboxing. A step-by-step function point calculation often appears on the midterm.

project managementproject managertrade-offs (size, time, cost)function pointTUFP (total unadjusted function points)adjusted processing complexity (APC)person-monthindustry standards estimationscope creeptimeboxingwork breakdown structure (WBS)work planstaffing planrisk assessment

Once feasibility in the planning phase says “let’s do it”, the project manager steps in. Their question: “How big is this job, how many people, how many months?” The exam heart of this week is the function point calculation: count the components, weight them, correct for complexity, and convert to lines of code, effort and schedule. Alongside come the definitions of scope creep, timeboxing and WBS.

Golden rules:

  1. The size, time, cost triangle. If one changes, at least one other changes.
  2. Function points in four steps: TUFP → APC → AFP → effort and schedule.
  3. Memorize the weight table, or if it is given on the exam, use the right row.
  4. Scope changes in writing. A change request comes as a document, and its impact is calculated.

What is project management?

Project management is the work of planning, organizing, monitoring and controlling in order to deliver the system at the desired time, budget and quality. The project manager’s four main jobs:

  1. Estimating project size (size, effort, time).
  2. Creating the work plan (tasks, durations, dependencies).
  3. Making the staffing plan (how many people, which roles, reporting structure, motivation).
  4. Coordinating and controlling the project (CASE tools, standards, documentation, risk management, scope management).

These four jobs are done by balancing size, time and cost. If the boss says “we want the system in 3 months”, the project manager has to propose either narrowing the scope or enlarging the budget.

Estimation method 1: industry standards

The simplest method: look at what percentage of the total effort the phases took in similar projects. A commonly used ratio table:

PhaseShare
Planning15%
Analysis20%
Design35%
Implementation30%

When planning is finished you know the actual planning effort, and you estimate the rest by the ratios. If planning took 3 person-months, the total is 3 / 0.15 = 20 person-months: analysis 4, design 7, implementation 6. A quick but rough method.

Estimation method 2: function points

Function points measure the size of the system from the functions the user sees, not from lines of code. It is independent of the programming language.

Five components

ComponentAbbreviationMeaningExample (food ordering app)
External inputEIA screen/form that enters data into the systemPlace an order, add an address
External outputEOComputed output, a reportDaily sales report, invoice
External inquiryEQA query that retrieves data without computationQuery order status
Internal logical fileILFA group of data the system maintains itselfCustomer, Order, Menu tables
External interface fileEIFData maintained by another system and readThe payment provider’s transaction record

EI, EO, EQ are transactions; ILF and EIF are files (data groups).

PITFALL · EO versus EQ. Both show data to the user. The difference: an EO contains a calculation (total, average, report). An EQ only retrieves stored data. “Show order status” is an EQ, “monthly revenue report” is an EO.

Weights

Each component is counted at low, average or high complexity:

ComponentLowAverageHigh
EI346
EO457
EQ346
ILF71015
EIF5710

Steps

  1. TUFP (total unadjusted function points): in each cell count × weight, add them all up.
  2. PC (processing complexity): rate the 14 general system characteristics (data communications, distributed processing, performance, online data entry, ease of use, reusability, etc.) from 0 to 5 and add them. PC is between 0 and 70.
  3. APC (adjusted processing complexity): APC=0.65+0.01×PCAPC = 0.65 + 0.01 \times PC.
  4. AFP (adjusted function points): AFP=TUFP×APCAFP = TUFP \times APC.
  5. LOC: AFP × the language-specific “lines per function point”.
  6. Effort (person-months): effort=1.4×KLOC\text{effort} = 1.4 \times \text{KLOC} (KLOC = thousand lines).
  7. Schedule (months): schedule=3.0×effort1/3\text{schedule} = 3.0 \times \text{effort}^{1/3}.

Worked example: CampusEats

An app for ordering from cafeterias inside the university. The analyst produced these counts:

ComponentLowAvgHigh
EI642
EO321
EQ420
ILF231
EIF110

Step 1: TUFP.

EI : 6x3 + 4x4 + 2x6   = 18+16+12 = 46
EO : 3x4 + 2x5 + 1x7   = 12+10+7  = 29
EQ : 4x3 + 2x4 + 0x6   = 12+8+0   = 20
ILF: 2x7 + 3x10 + 1x15 = 14+30+15 = 59
EIF: 1x5 + 1x7 + 0x10  = 5+7+0    = 12
                          TUFP    = 166

Steps 2-3: APC. The scores of the 14 factors were added: PC = 32.

APC = 0.65 + 0.01 x 32 = 0.97

Step 4: AFP.

AFP = 166 x 0.97 = 161.02

Step 5: LOC. The app will be written in Java, and the team measured 60 lines per function point in past projects:

LOC = 161.02 x 60 = 9,661 lines  (9.661 KLOC)

Step 6: Effort.

effort = 1.4 x 9.661 = 13.53 person-months

Step 7: Schedule and team.

schedule = 3.0 x 13.53^(1/3) = 3.0 x 2.383 = 7.15 months
team ≈ 13.53 / 7.15 = 1.89 → about 2 people

Interpretation: a team of 2 would finish this app in about 7 months. If management wants 4 months, the project manager proposes narrowing the scope (for example leaving the EIF, that is the external payment integration, to a later version) or timeboxing. Just adding people does not shorten the time proportionally.

TIP · cube root. On a calculator, type x ^ (1/3) for x1/3x^{1/3}. If you forget the parentheses, x^1 / 3 is computed.

Work plan and WBS

The work plan is a dynamic schedule that shows all the tasks of the project, their durations, owners and dependencies. Its basis is the work breakdown structure (WBS): dividing the project hierarchically into small tasks.

1 CampusEats
  1.1 Planning
      1.1.1 System request
      1.1.2 Feasibility
  1.2 Analysis
      1.2.1 Cafeteria interviews
      1.2.2 Use case model
  1.3 Design
      1.3.1 Database design
      1.3.2 Interface sketches
  1.4 Implementation
      1.4.1 Coding
      1.4.2 Testing

A WBS can be built in two ways: by SDLC phases (as above) or by products (order module, payment module, reporting module). For each lowest-level task: duration estimate, responsible person, dependencies, deliverable. If a task takes longer than a reporting period, it is split further. After the WBS, the schedule is drawn with tools like Gantt and PERT (week 4).

Scope management

Scope creep

Scope creep is the unplanned growth of requirements after the project has started. The sentence “what if we add this too, it’s a small thing” is the most dangerous sentence. A feature added during design or coding is many times more expensive than one added during analysis.

Ways to control it:

  • Gather requirements early and completely (JAD, prototype).
  • Put the requirements in writing and get them approved.
  • Accept changes with a change request: who asked, why, the impact on time and cost, approval.
  • Postpone unapproved or low-priority requests to the next version.

Timeboxing

In timeboxing the delivery date is fixed, and functionality is made flexible:

  1. Set the delivery date and freeze it.
  2. Prioritize the requirements.
  3. Build the most important core features.
  4. When the date comes, deliver whatever is finished (without compromising quality).
  5. Move the remaining features to the next “timebox”.

The sprint in agile is also a timebox.

Team and risk

Staffing plan: Dividing effort by schedule gives the average team size. As the team grows, communication channels increase as n(n−1)/2n(n-1)/2: 6 channels with 4 people, 28 with 8. That is why large teams are split into subgroups and a reporting structure is set up.

Risk assessment: For each risk, a probability, an impact and a mitigation plan are written. Example: “The payment provider’s API may change; probability medium, impact high; write an adapter layer.”

Standards and documentation: Documentation standards, coding standards and change request forms keep the project consistent. The project binder stores all the deliverables.

Common mistakes

Wrong ideaThe truth
APC = 0.65 × PCAPC = 0.65 + 0.01 × PC
PC is at most 1414 factors × 5 points = at most 70
EO and EQ are the same thingEO contains a calculation, EQ only retrieves
ILF = every screenAn ILF is a data group the system maintains (a set of tables)
Effort = AFP × 1.4Effort = 1.4 × KLOC; convert to lines first
Schedule = effort / 3Schedule = 3.0 × effort to the power 1/3 (cube root)
In timeboxing quality is flexibleScope is flexible, quality and date are fixed
Add people to a late projectThe communication load grows, it gets even later

Test yourself

Exam-style questions. Solve them on paper first, then reveal the answer.

Question 1easy

What are the three trade-offs a project manager balances?

Show answer
Size (scope), time, and cost

Project size, time and cost are linked. If the scope grows, either time or cost (or both) increases. If you want to shorten the time, either the scope shrinks or more resources (money) are needed. You cannot improve all three at once while keeping quality fixed.

Question 2easy

A system has 5 average external inputs, 3 high-complexity external outputs and 2 average internal logical files. What is its TUFP? (Weights: EI avg 4; EO high 7; ILF avg 10.)

Show answer
61

5 × 4 = 20, 3 × 7 = 21, 2 × 10 = 20. Total 20 + 21 + 20 = 61 unadjusted function points.

Question 3medium

A system has TUFP = 200. The sum of the 14 processing complexity ratings (PC) is 45. What is the adjusted function point count?

Show answer
220

APC=0.65+0.01×45=1.10APC = 0.65 + 0.01 \times 45 = 1.10. AFP=TUFP×APC=200×1.10=220AFP = TUFP \times APC = 200 \times 1.10 = 220.

Question 4medium

Each of the 14 processing complexity factors is rated 0 to 5. What are the minimum and maximum possible values of APC?

Show answer
0.65 and 1.35

PC is at least 0 (all 0) and at most 14 × 5 = 70. APC = 0.65 + 0.01 × PC, so between 0.65 and 1.35. The complexity adjustment can reduce TUFP by at most 35% or increase it by at most 35%.

Question 5easy

If all 14 complexity factors are rated 3 (average), what is APC?

Show answer
1.07

PC = 14 × 3 = 42. APC = 0.65 + 0.42 = 1.07.

Question 6hard

A system is estimated at 150 adjusted function points and the language averages 50 lines of code per function point. Using effort = 1.4 × KLOC and schedule = 3.0 × effort^(1/3), find the effort and the schedule.

Show answer
Effort 10.5 person-months, schedule ≈ 6.57 months

LOC = 150 × 50 = 7,500 → 7.5 KLOC. Effort = 1.4 × 7.5 = 10.5 person-months. Schedule = 3.0×10.51/3=3.0×2.190=6.573.0 \times 10.5^{1/3} = 3.0 \times 2.190 = 6.57 months. Average team ≈ 10.5 / 6.57 ≈ 1.6 people.

Question 7medium

A project of 20,000 lines of code: what is the estimated effort and schedule with the same formulas?

Show answer
28 person-months, ≈ 9.11 months

20,000 LOC = 20 KLOC. Effort = 1.4 × 20 = 28 person-months. Schedule = 3.0×281/3=3.0×3.037=9.113.0 \times 28^{1/3} = 3.0 \times 3.037 = 9.11 months.

Question 8medium

Using the industry-standard ratios planning 15%, analysis 20%, design 35%, implementation 30%: planning took 3 person-months. Estimate the design effort.

Show answer
7 person-months

Planning is 15% of the total: total = 3 / 0.15 = 20 person-months. Design = 20 × 0.35 = 7. (Analysis 4, implementation 6.)

Question 9medium

What is scope creep and name one way to control it.

Show answer
Uncontrolled growth of requirements after the project starts; control it with a formal change-request process (or defer extras to a later version).

Scope creep is the unplanned addition of new features after the project has started. The most expensive form is changes that arrive during design or coding. Control: clarify requirements early, accept changes through a written change request, calculate their impact (time, cost), and leave unapproved ones for the next version.

Question 10easy

Which statement describes timeboxing?

  1. Adding people to a late project
  2. Fixing the delivery date and reducing functionality if needed
  3. Estimating effort from lines of code
  4. Drawing tasks as boxes in a network diagram
Show answer
B) Fixing the delivery date and reducing functionality if needed

In timeboxing the delivery date is fixed. The most important requirements are done first, and low-priority features that don't make it are left for the next version. Quality is not reduced, the scope is made flexible.

Question 11hard

In a work breakdown structure, what is a task that cannot be broken down further usually called, and what should it have?

Show answer
A work package (lowest-level task); it should have a duration, an owner (person) and a deliverable.

A WBS divides the project hierarchically into tasks. The lowest-level tasks (work packages) should be assignable, estimable and measurable: duration, owner, dependency, deliverable. Rule: if a task takes longer than a reporting period (e.g. 1-2 weeks), split it.

Question 12hard

Adding more people to a late software project usually does what, and why?

Show answer
Makes it later, because new members need training and communication overhead grows.

Brooks's law: adding people to a late project makes it even later. New people need time to learn, the old team is busy training them, and the number of communication channels grows as n(n-1)/2. With 5 people there are 10 channels, with 10 people 45 channels.

Verification: All function point, APC, LOC, effort and schedule values were computed with node (verify/SEN2022/03.mjs, weight table in lib.mjs). The formulas used for effort and schedule (effort = 1.4 x KLOC, schedule = 3.0 x effort^(1/3)) and APC = 0.65 + 0.01 x PC are given explicitly on the page. Conceptual questions were compared with the standard definitions.

Review card

Triple balance: size - time - cost (when one changes the others are affected) Estimation methods: industry standards (percentages), function points Standard ratios: planning 15%, analysis 20%, design 35%, implementation 30% FP components: EI, EO, EQ (transactions), ILF, EIF (files) Weights (low/avg/high): EI 3/4/6 EO 4/5/7 EQ 3/4/6 ILF 7/10/15 EIF 5/7/10 TUFP = sum(count x weight) APC = 0.65 + 0.01 x PC (PC = 14 factors, rated 0-5; APC 0.65..1.35) AFP = TUFP x APC LOC = AFP x (lines/FP for the language) Effort (person-months) = 1.4 x KLOC Schedule (months) = 3.0 x effort^(1/3) team ≈ effort / schedule Scope creep: unplanned growth of requirements → change request process Timeboxing: date fixed, scope flexible, quality fixed WBS: hierarchical task list; lowest-level task: duration + owner + deliverable