Change·Control Room
DARK
SE423 · Software Project Management · Chapter 01

Nothing stays built.
Change is the job.

A project plan is a first draft, not a contract with the future. Requirements shift, environments move, bugs surface, and someone always wants "one more feature." This chapter is the control room: how to let change in without letting it wreck the project — from the change request paper trail, through maintenance and architecture evolution, to shipping, migrating, and — if it all goes sideways — recovering.

RFC → ECO → CCB workflow
Corrective / Adaptive / Perfective
Lehman's 8 Laws
Flash-Cut vs Parallel vs Staged
CCB decides RECOGNIZE REQUEST EVALUATE IMPLEMENT AUDIT
§ 01 — WHY CHANGE HAPPENS

Software change is inevitable — plan for it, don't fight it

A key problem for organizations is implementing and managing change to their current projects and legacy systems.

🌊
Memory hook
"NEW BREAKs it, so we RE-fix it"
New requirements emerge · Environment (business) changes · Worn-out equipment must be accommodated · Bugs (errors) must be repaired, Risks mitigated · pErformance/reliability must improve.
🆕

New requirements

Emerge while the software is under development or already being used.

🏢

Business environment

The environment the software operates in changes over time.

🐛

Errors & risk

Errors must be repaired and risks mitigated as they're discovered.

🖥️

New equipment

New hardware/equipment must be accommodated by the system.

Performance

Performance or reliability may have to be improved.

Reality check: the average project sees roughly 25% requirements change. And no, an overly detailed spec or a longer requirements phase is not the fix — creeping requirements grow with project size regardless (see the Change Control section below). The fix is a disciplined process, not a longer upfront guess.
§ 02 — INTEGRATED CHANGE CONTROL

A process, not a favor — every change gets the same treatment

Integrated Change Control is a process concerned with project change requests, carried out from project inception through completion. All changes must be carefully controlled to maintain the integrity and consistency of the project plan.

Integrated Change Control

scope · cost · schedule · quality

Recognizes that projects will often require changes to the established project plan. It encompasses all aspects of change to the project:

What it covers
  • Reviewing and approving requested changes
  • Managing the changes when they actually occur
  • Controlling elements of the project management plan (scope, cost, budget, schedule, and quality) in response to changes
  • Controlling changes to requirements, design, code and documentation
Change & version control (config. mgmt plan)

Items placed under change/version control: code (product source), documents (requirements, design, test plans, user guides), plans & databases (e.g. MS Project), test scripts, infrastructure scripts, and the software development plan and other process documents.

🗂️
Memory hook — the 5 R's of controlling a change
Recognize → Request → Rate → Report → Rule
1. Need for change is recognized. 2. Change request is submitted as an "RFC" (request for change) or ECO (engineering change order). 3. Developer or PM team rates it — impact and desirability. 4. A change report is generated. 5. The CCB rules: deny (request denied, user informed) or proceed.
IF APPROVED · 1

Queue & ECO

Request is queued for action; an Engineering Change Order (ECO) is generated.

2

Assign

Individuals are assigned to the affected configuration objects.

3

Check-out & change

Objects are checked out and the change is made.

4

Audit

The change is audited.

5

Baseline

A new baseline is established.

6–7

SQA & check-in

If it's a Software Configuration Item (SCI), perform SQA & testing, then check-in the changed objects.

For Software Configuration Items (SCI) specifically
1. Promote SCI for inclusion in the next release.
2. Rebuild the appropriate version — include all changes in the release, review/audit the change, perform Verification & Validation (testing).
3. Distribute the new version.
Tooling
Use a change management system (often COTS) together with a change tracking system. Ideal if they're integrated — this combo is called Comprehensive Software Change Management, made up of SCM (source code management) + issue/defect tracking software.
§ 03 — THE CHANGE CONTROL BOARD

A formally chartered gatekeeper, not a rubber stamp

Change Control Board (CCB)

structure · process · triage

In some projects, the Integrated Change Control process includes a change control board (CCB) — a formally chartered group responsible for reviewing, evaluating, approving, delaying, or rejecting changes to the project, and for recording and communicating such decisions.

Impact depends on scheduling method
CPM (Critical Path Method): changes have a potentially greater impact — changes on the critical path have the greatest impact, changes off it have less.

CCM (Critical Chain Method): changes require adjustments to buffers. Same responses to change are needed, but the schedule impact may be less severe than in CPM.
Sources of creeping requirements

Creeping requirements — as a % of the original scope — climb steeply with project size: from roughly 1–2% at 10 function points up to ~50% at 100,000 function points. Bigger project, proportionally more requirements creep.

§ 04 — AGILE PERSPECTIVE

Agile still controls change — it just doesn't use a CCB

Integrated Change Control, agile style

continuous backlog management

The agile change control process is not controlled by a change review board and the project manager. Instead:

Who owns what
  • Product changes are owned and managed by the customer
  • Process changes are owned by the team
  • The project manager facilitates collaborative discussion of changes between the customer and the team
The direct mapping
Integrated Change Control maps to "continuous backlog management" in an agile project — same underlying need (deciding what changes, when), delivered through a lighter, ongoing mechanism instead of a formal board.
FeaturePlan-Driven MethodologiesAdaptive (Agile) Methodologies
Change Control ApproachFormal and structuredInformal and flexible
Change Management PlanWell-defined and documentedLimited or no plan
Change Control Board (CCB)Formal, defined roles & responsibilitiesInformal, flexible roles & responsibilities
Change Request ProcessFormal, strict proceduresInformal, flexible procedures
Change Impact AnalysisThorough and detailedLimited or none
Change ImplementationAfter CCB approvalQuickly and frequently
Documented ChangesWell-documented and trackedMay not be documented or tracked
Change CommunicationFormal and structured planInformal and flexible plan
PM Approach EmphasizesPredictability and controlFlexibility and adaptability
Best ApplicabilityWell-defined requirements, stable environmentChanging requirements, uncertain environment
Change during development: when change necessitates changes in scope, plan-driven methodologies may or may not have this built in — Spiral can accommodate it, Waterfall is specifically built to resist it. Any scope change still needs CCB approval and extensive planning, and may require more time/resources (the project triangle). Agile methodologies embrace change: Scrum allows changes to the Product Backlog at any time, but manages risk by freezing the current Sprint Backlog. Either way — stakeholder communication is key.
§ 05 — SOFTWARE CHANGE STRATEGIES

Three ways software evolves — and they can combine

🧩
Memory hook
"Maintain the skeleton, Move the skeleton, or Mend the skeleton"
Maintenance = keep the structure, change behavior. Architectural transformation = change the structure itself. Re-engineering = restructure without adding new behavior at all.
🔧

Software maintenance

Changes made in response to changed requirements, but the fundamental software structure is stable.

🏗️

Architectural transformation

The system's architecture is modified — generally from a centralized architecture to a distributed one.

♻️

Software re-engineering

No new functionality is added; the system is restructured and reorganized to facilitate future changes.

These strategies may be applied separately or together — a legacy modernization effort often re-engineers the code and transforms the architecture at the same time.
§ 06 — LEHMAN'S LAWS

Eight laws describing how large systems age

Applicability has not yet been firmly established. The laws are generally applicable to large, tailored systems developed by large organizations — it's unclear how they should be modified for shrink-wrapped products, systems built heavily from COTS components, small organizations, or medium-sized systems.

📉
Chunking technique
Group the 8 laws into 3 themes instead of memorizing them in a flat list
Change dynamics · Structural decay · System regularity — see the grouped table below.

Theme 1 — Change dynamics

LawDescription
Continuing changeA program must change or become progressively less useful.
Continuing growthFunctionality has to continually increase to maintain user satisfaction.

Theme 2 — Structural decay

LawDescription
Increasing complexityAs a program changes, its structure becomes more complex; extra resources are required.
Declining qualityQuality appears to decline unless the system is actively adapted to its changing environment.

Theme 3 — System regularity

LawDescription
Large program evolutionSystem attributes (e.g. size, time between releases) are ~invariant for each system release.
Organizational stabilityA program's rate of development is ~constant.
Conservation of familiarityThe incremental change in each release is ~constant.
Feedback systemEvolution processes involve feedback systems for product improvement.
§ 07 — SOFTWARE MAINTENANCE

Modifying a program after it's put into use

Maintenance does not normally involve major changes to the system's architecture. Changes are implemented by modifying existing components and adding new components to the system.

Maintenance is inevitable: system requirements are likely to change while the system is being developed because the environment is changing — so a delivered system won't fully meet its (now-stale) requirements. Systems are tightly coupled with their environment: when a system is installed, it changes that environment, which in turn changes the system's requirements. Systems must be maintained to remain useful.
🧢
Memory hook
Wear the CAP: Correct, Adapt, Perfect
Corrective — fix a fault. Adaptive — fit a new environment. Perfective — add/modify functionality.
Corrective Maintenance

Maintenance to repair software faults — changing a system to correct deficiencies in the way it meets its requirements.

Adaptive Maintenance

Maintenance to adapt software to a different operating environment — changing a system so it operates in a different environment (computer, OS, etc.) from its initial implementation.

Perfective Maintenance

Maintenance to add to or modify the system's functionality — modifying the system to satisfy new requirements.

Distribution of maintenance effort
Functionality addition/modification — 65% (Perfective)
Software adaptation — 18% (Adaptive)
Fault repair — 17% (Corrective)
Most maintenance effort isn't spent fixing bugs — it's spent adding and modifying functionality (perfective). "Maintenance" is really mostly continued development.
Maintenance cost
Usually greater than development costs — anywhere from 2× to 100× depending on the application. Affected by both technical and non-technical factors. Cost increases as software is maintained: maintenance corrupts the software structure, which makes further maintenance harder. Ageing software (old languages, compilers) can carry high support costs.
Maintenance cost factors
  • Team stability — costs drop if the same staff stay involved over time
  • Contractual responsibility — developers may have no contractual duty to maintain, so no incentive to design for future change
  • Staff skills — maintenance staff are often inexperienced with limited domain knowledge
  • Program age & structure — as programs age their structure degrades, making them harder to understand and change
Evolutionary software: rather than separate development and maintenance phases, evolutionary software is designed so it can continuously evolve throughout its lifetime. The slides leave this an open question: "YES, but how/much?"
§ 08 — MAINTENANCE & CHANGE PREDICTION

Guessing where the next fire will start

Maintenance prediction assesses which parts of the system may cause problems and have high maintenance costs. Change acceptance depends on the maintainability of the affected components — and implementing changes degrades the system, reducing its maintainability further. It's a feedback loop: maintenance costs depend on the number of changes, and the cost of change depends on maintainability.

Three predicting questions
Predicting system changes: What parts of the system are most likely to be affected by change requests? How many change requests can be expected?

Predicting maintainability: What parts of the system will be most expensive to maintain?

Predicting maintenance costs: What will be the lifetime maintenance costs of this system? What will it cost to maintain over the next year?
Complexity metrics

Predictions of maintainability can be made by assessing component complexity. Studies show most maintenance effort is spent on a relatively small number of system components. Complexity depends on: complexity of control structures, complexity of data structures, and procedure/module size.

Change prediction

Predicting the number of changes requires understanding the relationship between a system and its environment. Tightly coupled systems require changes whenever the environment changes. Influencing factors: number and complexity of system interfaces, number of inherently volatile requirements, and the business processes where the system is used.

Process metrics

Process measurements assess maintainability directly: number of requests for corrective maintenance, average time for impact analysis, average time to implement a change request, and number of outstanding change requests. If any or all of these are increasing, this may indicate a decline in maintainability.

§ 09 — ARCHITECTURE EVOLUTION

From centralized mainframe to distributed client-server

There's an ongoing need to convert many legacy systems from a centralized architecture to a client-server architecture.

Change drivers
  • Hardware costs — servers are cheaper than mainframes
  • User interface expectations — users expect graphical user interfaces (CLI → GUI)
  • Distributed access — users want to access the system from different, geographically separated computers
Legacy system structure

Ideally, for distribution there should be a clear separation between the user interface, the system services, and the system data management. In practice, these are usually intermingled in older legacy systems — layers bleed into each other, making a clean split hard.

Distribution factorWhy it matters
Business importanceReturns on distributing a legacy system depend on its importance to the business and how long it will remain important. More cost-effective if it supports stable business processes.
System ageThe older the system, the harder it is to modify its architecture — previous changes have already degraded the structure.
System structureThe more modular the system, the easier to change the architecture. If UI, data management, and application logic are closely intertwined, it's difficult to separate functions for migration.
Hardware procurement policiesDistribution may be necessary if there's a company policy to replace expensive mainframes with cheaper servers.
Key points: the costs of software change usually exceed the costs of software development. Factors influencing maintenance costs include staff stability, the nature of the development contract, skill shortages, and degraded system structure. Architectural evolution is concerned with evolving centralized architectures to distributed ones. A distributed user interface can be supported using screen management middleware.
§ 10 — ROLLOUT, SHIPPING & TRAINING

Getting a finished change out the door — for real

"Other Aspects" of change management: roll-out, training, documentation, migration, and maintenance & support.

Rollout
Create a "Release Checklist" to avoid activities falling through the cracks — organize activities by group (Engineering, QA, Documentation, Operations), possibly with sign-off signatures. Roll-out must have a plan for the process — often scheduled on a given day (e.g. a Saturday) — and it must be a very detailed plan.
Shipping details

Packaging (if commercial product), marketing collateral, security mechanisms (if commercial), and licensing (plan + mechanism).

Installation

Scripts, uninstall support (if not web-based). If you need to install software (e.g. on PCs), don't underestimate the time this takes to develop or the importance of a "first impression." If it's custom software you're reselling, installation at the client site is often a "mini-project" in itself.

Training

Often more than just end-users: users, sales & marketing staff, system operators, maintenance engineers (possibly), sales engineers (possibly), and (technical) support staff.

Documentation: must be ready by the ship date. Final user documentation (including on-line help), plus updates to operations documentation, development documentation, sales & marketing material, the website, test reports, and release notes.
§ 11 — MIGRATION

Moving users from the old system to the new

Migration is the process of moving from the old application/system to the new one. It requires a Migration Plan, a Back-out Plan, and a Data Conversion strategy.

Migration Plan

the "includes" checklist

Includes: description of the environment (computers, DBs, interfaces), description of existing data needed, description of operational constraints (e.g. when can we move to the new system — weekends only? last week of the month only?), a list of affected organizations and contacts, and a plan of steps to be taken. Also answer: does it require a service interruption (and when)? Is training needed? Is there a help-desk — and do they have scripts or new material?

🚦
Memory hook
"Fast, Full-insurance, or Phased"
Fast = Flash-Cut (immediate, one-shot switch). Full-insurance = Parallel Operation (both systems run at once, so you're covered). Phased = Staged migration (replace one part of the existing system at a time).

Flash-Cut

Straight-move / immediate replacement. Fastest approach, but you still want a back-out plan and it requires strong planning and testing. Example: a new corporate-wide calendar system.

🛟

Parallel Operation

Mitigates risk — runs parallel to either the existing manual or system process. The "cut" happens once the new system is "burned-in." Multiple variations exist; often paired with an "adoption period" (compare: telephone industry rolling out new area codes).

🧱

Staged migration

Replace one part of the existing system at a time, rather than all at once.

Need the fastest possible switch and can tolerate risk if planning is airtight?
Flash-Cut (immediate replacement, still keep a back-out plan)
Want to mitigate risk by keeping the old system live "just in case"?
Parallel Operation (avoid flash-cuts where possible; start with test subjects)
System is large/modular and can be swapped piece by piece?
Staged migration (replace one part at a time)
Migration strategy considerations
  • Level of business disruption
  • Degree of latitude in the "production" date
  • How much internal opposition to the system exists (higher → longer adjustment period)
  • Your comfort level with system quality (questionable → mitigate risk)
Cutover

Criteria: what conditions must be met prior? Responsibility: who decides? Operations: who "owns" it once it's live? Rehearsals are sometimes used.

Back-out plan
Especially important for "conversions" — customers already have expectations and needs defined by their existing system, and service must be restorable ASAP. May mean running both systems simultaneously "just in case," and leaving the old one in place for a while — more than a day. When to fall back is a tension: management wants sooner, tech wants "one more fix." Set a time limit (e.g. 3 hours from the start). Requires data recovery and migration back to the old system.
Data conversion

Most systems need this step, and most PMs forget it. The data is often more valuable than the system itself. Cover: data sources (where from, does it need modification on the way in, is it accurate?), process controls (all at once? how do you guarantee correctness?), and completion (how are exceptions handled? backups? can you restart?).

§ 12 — CLOSING OUT AND PROJECT TROUBLE

The end of a project is its own management problem

Concluding software projects

Seems simple — often isn't. Potential issues: last-minute change requests ("one more feature"), disputes over fulfillment of all requirements (often "interpretation" issues), keeping the team motivated, and a difficult transition into maintenance.

The maintenance phase

Sometimes called the "No respect" phase — less glamorous, lower enthusiasm, pressure to fix "production" problems quickly. Software can become "hacked"/"patchwork" over time; finding a support & test platform can be difficult — often the forgotten child until fixes are needed. Configuration control is very important here (fixing the "right" version; tracking branches). Project management isn't always carried over, and the team is often smaller — not a dedicated team, drawn from developers with other main tasks. Contracts matter too: often a "labor hours" (time & materials) contract, or a "maintenance contract" charging a percentage of the software license fee (e.g. 20% of original cost per year); internal/IS projects usually draw from an annual/monthly corporate maintenance budget.

Project in trouble — what if the schedule can't be met?
Level with the sponsor. Move some features/requirements to a second phase. Use resource leveling techniques: fast tracking (run two activities in parallel), activity shifting (move start/end dates), activity splitting (break an activity into pieces), activity stretching (use less of a resource continuously), resource substitution, allocating overtime. Re-evaluate tasks for effort and need.

Project Recovery — saving a "drowning project"

4 step groups

Three overall approaches: cut the size of the software, increase process productivity, or slip the schedule and proceed with damage control. This is an opportunity for decisive leadership action — not a time to "just cut corners." Be realistic, not foolish. Timing is politically important: not too early, not too late.

First & people steps
  • First: assess the situation (is there a hard deadline? what's negotiable?); don't repeat what's already been done; ask the team what needs to happen.
  • People: restore morale (even "sacrifice a sacred cow" — dress code, off-site, catered meals), clean up personnel problems, focus people's time by removing non-essential work, reassign tasks and responsibilities.
Process & product steps
  • Process: fix classic mistakes (inadequate design, shortchanged activities); create "miniature milestones" (small — day-scale, binary, exhaustive — they boost morale by showing progress); track progress meticulously; recalibrate after a short time; manage risk painstakingly.
  • Product: stabilize the requirements; raise the bar on change requests; trim the feature set (determine priorities, cut the low ones); "take out the garbage" (find error-prone modules, re-design them); get to a known, stable state and build from there.
Feature Set Control (the toolkit for trimming scope): minimal specification, requirements scrubbing (removing unnecessary or overly complex requirements), versioned development, effective change control, and feature cuts.
§ 13 — CHEAT SHEET

The whole chapter, one scannable pass

TopicKey fact
Integrated Change ControlFormal process from inception → completion; covers scope, cost, budget, schedule, quality, and requirements/design/code/docs
RFC vs ECORFC = the initial request for change. ECO = generated only after CCB approval, to queue the work
CCBFormally chartered group: reviews, evaluates, approves/delays/rejects, records & communicates decisions
CPM vs CCM impactCPM: critical-path changes hit hardest. CCM: changes require buffer adjustments, usually less severe
Agile change controlNo CCB — Product changes owned by customer, Process changes owned by team, PM facilitates; maps to "continuous backlog management"
3 change strategiesMaintenance (stable structure) · Architectural transformation (centralized→distributed) · Re-engineering (restructure, no new functionality)
Lehman's Laws8 laws about how large systems age — applicable mainly to large, tailored systems in large orgs; applicability not firmly established elsewhere
3 maintenance typesCorrective (fix faults) · Adaptive (new environment) · Perfective (new/changed functionality) — 17% / 18% / 65% of effort
Maintenance costUsually 2×–100× development cost; rises over time as structure degrades
PredictionPredict system changes, maintainability, and costs; rising process metrics (impact-analysis time, outstanding requests) signal declining maintainability
Architecture evolutionCentralized → client-server, driven by hardware cost, GUI expectations, distributed access
3 migration strategiesFlash-Cut (fast, risky) · Parallel Operation (both run, safer) · Staged (piece by piece)
Back-out planKeep old system available >1 day; set a fallback time limit (e.g. 3 hrs); mgmt wants sooner, tech wants "one more fix"
Project recovery3 approaches: cut software size, increase process productivity, or slip schedule + damage control
§ 14 — COMMON MISTAKES

Where students actually lose points

Six confusions that show up constantly on exams for this chapter.

1. Thinking the Project Manager decides on changes alone
✗ WRONGThe PM personally approves or rejects change requests.
✓ RIGHTThe CCB — a formally chartered group — reviews, evaluates, approves/delays/rejects, and records/communicates the decision. In agile, there's no CCB at all; the PM only facilitates discussion.
2. Mixing up the order of RFC and ECO
✗ WRONGAn ECO is submitted first to request the change.
✓ RIGHTA request for change (RFC) is submitted first. The ECO (Engineering Change Order) is generated only after the CCB approves the request, to queue it for action.
3. Confusing Corrective / Adaptive / Perfective maintenance
✗ WRONGPorting software to a new OS is "corrective," and adding a feature is "adaptive."
✓ RIGHTPorting to a new OS/hardware = Adaptive. Fixing a fault = Corrective. Adding/modifying functionality to satisfy new requirements = Perfective (and it's the biggest slice, ~65% of effort).
4. Treating Parallel Operation and Staged migration as the same thing
✗ WRONG"Parallel" means replacing the system piece by piece.
✓ RIGHTParallel Operation runs the whole old and new system simultaneously until the new one is "burned-in." Staged migration replaces one part of the existing system at a time. Flash-Cut is the third option: an immediate, one-shot replacement.
5. Believing agile has no change control
✗ WRONGAgile projects don't control change — anything goes at any time.
✓ RIGHTAgile does control change, just informally: Product changes are owned by the customer, Process changes by the team, and Scrum specifically freezes the current Sprint Backlog even while allowing changes to the Product Backlog at any time.
6. Conflating maintenance, re-engineering, and architectural transformation
✗ WRONGAll three mean "changing the software over time," so they're interchangeable.
✓ RIGHTMaintenance keeps the structure stable and changes behavior. Re-engineering restructures the system with no new functionality added. Architectural transformation specifically changes the architecture — generally centralized → distributed.
They can be applied separately or together — but each answers a different exam question.
§ 15 — POP QUIZ

Click a question to reveal the answer

Quick self-check — no reload needed, just click.

1. What is a CCB and what is its core job?
Answer: A change control board — a formally chartered group responsible for reviewing, evaluating, approving, delaying, or rejecting changes to the project, and for recording and communicating those decisions.
2. Which type of maintenance modifies a system to run on a new operating system?
Answer: Adaptive maintenance — changing a system so it operates in a different environment (computer, OS, etc.) from its initial implementation.
3. Roughly what percentage of maintenance effort goes toward functionality addition or modification?
Answer: About 65% — versus 18% for software adaptation and 17% for fault repair.
4. In an agile project, who owns product changes vs process changes?
Answer: Product changes are owned and managed by the customer; process changes are owned by the team. The project manager just facilitates the discussion between them.
5. On average, what percentage of requirements change over the life of a project?
Answer: About 25% — and overly detailed specs or a prolonged requirements phase are not the fix for this.
6. Which migration strategy runs the old and new systems at the same time to reduce risk?
Answer: Parallel Operation — mitigates risk by running parallel to the existing manual or system process; the cut occurs once the new system is "burned-in."
7. True or false: in CPM scheduling, changes on and off the critical path have the same impact.
Answer: False. Changes on the critical path have the greatest impact; those off the critical path have less.
8. Name the three "Product Steps" used to recover a drowning project.
Answer: Stabilize the requirements, raise the bar on change requests, and trim the feature set (plus "take out the garbage" by re-designing error-prone modules and getting to a known, stable state to build from).
§ 16 — PRACTICE LAB

Scenario-to-concept drills

Realistic exam-style prompts grounded directly in the deck — work out your answer before checking.

1. A company must deploy a new corporate-wide calendar system. All employees need to switch on the same day; there is no practical way to run the old and new calendars side by side company-wide.
→ Flash-Cut migration (Immediate Replacement)
Why: it's the fastest approach for a full, one-shot switch — but it still demands very careful planning and testing, and a back-out plan should exist regardless.
2. A team changes their software in response to changed requirements, but the fundamental structure of the system stays the same throughout.
→ Software maintenance
Why: by definition, maintenance responds to changed requirements without major changes to the architecture — as opposed to architectural transformation (structure changes) or re-engineering (restructured, no new functionality).
3. Month over month, the number of outstanding change requests and the average time needed for impact analysis are both climbing. What does this signal, and what kind of metric is being used to detect it?
→ A decline in maintainability, detected via process metrics
Why: process measurements — requests for corrective maintenance, impact analysis time, time to implement changes, outstanding change requests — rising on any of these indicates declining maintainability.
4. A legacy mainframe DBMS needs to move to a distributed client-server architecture, driven partly by cheaper server hardware and partly by users expecting a graphical interface instead of a command line.
→ Architecture evolution driven by hardware costs + UI expectations
Why: these are two of the three explicit "change drivers" for evolving a centralized architecture to client-server (the third being distributed access needs).
5. A project is behind schedule. The PM wants to save it without recklessly cutting corners. What are the three core recovery approaches, and what's the guidance on timing?
→ Cut software size / increase process productivity / slip schedule + damage control — timing is politically important: not too early, not too late
Why: this is straight from "Project Recovery" — it's framed as an opportunity for decisive leadership, but must stay realistic rather than foolish.