This book describes pragmatic instruments and methods that enable business experts and software engineers to develop a common understanding of the software to be created, to determine their key requirements, and to manage the project in a way that fosters trust, encourages innovation and distributes risk fairly between clients and contractors. After an introduction to the fundamentals of agile software development in Part I, Part II describes...