In this chapter, we are going to talk about requirement analysis: how to understand and write what the client wants, while thinking in an iterative and incremental way. Remember, software development is a challenging task, and clients do not usually know what they actually want.