Menu

Earn Premium with Referrals

Invite your friends and earn Premium rewards through our referral program.

See how it works and start inviting friends.

SDLC Models & Selection
SDLC

SDLC Models & Selection

Practice questions on Waterfall, Spiral, V-Model, Iterative, Incremental, Agile, and choosing the right SDLC model based on requirements and risk.

1. What factors should be considered when selecting an SDLC model?

There is no single best SDLC model — the right choice depends on the project’s situation. The most important factor is requirement stability. If the requirements are clear, complete, and unlikely to change, a sequential model like Waterfall or the V-Model works well. If the requirements are vague or expected to shift, an iterative or Agile approach is safer.

Risk is the second factor. Projects with high technical, financial, or market risk — where a wrong assumption could be catastrophic — favor the Spiral Model, because it bakes risk analysis into every iteration. Safety-critical systems like medical devices or avionics need the rigorous verification of the V-Model. Project size and complexity matter too. Small, simple projects can afford Big Bang or a lightweight Waterfall; large enterprise systems need structure, so Spiral or Iterative wins.

Team size, customer involvement, and technology familiarity all play a role. Agile needs a small, self-organizing team and a customer who can give feedback every sprint. If the customer is not available or the technology is unfamiliar, a model with heavy documentation and prototypes helps de-risk the unknowns. Budget and schedule constraints also decide: a tight deadline forces a model that delivers working software early, like Incremental, while a flexible timeline allows Waterfall’s full-sequence approach.

Finally, consider the delivery model and organizational culture. A startup shipping monthly needs Agile; a government contractor delivering to a fixed spec needs Waterfall. In short, the decision weighs requirement clarity, risk tolerance, team and customer dynamics, and the urgency of delivery against each other.

2. When should the Waterfall model be avoided?

Waterfall should be avoided whenever the requirements are not fully known at the start or are likely to change. Because each phase must complete before the next begins, a late requirement change means redoing already-finished work — slow and expensive. If the customer cannot articulate the whole specification up front, Waterfall will almost certainly deliver the wrong thing.

It should also be avoided when the user needs to see working software early. Waterfall delivers nothing usable until the very end, so a misunderstanding discovered in testing can be catastrophic. Projects with aggressive deadlines or tight budgets that cannot absorb rework are poor fits. If the technology is new or unfamiliar, Waterfall’s lack of prototyping means the team might commit to an architecture that does not work.

Finally, avoid Waterfall when continuous customer feedback is essential, such as consumer products where the market moves fast. The model suits stable, well-understood, document-heavy environments — government contracts, safety-critical systems, fixed specifications. Outside those, iterative or Agile approaches are safer.

3. What are the limitations of the Waterfall model?

Waterfall’s core limitation is rigidity. Each phase must finish before the next starts, and the model assumes requirements can be fully captured up front and will stay frozen. In practice requirements evolve, and a change means backtracking to an earlier phase and redoing work — slow and costly.

The customer sees nothing working until the end. That means fundamental misunderstandings surface late, when they are most expensive to fix. There is also no early risk analysis: the project can run for months and fail completely before anyone notices a fatal flaw. Documentation is heavy, which suits some contexts but slows a fast-moving project.

Waterfall also hides integration risk. Because the pieces come together only at the end, integration problems — the trickiest ones — appear late. Testing is a single late phase rather than a continuous activity, so defects are found close to release, not close to introduction. Finally, the model is a poor fit for volatile requirements and for projects that need early user feedback. It works only when the world stays stable enough to match the initial plan.

4. How does the V-Model improve testing compared with Waterfall?

The V-Model attaches a testing phase to every development phase, one-to-one, so testing is planned from the very beginning rather than bolted on after coding. Requirement analysis pairs with acceptance testing, system design with system testing, high-level design with integration testing, and low-level design with unit testing.

The practical effect is that the team writes the test plans while still doing design work. By the time coding finishes, every level of test is already planned and ready, so testing starts immediately instead of waiting for testers to catch up. Because each test phase validates its matching development phase, defects are caught closer to where they were introduced — a requirement error surfaces during acceptance testing, a design error during integration testing — making them cheaper to fix.

The V-Model also makes the testing effort explicit and measurable: the test plan for each level is a deliverable. The weakness is the same as Waterfall — it is still sequential and rigid, and changing requirements invalidate the derived test plans. But for projects with stable requirements, the V-Model demonstrably improves testing discipline and defect detection timing.

5. When is the Spiral model preferred over other SDLC models?

The Spiral Model is preferred for large, complex, high-risk projects where a failure would be extremely costly — defense systems, aerospace, large enterprise applications. It is built around continuous risk analysis, so it shines whenever technical, financial, or market risk is the dominant concern.

It is also the right choice when requirements are vague and can only be clarified through repeated evaluation. Each loop of the spiral produces a working increment and a risk assessment, and the customer reviews it before the next loop. That iterative refinement suits projects where no one fully understands the problem at the start.

The Spiral Model’s expense is the trade-off: every loop involves analysis, review, and customer involvement, generating lots of documentation and taking time. That cost is justified only when the cost of failure is higher. For small, low-risk projects the model is overkill — the overhead outweighs the benefit.

6. What are the advantages of the Iterative model?

The Iterative Model builds software in repeated cycles, each one producing a working version of the system. Its biggest advantage is that working software exists early. Instead of waiting until the end, the team delivers a partial system after the first iteration, so users and management can see real progress and give feedback.

Feedback from each iteration feeds the next, which makes the model resilient to change. If requirements shift, the change can be folded into the next cycle rather than ripping up completed work. Risk is also spread out: the risky parts of the system can be tackled in the earliest iterations, when problems are cheap to fix.

Because testing happens in every cycle, defects surface continuously instead of in one late testing phase. The model also suits large projects that cannot be built all at once — each iteration delivers a usable slice, and the system grows toward completeness. The main cost is that the architecture must be solid from the start, since later iterations build on earlier ones.

7. What is the difference between Iterative and Incremental models?

The words are often used together, but they describe different things. Iterative development repeats the same stages over and over — requirements, design, code, test — refining the whole product a little more with each cycle. It is about repeating and improving. Incremental development builds the product piece by piece — each increment adds one more working chunk of functionality until the full system exists. It is about adding and assembling.

The Iterative Model improves quality through refinement: each pass makes the existing product better. The Incremental Model grows coverage through addition: each release contains more features. In practice the two are combined — an incrementally built system is often developed through iterative cycles, which is exactly what Agile sprints do. The distinguishing idea for an interview: iteration repeats and refines, increment adds and expands.

8. When is the Prototype model most appropriate?

The Prototyping Model is most appropriate when requirements are unclear and the customer cannot describe what they want in the abstract. Many users only understand what they need once they see something working, and a prototype gives them that concrete thing to react to.

It is also the right choice when there is no existing system to reference, when the project introduces unfamiliar technology, or when the risk of a requirements misunderstanding is high. By building a quick, simplified version first, the team validates assumptions cheaply before committing to full development.

The model shines in user-facing projects where usability and look-and-feel matter, because the user can click through the prototype and correct the design early. It should be avoided when requirements are already crystal clear — the extra cycle is wasted effort — and when the user might mistake the prototype for the finished product or let the revision loop run forever.

9. What is the difference between Evolutionary Prototyping and Throwaway Prototyping?

Both build a quick version of the system to clarify requirements, but they treat the prototype differently. A throwaway prototype is built quickly, shown to the user for feedback, and then discarded. It exists purely to discover requirements and validate ideas — the real system is built from scratch afterwards, often with a more robust architecture.

An evolutionary prototype is refined again and again in response to feedback until it gradually becomes the final product. Nothing is thrown away; the prototype evolves into the system, and the requirements emerge through this continuous refinement.

The choice depends on how confident the team is in the architecture. Throwaway is safer when the initial approach may be wrong — the discarded prototype costs little. Evolutionary is faster when the direction is right, because no work is wasted. The danger with evolutionary prototyping is that a quick-and-dirty prototype may be patched into production quality without ever being properly engineered.

10. What is the difference between Agile and Iterative development?

All Agile development is iterative, but not all iterative development is Agile. Iterative development is simply a technique: build in repeated cycles, refining each time. It says nothing about teams, customer collaboration, or how change is managed — a team can iterate without being Agile.

Agile is a philosophy built on the Agile Manifesto: individuals and interactions over processes, working software over documentation, customer collaboration over contract negotiation, and responding to change over following a plan. Agile adds the cultural layer — self-organizing teams, daily collaboration, short fixed-length sprints, continuous customer feedback — on top of the iterative technique.

The practical difference: an iterative team repeats cycles for engineering convenience. An Agile team repeats cycles as part of a values-driven approach where change is welcome, the customer is embedded in the process, and working software is the primary measure of progress.

11. What is the Big Bang model?

The Big Bang Model is the simplest — and least disciplined — SDLC model. There is no formal process, no phases, and no planning. The team simply gathers whatever requirements and resources are available and starts coding, then keeps adding functionality until the customer is satisfied or runs out of time and money.

Its only real advantage is speed for very small projects or learning exercises, where a student or a tiny team builds something experimental without ceremony. Because there is no structure, it is nearly impossible to track progress, manage risk, or predict cost and schedule.

Big Bang is essentially the absence of a model. It suits throwaway prototypes and one-person scripts, but it is dangerous for any real product — requirements are usually missed, testing is an afterthought, and the result rarely matches what the customer wanted.

12. What are the disadvantages of the Big Bang model?

Big Bang’s disadvantages all follow from its lack of structure. There is no requirement analysis, so the final product often does not match what the customer actually needed. There is no design, so the code grows without an architecture and becomes difficult to maintain. There is no risk management, so a project can burn the entire budget before anyone realizes it is failing.

Testing is minimal or nonexistent, so defects reach the user. Integration is chaotic because the pieces were never planned to fit together. Cost and schedule are unpredictable — the customer cannot know when, or whether, the project will finish. And if the lone developer leaves, the code is often unreadable to everyone else.

Big Bang works only for tiny, throwaway projects or quick proofs of concept. Anything meant to survive in production needs at least the skeleton of a real model.

13. How do risk and requirement stability influence SDLC model selection?

Requirement stability decides how much structure the model needs. If requirements are stable, complete, and understood up front, a sequential model like Waterfall or the V-Model is efficient — there is nothing to adapt to, so planning everything in advance saves money. If requirements are volatile, the model must be able to absorb change, which points to Agile, Iterative, or Prototyping.

Risk decides how much risk management the model must build in. High-risk projects — technical uncertainty, safety-critical consequences, large financial stakes — need the Spiral Model’s continuous risk analysis, because a wrong assumption is catastrophic. Low-risk projects can afford simpler models, since the cost of being wrong is small.

The two dimensions combine: a stable, low-risk project fits Waterfall; a volatile, low-risk project fits Agile; a stable, high-risk project fits the V-Model; and a volatile, high-risk project fits the Spiral Model. The model is chosen to match where the project sits on both axes.

14. Which SDLC model is suitable for safety-critical software?

The V-Model is the standard choice for safety-critical software such as medical devices, avionics, and automotive systems. Its one-to-one mapping between development and testing phases means every requirement is verified at every level — unit, integration, system, and acceptance — which gives the traceability regulators demand.

The model’s rigor is exactly what safety-critical work needs. Each design level is validated by a corresponding test level, so errors are caught where they are introduced. Requirements and their tests are linked throughout, producing the documentation that certification bodies audit.

The Spiral Model also appears in safety-critical work when risk analysis dominates. In practice, regulated industries often combine them: the V-Model provides the verification discipline, and Spiral-style risk analysis ensures hazards are continuously assessed. What is never used is Big Bang or undisciplined Agile without verification evidence.

15. Can different SDLC models be combined in one project?

Yes — hybrid models are common in practice. The Spiral Model itself is a combination of Waterfall’s phases with iterative prototyping and risk analysis. Real projects frequently blend: a requirements phase that looks like Waterfall, a development phase that runs in Agile sprints, and a delivery phase with Waterfall-style acceptance.

The combination is usually chosen by project stage. Many teams use Waterfall-style planning and documentation for the regulatory or contracting parts, then switch to iterative development once the architecture is settled. Others use a “Waterfall in the front, Agile in the middle” shape — plan the whole thing up front, then deliver iteratively.

The danger of combining models is losing consistency: mixed ceremonies can confuse the team and blur accountability. The key is that each part must have a clear owner and purpose. Hybrid approaches work when the blend is deliberate and each phase’s model fits the work being done there.

16. What are the phases of the SDLC?

The SDLC (Software Development Life Cycle) is the structured process for building software, split into seven classic phases:

  1. Requirement Gathering & Analysis — collect and document what the stakeholders need; produce the SRS (Software Requirements Specification). The what of the system.
  2. Feasibility Study — assess technical, economic, operational, legal, and schedule feasibility (TELOS) — is it worth building, and can we build it?
  3. Design — architecture, modules, database schema, and interfaces — the how. Includes high-level (architecture) and low-level (detailed module) design.
  4. Coding / Implementation — developers write the actual code, following design docs and coding standards.
  5. Testing — verify the code meets requirements (unit → integration → system → acceptance). Catches defects before release.
  6. Deployment — install the software in the production environment and make it live.
  7. Maintenance — fix defects (corrective), adapt to environment changes (adaptive), and add features (perfective). This phase consumes the largest share of total cost — often 60–80%.
Requirements → Design → Coding → Testing → Deployment → Maintenance

The interview one-liner: SDLC is the waterfall of phases from idea to upkeep — most models (Waterfall, V-Model, Agile) are different ways of organizing these same phases. A “Software Development Life Cycle” answer that names all seven phases in order is the expected starter response.

17. What is the difference between Waterfall and Agile?

The two flagship development approaches:

  • Waterfall — a sequential process: each phase completes fully before the next begins (requirements → design → coding → testing → deployment). Emphasizes planning and documentation up front; changes are expensive late. Best when requirements are clear, stable, and unlikely to change — e.g. government contracts, safety-critical systems with fixed specs.
  • Agileiterative and incremental: short cycles (sprints), working software delivered frequently, requirements refined continuously based on feedback. Welcomes change; emphasizes people and collaboration over process. Best when requirements are unclear or evolving — startups, web/mobile products, anything where the market moves fast.
WaterfallAgile
ProcessSequentialIterative
RequirementsFixed up frontEvolve continuously
DeliveryOne big release at the endSmall releases every sprint
ChangeExpensive, discouragedWelcome, expected
DocumentationHeavy, formalLightweight, working software first
FeedbackAt the endEvery sprint

The interview answer: Waterfall is “plan everything, then build it once”; Agile is “build a little, learn, build again.” Neither is universally better — Waterfall suits fixed, well-understood problems; Agile suits uncertain, fast-moving ones. Most modern teams run Agile (often Scrum) precisely because requirements rarely stay fixed.

My Private Notes

Notes are auto-saved locally to this device.