IICTPIICTP

Blog / Guides

Answers3 November 20264 min read

What is the software development life cycle (SDLC)?

The software development life cycle is the sequence of activities a team goes through to take software from an idea to a running, maintained product: understand what is needed, design it, build it, test it, release it and look after it. Different teams arrange those activities differently, but nearly all of them cover the same ground.

In this post
  1. What are the usual phases?
  2. What is the difference between waterfall and iterative models?
  3. Where does testing fit?
  4. Does the life cycle end at release?
  5. Which model should a team choose?
  6. Sources and further reading

What are the usual phases?

  1. Requirements: find out what users and the business need.
  2. Design: decide how the system will be structured.
  3. Implementation: write the code.
  4. Testing: check that it works and meets the need.
  5. Release: put it in front of users.
  6. Maintenance: fix, improve and eventually retire it.

What is the difference between waterfall and iterative models?

In a waterfall approach each phase is finished before the next begins, so feedback from users arrives late. In an iterative or agile approach the team repeats the whole cycle in short rounds, delivering something usable each time and changing course as it learns. Royce’s 1970 paper, often cited for waterfall, itself warned that a single sequential pass is risky.

Where does testing fit?

Throughout, not only after coding. Requirements can be reviewed, designs can be challenged, and code can be tested as it is written. The earlier a mistake is found, the cheaper it is to fix, which is why modern teams run automated checks on every change.

Does the life cycle end at release?

No. Most of a product’s life is spent in operation, where the team monitors it, fixes defects, answers support questions and adds features. Planning for maintenance from the start, with logs, tests and documentation, makes that long stretch easier.

Which model should a team choose?

Choose by how well the requirements are known and how costly a mistake is. Work with fixed, well-understood requirements and heavy regulation may suit more up-front planning. Work where needs are uncertain suits short iterations with frequent feedback. Many teams blend the two.

Sources and further reading

  1. Royce, W. W. (1970). “Managing the Development of Large Software Systems.” Proceedings of IEEE WESCON.
  2. ISO/IEC/IEEE 12207. Systems and software engineering: software life cycle processes.
  3. Sommerville, I. Software Engineering. Pearson.

Go deeper: CTP™ credential · the TPBOK™ standard · Check your experience

IICTP is an independent technical credentialing body.

Keep reading

← All posts

New guides in your inbox

Plain-language guides on technical practice, now and then. You confirm your address first, and you can unsubscribe at any time.

Where do you stand?

Find the credential that fits the work you do.