Software Project Management and Documentation

Chapter 2
Software Life Cycles and Management Approaches

Diploma in Software Engineering
Software Project Management and Documentation   •   Diploma

Software Life Cycles and Management Approaches

Introduction and Context

A software project life cycle is the organized pattern through which a software product moves from an initial idea to release, operation, maintenance, and eventual retirement. It defines how work is divided, how outputs are produced, when decisions are made, and how stakeholders participate. A management approach is the broader way in which the project is planned, controlled, monitored, and adapted.

Choosing a life cycle is not merely a technical decision. It affects contracts, budgeting, staffing, documentation, testing, customer involvement, risk exposure, governance, and the ability to respond to change. A safety-critical system, for example, may require formal approvals and extensive traceability. A consumer mobile application may benefit from frequent experiments and rapid feedback. Neither project should automatically use the same life cycle.

A life cycle is therefore best understood as a decision framework rather than a universal recipe. Professional project managers select or tailor an approach according to requirements stability, technical uncertainty, regulatory obligations, delivery urgency, stakeholder availability, organizational capability, and the consequences of failure.

Learning Objectives

By the end of this chapter, you should be able to:

  • explain the purpose and characteristics of software life cycles;
  • compare waterfall, iterative, incremental, spiral, prototyping, Agile, and hybrid approaches;
  • distinguish an iteration from an increment;
  • explain how risk, uncertainty, feedback, and governance influence life-cycle selection;
  • select a suitable approach for a project context and justify the selection;
  • identify limitations, management implications, and ethical concerns associated with different approaches.

1. Foundations of Software Life Cycles

A software life cycle commonly includes the following activities:

  1. Initiation and feasibility: defining the problem, objectives, stakeholders, constraints, and business justification.
  2. Requirements engineering: discovering, analyzing, prioritizing, documenting, and validating what the system must do.
  3. Planning and design: deciding how the system will be built, including architecture, interfaces, data, security, and resources.
  4. Construction: producing source code, configurations, infrastructure, and supporting documentation.
  5. Verification and validation: checking whether the product has been built correctly and whether it satisfies stakeholder needs.
  6. Deployment and transition: releasing the system into its operational environment and supporting users.
  7. Operation, maintenance, and retirement: correcting defects, adapting to change, improving performance, and eventually replacing or decommissioning the system.

These activities are present in most projects, but their order, repetition, degree of formality, and ownership vary. In a sequential approach, activities are largely arranged in phases. In an iterative approach, a solution is repeatedly refined. In an incremental approach, functionality is delivered in separate usable portions. Agile approaches combine short cycles, frequent feedback, adaptive planning, and close collaboration.

Important Distinctions

An iteration is a repeated cycle of analysis, design, construction, and evaluation. An iteration may improve an existing product without delivering a complete new capability.

An increment is a functional addition to the product. Each increment should provide additional value, although it may require several iterations to develop.

A project can be iterative without being strongly incremental, and incremental without being highly adaptive. For example, a team may repeatedly refine a technical component internally before delivering it as one large release.

A phase is a broad management division, such as requirements or testing. A life cycle describes the overall pattern of phases and feedback. A method provides more specific practices, roles, work products, and techniques.

2. The Waterfall Life Cycle

The waterfall model is a predominantly sequential life cycle. Work proceeds through defined stages, often represented as requirements, design, implementation, testing, deployment, and maintenance. A stage is normally completed, reviewed, and approved before the next stage begins.

Characteristics

  • requirements are defined early;
  • planning and documentation are emphasized;
  • progress is often measured by completion of phase deliverables;
  • formal reviews and approval gates control movement between stages;
  • late changes are treated as exceptions and may require formal change control;
  • testing is planned early but much execution occurs after construction.

Waterfall is appropriate when requirements are relatively stable, the technology is well understood, dependencies are substantial, and contractual or regulatory controls require clear baselines. Examples may include infrastructure upgrades with fixed specifications, regulated systems, or projects where physical deployment makes frequent change expensive.

Strengths

Waterfall provides a clear structure for estimating, contracting, assigning responsibility, and producing documentation. It can be effective when stakeholders need a defined scope and when compliance requires evidence that each stage was reviewed. It also supports long-term coordination among teams with specialized roles.

Limitations

The principal weakness is that assumptions made early may remain untested until late in the project. Users may not see working software until substantial investment has occurred. If requirements are misunderstood, correcting the problem late can be costly. A formally completed document does not guarantee that the delivered product will be useful.

Waterfall is also frequently misapplied. Calling a project “waterfall” should not mean refusing to learn. Even a sequential project should include feasibility experiments, requirements validation, usability reviews, and risk assessment before irreversible decisions are made.

3. Iterative and Incremental Life Cycles

Iterative and incremental development address limitations of strict sequencing, but they are distinct concepts.

Iterative Development

In iterative development, the team revisits and improves the solution through repeated cycles. Early versions may be incomplete or technically limited. Feedback from each cycle influences subsequent work. Iteration is particularly useful when the problem or solution is not fully understood at the beginning.

Typical activities in an iteration include selecting objectives, analyzing risks and requirements, designing a solution, implementing it, testing it, and reviewing results. Iterations may produce prototypes, internal components, or production-ready features.

Incremental Development

In incremental development, the product is divided into functional slices. Each increment adds capability to the previously delivered product. A useful increment should be sufficiently complete to test, demonstrate, deploy, or obtain meaningful feedback.

For example, an online learning system might deliver:

  1. user registration and authentication;
  2. course browsing;
  3. enrollment and payment;
  4. learning content and assessments;
  5. reporting and administration.

The order should reflect value, dependencies, risk, and learning—not merely technical convenience.

Benefits and Risks

Iterative and incremental approaches provide earlier feedback, earlier value, and opportunities to reduce uncertainty. They can reveal usability problems before the entire system is built. They also support reprioritization when business conditions change.

However, they require disciplined architecture, integration, configuration management, and regression testing. If a team continually adds features without controlling technical debt, the product may become difficult to maintain. Incremental delivery also requires stakeholders who can evaluate partial products and make timely decisions.

4. Prototyping

A prototype is a limited representation of a proposed system used to explore requirements, design, usability, feasibility, or technology. Prototypes may be paper sketches, clickable interface models, disposable code, technical experiments, or high-fidelity working components.

Main Forms of Prototyping

  • Throwaway prototyping: the prototype is built to learn and then discarded.
  • Evolutionary prototyping: the prototype is progressively refined into the operational product.
  • Horizontal prototyping: broad user-interface coverage is provided with limited underlying functionality.
  • Vertical prototyping: one feature is implemented deeply across the interface, logic, data, and infrastructure.

Prototyping is valuable when users find it difficult to express requirements in abstract language, when usability is critical, or when technical feasibility is uncertain. A demonstration can expose misunderstandings that a requirements document may hide.

A major danger is the prototype misconception: stakeholders may believe that a demonstration is nearly production-ready. Prototype code often lacks security, performance engineering, maintainability, accessibility, error handling, and operational controls. Teams should label prototypes clearly, document their purpose, and decide explicitly whether they will be discarded or engineered for production.

5. The Spiral Life Cycle

The spiral model organizes development around repeated risk analysis. Each cycle generally identifies objectives and alternatives, evaluates risks, develops and verifies a solution, and plans the next cycle. The model is especially useful for large, complex, expensive, or high-risk systems.

Risk may involve technical feasibility, integration, safety, security, cost, schedule, legal compliance, or stakeholder acceptance. The essential principle is that the project should address its most consequential uncertainties early rather than simply progressing through predetermined phases.

For example, a banking platform may investigate transaction consistency, identity verification, regulatory reporting, and integration with legacy systems before committing to a complete architecture. A technical experiment or prototype may be a risk-reduction activity rather than a product feature.

Strengths and Limitations

The spiral approach makes risk management explicit and supports informed decisions at review points. It can combine structured planning with iterative learning. It is well suited to projects where failure has serious consequences or where uncertainty is too high for a simple sequential plan.

Its limitations include management complexity, the need for skilled risk analysis, and the possibility of excessive analysis without delivery. A spiral process can also be difficult to explain to stakeholders who expect a simple schedule of phases. Risk reviews must therefore lead to concrete decisions, experiments, controls, or changes in scope.

6. Agile Life Cycles and Management Approaches

Agile is a family of approaches based on adaptive planning, frequent delivery, collaboration, and continuous learning. Agile does not mean the absence of planning, documentation, architecture, or management. It means that these activities are performed in a way that recognizes changing knowledge and priorities.

Common Agile practices include:

  • maintaining and prioritizing a product backlog;
  • delivering small, potentially releasable increments;
  • working in short time periods called iterations or sprints;
  • obtaining regular stakeholder feedback;
  • integrating and testing frequently;
  • holding reviews and retrospectives;
  • making work visible through boards, dashboards, and cumulative records;
  • empowering a cross-functional team to make many day-to-day decisions.

Scrum, Kanban, Extreme Programming, and other approaches provide different structures. Scrum commonly uses timeboxed sprints, a product backlog, sprint planning, daily coordination, reviews, and retrospectives. Kanban emphasizes visualizing work, limiting work in progress, and improving flow. Extreme Programming gives strong attention to engineering practices such as automated testing, pair programming, continuous integration, and simple design.

Agile Strengths

Agile approaches are effective where requirements evolve, user feedback is available, and early delivery has value. They can reduce the risk of building unwanted functionality and make progress visible through working increments. They also encourage continuous improvement in both the product and the team’s working process.

Agile Limitations

Agile is not automatically suitable for every environment. It can be difficult where users are unavailable, contracts demand a fixed detailed scope, teams are distributed across incompatible working practices, or compliance evidence is not integrated into normal delivery. Agile projects may also suffer from poor architecture, unstable priorities, inadequate documentation, or stakeholder fatigue if governance is weak.

Agile teams still need release plans, security controls, quality standards, dependency management, budgeting, and technical documentation. “We are Agile” is not a justification for unclear accountability or uncontrolled scope.

7. Hybrid Life Cycles

A hybrid life cycle deliberately combines practices from different approaches. For example, an organization may use sequential approval for business cases and regulatory requirements, iterative development for design and construction, and incremental releases for deployment.

A hybrid approach may be organized by:

  • phase: fixed requirements and architecture followed by Agile delivery;
  • product component: a safety-critical subsystem uses formal development while a customer portal uses iterative development;
  • governance level: portfolio funding is annual while teams plan adaptively each iteration;
  • release type: major releases follow formal validation while minor enhancements use continuous delivery.

Hybrid approaches are often realistic in professional environments because projects must satisfy several systems at once: corporate governance, supplier contracts, technical constraints, customer expectations, and legal obligations. The danger is accidental inconsistency. A hybrid approach should explicitly define decision rights, entry and exit criteria, documentation, quality gates, and how plans at different levels relate to one another.

8. Comparing Life Cycles

ApproachChange toleranceFeedback timingRisk treatmentDocumentation and governanceTypical suitability
WaterfallLow to moderateRelatively latePlanned and reviewed by phaseHighStable, regulated, well-understood work
IterativeModerate to highFrequentRisks and assumptions revisitedModerate to highUncertain requirements or design
IncrementalModerate to highAfter each incrementReduced through staged deliveryVariesProducts that can be divided into valuable features
PrototypingHigh during discoveryVery earlyFeasibility and usability exploredUsually limited during prototype stageUnclear interfaces or technical feasibility
SpiralHighAt risk-review cyclesCentral organizing principleHighLarge, complex, high-risk systems
AgileHighContinuous or frequentManaged through short cycles and transparencyAdapted to contextDynamic products with available stakeholders
HybridTailoredTailoredCombined controlsTailoredOrganizations with mixed constraints

No approach is intrinsically superior. The relevant question is whether the approach makes the project’s important uncertainties visible and manageable.

9. Selecting an Appropriate Approach

Life-cycle selection should begin with context analysis. The following questions are useful:

  1. How stable and well understood are the requirements?
  2. How severe would failure be for users, the organization, or the public?
  3. How much technical uncertainty exists?
  4. Can users and subject-matter experts provide regular feedback?
  5. Can the product be divided into independently valuable increments?
  6. How urgent is early delivery?
  7. What regulatory, contractual, audit, or safety evidence is required?
  8. What is the organization’s experience with adaptive or formal delivery?
  9. How complex are supplier, integration, and deployment dependencies?
  10. What level of documentation is necessary for operation and maintenance?

A useful decision principle is to match control to uncertainty. High requirements uncertainty favors iterative discovery and frequent feedback. High technical uncertainty favors prototyping, experiments, or spiral risk reduction. High regulatory or safety risk favors formal verification, traceability, and approval gates. High delivery urgency favors incremental release, provided quality and operational readiness are not sacrificed.

Illustrative Selection Matrix

Project conditionStrong candidateReason
Stable requirements and strict contractual specificationWaterfall or hybridSupports baselines and formal acceptance
New user-facing product with uncertain demandAgile and prototypingEnables market and usability learning
High-risk integration or safety concernSpiral or hybridMakes risk analysis and assurance explicit
Product with independently valuable featuresIncremental AgileDelivers value in manageable slices
Unknown technical feasibilityPrototyping or spiralTests critical assumptions early
Mixed regulatory and commercial componentsHybridCombines governance with adaptive delivery

The selected approach should be documented in a project management plan. The plan should state how scope is defined, how changes are approved, how progress is measured, how quality is assured, how risks are escalated, and what records must be retained.

10. Management Implications

Life-cycle selection affects nearly every management discipline.

Scope management: Sequential approaches often baseline scope early. Agile approaches manage a prioritized backlog and accept that lower-priority scope may change. In both cases, uncontrolled expansion is a management failure.

Schedule management: Waterfall commonly uses phase milestones. Agile uses iteration goals, release forecasts, throughput or capacity information, and dependency tracking. A short iteration does not guarantee a short overall project.

Cost management: Adaptive delivery may control cost by fixing team capacity and varying lower-priority scope. Sequential contracts may estimate and authorize a defined scope. Both require monitoring of actual expenditure and forecast completion.

Quality management: Quality must be built into the life cycle. Reviews, automated tests, security analysis, usability evaluation, acceptance criteria, and operational monitoring should not be postponed until the end.

Communication: Stakeholder participation is central to iterative and Agile approaches, while formal reports and approval records are prominent in sequential environments. All approaches require clear communication about decisions, assumptions, risks, and unresolved issues.

Configuration and documentation: Frequent change increases the need for version control, traceability, environment management, and accurate technical documentation. Documentation should be sufficient for development, operation, support, audit, and future change—not produced merely as paperwork.

11. Governance, Ethics, and Contemporary Practice

Software projects can affect privacy, safety, access to services, employment, finances, and personal autonomy. Life-cycle decisions should therefore include ethical and governance considerations. Teams should identify affected stakeholders, assess foreseeable harm, protect personal data, provide accessibility, and avoid treating compliance as a substitute for responsible judgment.

A project involving artificial intelligence may require additional attention to data provenance, bias, explainability, model monitoring, human oversight, and secure handling of training data. An Agile cadence does not remove the need for model validation or legal review. Conversely, formal governance should not prevent responsible experimentation when experiments are controlled and ethically reviewed.

Contemporary delivery commonly combines Agile planning with DevOps practices, continuous integration, automated testing, infrastructure automation, security engineering, and continuous delivery. These practices shorten the time between a change and its verification, but they also increase the importance of automated controls, access management, observability, rollback procedures, and production governance.

12. Applied Case: University Student Services Platform

This is an illustrative case.

Background

A university intends to replace separate systems for course registration, student payments, advising appointments, and academic notifications. The project involves students, faculty, finance staff, registry administrators, an external payment provider, and information-security personnel.

Problem

Some regulatory and institutional requirements are known, but usability requirements are uncertain. Students have complained that existing workflows are confusing. The system must protect personal and financial information, integrate with legacy records, and be ready before the next academic year. Failure during registration would have serious operational consequences.

Analysis

A pure waterfall approach would provide useful governance and documentation but could postpone discovery of usability and integration problems. A purely informal Agile approach could create unacceptable risks around privacy, payment processing, auditability, and academic records. The work also contains distinct functional areas that can be delivered incrementally.

Approach and Solution

The project adopts a hybrid life cycle:

  • an initial feasibility and governance phase defines legal, security, data-retention, and integration requirements;
  • short prototypes test registration and appointment workflows with representative students and staff;
  • a spiral-style risk track investigates payment integration, identity management, data migration, and peak-load performance;
  • cross-functional Agile teams deliver increments, beginning with authentication and course search, followed by registration, appointments, payments, and notifications;
  • formal quality gates are required before handling real financial transactions and before the registration release;
  • operational training, support procedures, accessibility testing, security testing, and rollback plans are completed before deployment.

Outcome

The prototypes reveal that students interpret academic terminology incorrectly, leading to redesigned screens and clearer guidance. The payment experiment identifies a limitation in the external provider before production deployment. Registration is released first to a controlled group, monitored closely, and then expanded. The project retains formal evidence for security and audit purposes while allowing lower-risk interface improvements to be prioritized adaptively.

Learning Points

The case demonstrates that life-cycle selection is not an ideological choice. Different uncertainties require different responses. User uncertainty was addressed through prototyping and feedback; technical and security risks through experiments and formal assurance; and delivery pressure through incremental release. The hybrid approach succeeded because its boundaries and governance rules were explicit.

Challenges and Limitations of Life-Cycle Selection

No selection process eliminates uncertainty. Stakeholders may disagree about priorities, organizations may lack experienced practitioners, and suppliers may impose incompatible methods. A nominally Agile project may still contain fixed external deadlines and dependencies. A waterfall project may encounter unavoidable change. Hybrid projects may create additional coordination overhead.

Managers should therefore review the approach during the project. Evidence such as defect trends, missed objectives, stakeholder participation, unresolved risks, technical debt, and delivery predictability may show that tailoring is necessary. Changing the life cycle should itself be managed: roles, plans, contracts, measures, and expectations may need revision.

Best-Practice Checklist

  • Select the life cycle from project evidence, not organizational fashion.
  • Identify the highest-value and highest-risk uncertainties early.
  • Involve representative users and decision-makers.
  • Define what “complete” means for each deliverable or increment.
  • Integrate testing, security, accessibility, and documentation into normal work.
  • Make assumptions, dependencies, risks, and decisions visible.
  • Use prototypes carefully and label their production readiness.
  • Preserve appropriate governance even in adaptive projects.
  • Review whether the selected approach is still suitable as conditions change.
  • Tailor the process without removing essential quality and accountability controls.

Chapter Summary

Software life cycles organize the movement from idea to operation and retirement. Waterfall provides sequential control and is useful when requirements and constraints are stable. Iterative development refines a solution through repeated cycles, while incremental development delivers functionality in usable portions. Prototyping supports early learning about usability and feasibility. The spiral model places risk analysis at the center of planning. Agile approaches use adaptive planning, frequent feedback, collaboration, and regular delivery, but still require quality, documentation, governance, and technical discipline. Hybrid life cycles combine practices to address mixed constraints.

The appropriate approach depends on requirements stability, technical uncertainty, risk consequences, stakeholder availability, delivery urgency, regulatory obligations, organizational capability, and the possibility of incremental delivery. Professional selection is evidence-based and may be revised as the project develops. The most effective life cycle is the one that makes important uncertainties visible, enables responsible decisions, and provides appropriate control without unnecessary rigidity.

Key Terms

Agile: A family of adaptive approaches emphasizing collaboration, frequent delivery, feedback, and response to change.

Baseline: An approved version of a requirement, plan, design, or product used as a reference for control.

Change control: The process for evaluating, approving, recording, and implementing changes.

Continuous integration: Frequent integration of code changes followed by automated or rapid verification.

Increment: A functional addition to a software product.

Incremental development: Development in which the product is delivered through separate functional additions.

Iteration: A repeated cycle of development and evaluation.

Life cycle: The overall pattern of activities and feedback through which software is developed and managed.

Milestone: A significant planned point used to review progress or authorize a decision.

Prototype: A limited representation used to explore requirements, design, usability, or feasibility.

Regression testing: Testing to detect whether existing behavior has been damaged by a change.

Risk: An uncertain event or condition that may affect objectives.

Risk reduction: Action taken to lower the probability or impact of an undesirable event.

Scope: The boundaries and content of the work and product to be delivered.

Spiral model: A risk-driven life cycle organized around repeated cycles of analysis, development, evaluation, and planning.

Stakeholder: A person or organization that affects, is affected by, or has an interest in the project.

Technical debt: Future cost or difficulty created by expedient technical decisions or inadequate quality.

Validation: Evaluation of whether the product satisfies intended user or business needs.

Verification: Evaluation of whether a product or work product conforms to specified requirements.

Waterfall: A predominantly sequential life cycle in which defined stages are completed in order.

Review Questions

5 Short Answer Questions

  1. What is the difference between an iteration and an increment?
  2. State two situations in which waterfall may be appropriate.
  3. What is the principal purpose of a prototype?
  4. Why is risk analysis central to the spiral model?
  5. Name two practices commonly associated with Agile delivery.

5 Long Answer Questions

  1. Compare the strengths and limitations of waterfall and Agile approaches.
  2. Explain how iterative and incremental development differ, and why they are often used together.
  3. Discuss the management implications of selecting a hybrid life cycle.
  4. Explain why a prototype should not automatically be treated as production software.
  5. Describe the factors a project manager should examine before selecting a life cycle.

3 Analytical / Application Questions

  1. A hospital is developing a system for medication administration. Requirements include strict safety controls, auditability, integration with existing records, and limited user availability. Recommend a life cycle and justify your choice.
  2. A start-up is developing a mobile application for a market it does not yet understand. Propose an approach for the first six months, including how feedback and technical risk should be managed.
  3. An organization wants to use Agile, but its contract requires formally approved requirements, documented testing, and evidence for an external audit. Design a hybrid approach that satisfies both adaptive delivery and governance needs.

Multiple Choice Questions with Answers

Question 1

Which characteristic most strongly distinguishes incremental development?

A. The product is delivered through separate functional additions.

B. All requirements are frozen before design begins.

C. Risk analysis is the only activity in each cycle.

D. The prototype is always discarded.

Correct Answer: A. The product is delivered through separate functional additions.

Question 2

A project has highly uncertain user needs and needs early feedback on usability. Which approach is most directly suitable for initial discovery?

A. Prototyping

B. Strict waterfall

C. Final acceptance testing

D. Post-release maintenance

Correct Answer: A. Prototyping

Question 3

What is the central organizing principle of the spiral model?

A. Risk analysis and reduction

B. Avoidance of all documentation

C. Completion of coding before planning

D. A fixed number of daily meetings

Correct Answer: A. Risk analysis and reduction

Question 4

Which statement about Agile is correct?

A. Agile eliminates the need for planning and documentation.

B. Agile emphasizes adaptive planning, feedback, and frequent delivery.

C. Agile requires all requirements to remain unchanged.

D. Agile is appropriate only for very small projects.

Correct Answer: B. Agile emphasizes adaptive planning, feedback, and frequent delivery.

Question 5

A team repeatedly improves an existing solution but does not necessarily release every cycle. This is primarily an example of:

A. Incremental development

B. Iterative development

C. Waterfall development

D. Retirement planning

Correct Answer: B. Iterative development

Question 6

Which project condition most strongly supports a waterfall or formal hybrid approach?

A. Stable requirements and strict contractual approval requirements

B. Unknown market demand and rapidly changing priorities

C. A need to test several interface concepts immediately

D. A product that must change direction weekly

Correct Answer: A. Stable requirements and strict contractual approval requirements

Question 7

What is a major danger of treating a prototype as production software?

A. The prototype may lack security, performance, and maintainability controls.

B. The prototype will always contain too much documentation.

C. The prototype cannot obtain user feedback.

D. The prototype prevents requirements from changing.

Correct Answer: A. The prototype may lack security, performance, and maintainability controls.

Question 8

Which practice is especially important when delivering frequent increments?

A. Regression testing and configuration management

B. Prohibiting all stakeholder feedback

C. Deferring integration until project closure

D. Removing acceptance criteria

Correct Answer: A. Regression testing and configuration management

Question 9

Why might a project choose a hybrid life cycle?

A. To combine formal governance with adaptive development where appropriate

B. To avoid defining roles and decision rights

C. To ensure that no part of the project is reviewed

D. To make all requirements uncertain

Correct Answer: A. To combine formal governance with adaptive development where appropriate

Question 10

A system has high technical uncertainty, serious failure consequences, and complex integrations. Which approach is particularly appropriate?

A. Spiral or a risk-focused hybrid

B. Uncontrolled ad hoc development

C. Prototype-only delivery without assurance

D. Maintenance without requirements analysis

Correct Answer: A. Spiral or a risk-focused hybrid

Software Project Management and Documentation
Chapter 2 of 15