Values: individuals and interactions over processes/tools; working software over documentation; customer collaboration over contract negotiation; responding to change over following a plan. Sommerville's five principles: customer involvement, incremental delivery, people not process, embrace change, maintain simplicity.
User stories, continuous integration, test-first development (TDD), pair programming, collective ownership, simple design, refactoring, sustainable pace. Most important (arguably): TDD - think first, immediate feedback, built-in regression suite.
Short fixed sprints (2-4 weeks). Roles: Product Owner (backlog/priorities), Scrum Master (facilitates, removes obstacles), Development Team. Activities: Sprint Planning, Daily Scrum, Sprint Review, Retrospective.
Plan-driven: detailed up-front planning/documentation, sequential, change is expensive. Agile: iterative, customer involved, working software early, change expected. Choose plan-driven for stable requirements / safety-critical or large distributed systems; agile for uncertain requirements, involved customer, small experienced team, rapid delivery.
Challenges: coordination across teams, shared architecture, complex requirements, culture expecting plans. Adaptations: Scrum of Scrums, architectural roles, more formal interface documentation, hybrid approaches.
User requirements: high-level natural-language statements of services and constraints for customers/managers. System requirements: detailed descriptions for developers/testers. Two levels bridge the abstract view and the precise detail.
Functional: what the system does (e.g. "search the appointments list"). Non-functional: constraints on the system/process - performance, security, usability, reliability (e.g. "respond within 2 seconds").
Checks the requirements are what the customer wants, complete, consistent and realistic; important because late fixes are expensive. Techniques: reviews/inspections, prototyping, test-case generation.
Observe people at work to reveal implicit knowledge, work-arounds and social factors. Limits: time-consuming, observer may change behaviour, cannot reveal future-system requirements.