📖 Scenario: You are a project manager at a software company. You need to decide which Software Development Life Cycle (SDLC) model to use for a new project. Different projects need different approaches based on their requirements, team size, and flexibility.
🎯 Goal: Build a simple decision guide that helps choose the right SDLC model based on project characteristics.
📋 What You'll Learn
Create a dictionary called project_characteristics with specific project details
Add a variable called team_size_threshold to help decide the model
Use a for loop with variables characteristic and value to analyze the project
Add a final decision variable called chosen_model based on the analysis
💡 Why This Matters
🌍 Real World
Choosing the right SDLC model helps teams plan and execute software projects efficiently based on their unique needs.
💼 Career
Project managers and software engineers use this knowledge to select development approaches that fit project size, clarity, and customer involvement.
Progress0 / 4 steps
1
Set up project characteristics
Create a dictionary called project_characteristics with these exact entries: 'requirement_clarity': 'high', 'team_size': 8, 'project_complexity': 'medium', 'customer_involvement': 'low'.
Software Engineering
Hint
Use curly braces {} to create a dictionary with the exact keys and values.
2
Add team size threshold
Create a variable called team_size_threshold and set it to 10. This will help decide if the team is small or large.
Software Engineering
Hint
Just assign the number 10 to the variable team_size_threshold.
3
Analyze project characteristics
Use a for loop with variables characteristic and value to iterate over project_characteristics.items(). Inside the loop, check if characteristic is 'team_size' and if value is greater than team_size_threshold. If so, set a variable large_team to True, otherwise False.
Software Engineering
Hint
Loop over the dictionary items and check the team size compared to the threshold.
4
Decide the SDLC model
Create a variable called chosen_model. Use an if statement to set chosen_model to 'Waterfall' if project_characteristics['requirement_clarity'] is 'high' and large_team is True. Otherwise, set chosen_model to 'Agile'.
Software Engineering
Hint
Use an if-else statement to assign the correct SDLC model to chosen_model.
Practice
(1/5)
1. Which SDLC model is best suited for projects with well-defined and stable requirements from the start?
easy
A. Waterfall model
B. Agile model
C. Spiral model
D. Iterative model
Solution
Step 1: Understand requirement stability
Waterfall model works best when requirements are clear and unlikely to change.
Step 2: Match model to project needs
Since the question states stable requirements, Waterfall fits perfectly as it follows a linear sequence.
Final Answer:
Waterfall model -> Option A
Quick Check:
Stable requirements = Waterfall [OK]
Hint: Stable requirements? Think Waterfall [OK]
Common Mistakes:
Choosing Agile for stable requirements
Confusing Spiral with Waterfall
Assuming Iterative is always best
2. Which of the following is a key characteristic of the Agile SDLC model?
easy
A. Strict sequential phases
B. Iterative development with frequent feedback
C. No customer involvement
D. No changes allowed after planning
Solution
Step 1: Identify Agile features
Agile emphasizes iterative development and frequent customer feedback.
Step 2: Eliminate incorrect options
Strict phases and no changes contradict Agile principles; customer involvement is key.
Final Answer:
Iterative development with frequent feedback -> Option B
Quick Check:
Agile = Iterative + feedback [OK]
Hint: Agile means iterative and feedback-driven [OK]
Common Mistakes:
Thinking Agile is strictly sequential
Believing no changes are allowed
Ignoring customer involvement
3. Consider a project where risk assessment is critical and the project evolves through repeated cycles. Which SDLC model fits best?
Code snippet: project_type = 'high risk'
cycles = 3
if project_type == 'high risk' and cycles > 1:
model = 'Spiral'
else:
model = 'Waterfall' What will be the value of model?
medium
A. Spiral
B. Agile
C. Iterative
D. Waterfall
Solution
Step 1: Analyze project conditions
Project is high risk and has multiple cycles, which matches Spiral model characteristics.
Step 2: Evaluate code logic
Condition checks if project_type is 'high risk' and cycles > 1, then model is 'Spiral'. Both true here.
Final Answer:
Spiral -> Option A
Quick Check:
High risk + cycles > 1 = Spiral [OK]
Hint: High risk + cycles > 1? Choose Spiral [OK]
Common Mistakes:
Choosing Waterfall ignoring risk
Confusing Spiral with Iterative
Ignoring the cycles condition
4. A team started using the Waterfall model but faced issues adapting to changing requirements. Which change fixes this problem?
medium
A. Add more documentation in Waterfall
B. Reduce testing phases in Waterfall
C. Switch to Agile model for flexibility
D. Ignore requirement changes
Solution
Step 1: Identify problem with Waterfall
Waterfall is rigid and does not handle changing requirements well.
Step 2: Choose solution for flexibility
Agile model supports changing requirements through iterative cycles and feedback.
Final Answer:
Switch to Agile model for flexibility -> Option C
Quick Check:
Changing requirements need Agile [OK]
Hint: Need flexibility? Use Agile, not Waterfall [OK]
Common Mistakes:
Adding documentation won't fix rigidity
Reducing testing harms quality
Ignoring changes causes failure
5. You have a project with unclear requirements that will evolve, and risk management is important. You want to combine iterative development with risk analysis. Which SDLC model should you choose?
hard
A. V-Model
B. Agile
C. Waterfall
D. Spiral
Solution
Step 1: Analyze project needs
Unclear evolving requirements and risk management needs point to a model that supports iteration and risk analysis.
Step 2: Match model features
Spiral model combines iterative development with explicit risk assessment at each cycle.
Final Answer:
Spiral -> Option D
Quick Check:
Unclear requirements + risk = Spiral [OK]
Hint: Evolving needs + risk? Spiral is best [OK]
Common Mistakes:
Choosing Waterfall despite unclear requirements
Confusing Agile with risk focus
Selecting V-Model which is rigid
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.