Problem Statement
Projects often fail because the final system does not meet user needs or business goals. This happens when requirements are unclear, incomplete, or misunderstood, leading to costly rework and delays.
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Stakeholders │─────▶│ Requirements │─────▶│ System Design │
│ (Users, Biz) │ │ Analysis Team │ │ & Development │
└───────────────┘ └───────────────┘ └───────────────┘
▲ │ │
│ ▼ ▼
└───────────── Feedback Loop ────────────────┘This diagram shows how stakeholders provide input to the requirements analysis team, which produces clear requirements that guide system design and development, with feedback loops to refine needs.
### Before: No clear structure for requirements class Project: def __init__(self): self.details = {} project = Project() project.details['feature'] = 'fast login' ### After: Structured requirements analysis using classes class Requirement: def __init__(self, id, description, priority): self.id = id self.description = description self.priority = priority class RequirementsAnalysis: def __init__(self): self.requirements = [] def add_requirement(self, req): self.requirements.append(req) def list_requirements(self): priority_order = {'High': 1, 'Medium': 2, 'Low': 3} return sorted(self.requirements, key=lambda r: priority_order.get(r.priority, 4)) analysis = RequirementsAnalysis() analysis.add_requirement(Requirement(1, 'User can login within 2 seconds', 'High')) analysis.add_requirement(Requirement(2, 'Support multi-factor authentication', 'Medium')) for req in analysis.list_requirements(): print(f"Req {req.id}: {req.description} (Priority: {req.priority})")