The agile method for writing software is discussed in this book. The elements of the method are: involving the whole team all the time, short releases, time estimations made public by the team member responsible for the task, measures of progress or performance visible to all, customer involvement, tests written before coding the pertinent module, and programming done by a pair of programmers.
Hazzan and Dubinsky have had experience with the approach both with university classes and with industrial groups. Three perspectives are used: human, organizational, and technological. Specific recommendations are stated; for example, have a “business day” every week or two, where all stakeholders, including the customer, review the development progress of the last iteration. Also at such meetings, participants reflect on progress to date and plan for the next iteration. A stand-up meeting should be held at the beginning of each business day, where each teammate talks about yesterday’s accomplishment.
Consistent with the organized approach, each chapter begins with an abstract, an overview, and a list of objectives. Chapters on learning that should be gradual, and on abstraction that reduces complexity, argue for agile design. Hardly any coding appears, but many examples of the authors’ teaching experience using the agile approach are given.
There is much insight into the design process in the book, but also much repetition. An instructor would probably be grateful for the details and frequent reviews, but a person seeking to learn about the agile approach might prefer a tighter exposition.