This chapter discusses techniques for discovering requirements for new systems. It defines requirements and differentiates between functional and non-functional requirements. It then describes several fact-finding techniques analysts can use to identify requirements, including sampling documentation, observation, interviews, questionnaires, prototyping, and joint requirements planning sessions. It emphasizes the importance of documenting requirements and managing changes to requirements over the system development lifecycle.