This chapter examines the human aspect of software engineering from the perspective of the customers ”the people who use software products. It focuses on how users and developers deal with defining software requirements in a way that fulfills customers needs. Indeed, the process of defining customers requirements is viewed here as a process in which both the customer and the developers participate. This approach was illustrated in previous chapters as well; for example, in Chapter 2, Software Engineering Methods, in which eXtreme Programming (XP) is discussed.
Requirements are discussed in this chapter by looking at two topics: data collection tools and requirements management. The former deals with how to collect data in order to define customers requirements; the latter deals with how, in practice, software developers manage the development of the defined requirements.