Study guide
Agile vs Plan Driven Development and Attributes of Good Software: Table and 10-Mark Answer
Agile vs plan driven development and the attributes of good software for CSC375 and BIT302: comparison table, Sommerville's choosing questions, agile manifesto, Scrum and XP, and a 10-mark outline.
2026-10-24 | notesharu team
Two questions keep returning in the software engineering papers: "differentiate between plan-driven and agile development" and "what are the attributes of good software". The first is in the Agile Software Development unit of TU BSc CSIT Software Engineering (CSC375, unit 3), the second in the Introduction unit (unit 1). BIT students meet both in BIT302 Software Engineering, in the fundamentals unit and in Software Process Models.
This article covers agile vs plan driven development with a comparison table, the questions Sommerville suggests for choosing between them, the agile manifesto values and principles, Scrum and XP in brief, and the four essential attributes of good software. It ends with a 10-mark outline.
Attributes of good software
Software is judged by more than whether it works. Sommerville lists four essential attributes that any professional system should have. The exact set depends on the system, but these four are the standard answer.
| Attribute | What it means | Why it matters |
|---|---|---|
| Maintainability | The software can be changed to meet the changing needs of customers, by being written so that it can evolve | Business needs change, and software that cannot change becomes useless; most of the lifetime cost of a system is spent on changes after delivery |
| Dependability and security | The software does not cause physical or economic damage when it fails, is reliable and safe, and malicious users cannot access or damage the system | Failures cost users money and trust, and in critical systems can cost lives; security breaches expose data |
| Efficiency | The software does not waste system resources such as memory and processor cycles, and responds quickly | Slow or resource-hungry software frustrates users and raises hardware cost; responsiveness, processing time and memory use are all measures |
| Acceptability | The software is acceptable to the type of users for which it is designed: understandable, usable and compatible with the other systems they use | A technically perfect system that users find confusing or incompatible will not be used |
These attributes are product characteristics, not process steps. They are also in tension: making a system more efficient may make it less maintainable, and extra security checks can reduce usability. The engineer's job is to balance them for the system at hand.
Plan-driven development
In a plan-driven process all the process activities are planned in advance and progress is measured against that plan. The stages (requirements, design, implementation, testing) are separate, and the output of each stage is a detailed document that feeds the next. Waterfall is the purest example, though plan-driven development can also be incremental, with the increments planned from the start.
Plan-driven development relies on a detailed requirements specification, a design finished before coding, formal change control, and extensive documentation. Its strength is predictability: cost, schedule and deliverables can be stated up front, which suits contracts, regulators and large distributed teams. Its weakness is that changes after the specification is agreed are costly, and the customer sees software only late.
Agile development
Agile development is a family of methods built for rapid delivery of working software in a setting where requirements change. Specification, design and implementation are interleaved. The system is developed in a series of increments, with the customer involved in specifying and evaluating each one. Documentation is kept minimal, and communication is mostly face to face.
The Agile Manifesto states four values: individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; and responding to change over following a plan. The right-hand items still have value, but the left-hand items are valued more.
The principles that support these values include customer involvement throughout, incremental delivery, people over process (trust the team's skills and let them work their own way), embracing change by designing the system to accommodate it, and maintaining simplicity in both the software and the process.
Scrum and XP in brief
Scrum organises work in fixed-length sprints, usually two to four weeks. A product backlog of requirements is prioritised by the product owner, the team selects items for the sprint backlog, holds a short daily scrum, and ends with a sprint review and retrospective. The Scrum Master removes obstacles.
Extreme Programming (XP) takes good practice to an extreme: very frequent releases, pair programming, test-first development, continuous integration, refactoring, collective ownership and user stories for requirements. Tests are written before code, and all tests must pass before a change is integrated.
Agile vs plan driven development: comparison table
| Point | Plan-driven | Agile |
|---|---|---|
| Planning | Detailed plan for the whole project made up front | Plans are short and change as work proceeds, planned per iteration |
| Requirements | Fixed in a detailed specification before design | Evolve; written as user stories or backlog items |
| Process structure | Separate, sequential stages | Specification, design and coding interleaved |
| Change | Costly, controlled through formal change management | Expected and welcomed at every iteration |
| Delivery | Often a single release at the end, or planned increments | Frequent small releases of working software |
| Customer role | Mainly at the start and the end | Continuously involved, part of the team |
| Documentation | Extensive, a main output of each stage | Minimal, the code and tests are the main record |
| Team | Large teams, possibly in different places | Small, co-located teams |
| Progress measure | Conformance to plan and documents | Working software |
| Best for | Safety-critical, large, regulated systems with stable requirements | Small and medium business systems with changing requirements |
In practice most projects mix the two. A common compromise is to use agile practice inside a plan-driven frame, or to plan the overall releases and let each release run in sprints.
Choosing between them: Sommerville's questions
The syllabus expects you to know the questions that decide which approach fits. If most answers on the first list are "yes", lean plan-driven.
Is a detailed specification and design needed before implementation, for example because the contractor must price the work? Is an incremental delivery strategy realistic, or must the system be delivered whole? How large is the system, and is the team large or distributed? What type of system is it, and does it need extensive analysis before implementation, as a real-time control system does? What is the expected lifetime, since long-lived systems need design documentation for the maintenance team? Are there regulations or external reviewers who demand documents?
Agile suits smaller co-located teams with an engaged customer and unstable requirements, where the team members are skilled enough to work with little documentation.
10-mark outline
For "compare plan-driven and agile development, and describe the attributes of good software":
- Define plan-driven development in two sentences, with waterfall as the example.
- Define agile development and state the four manifesto values.
- Give the comparison table with six to eight rows.
- State the factors that decide the choice and note that most real projects blend the two.
- List the four attributes, maintainability, dependability and security, efficiency, acceptability, with one line each on why they matter.
If only the attributes are asked for 5 marks, give the table above in short form and a closing line that the attributes can conflict and must be balanced.
The unit notes are on Introduction in CSC375 and Agile Software Development, with past questions on the CSC375 subject page. BIT students should use Software Engineering Fundamentals in BIT302 and Software Process Models.
Put it into practice
Browse all subjectsMore articles
Study guide
2D Geometric Transformation in Computer Graphics: Matrices and a Solved Numerical
2026-10-24
Study guide
6 Advantages of Cloud Computing, Availability and Programming Models: Exam Guide
2026-10-24
Study guide
Common Bus System in Computer Architecture with Diagram: Registers, Selection Table, Answer
2026-10-24
Study guide
Exception Handling in C++: try, catch, throw, Rethrow with Traced Examples and new/delete
2026-10-24
Study guide
Data Transfer Instructions in Computer Architecture: Mnemonic Tables, Types and Example
2026-10-24
Study guide
Definition of Constitution by Different Scholars and Government Power Distribution in Nepal 2015
2026-10-24