Software Development Books provides reviews on books covering all topics of software development and software engineering: UML, Agile Methodologies (eXtreme Programming, Scrum, TDD, FDD,..), Software Testing, Software Configuration Management, Database Modeling, Java, .NET, RUP, Software Project Planning and Management, Test Automation, Programming, Software Analysis and Design, Quality Assurance, Software Process Assessment and Improvement, Software Development Tools, Risk Management, Refactoring.
This book from Craig Larman and Bas Vodde is a classic example of the fact that it is better to teach somebody to fish than to give him fish. It emphasizes that it is important to “be agile” more than to “do agile”. Approaches like Scrum or Lean are more frameworks to think about continuous improvement than tools that should be applied blindly like cooking recipes. The book will therefore tell you that “large-scale Scrum is Scrum” or that lean is not just kanban or waste reduction. The first part of the book is focused on thinking tools (systems thinking, lean thinking, queueing theory) that are presented with software project management related examples. Those who are looking for practical advice should not believe that the book remains only at the conceptual level. The authors distill many “try…” and “avoid…” recommendations that will help you implement agile and lean ideas in your organization. The second part of the book is devoted to organizational tools and the final chapter proposes frameworks to adapt Scrum to larger contexts.
This book is a must for those who believe that software development project management goes beyond the simple application of “silver bullet” recipes. It is a rich source of both thinking and practical content that is well suited for non-linear reading. A very good “Scrum primer” chapter at the end of the book will provide an introduction for those who are not familiar with this approach and a large number of “recommended readings” items will allow readers to explore more in details each concept.
The second part presents the various practices that could be used in client-side programming and are related to Ajax, either directly or indirectly: events, data entry and validation, navigation, drag-and-drop, usability, state management. Each topic is clearly explained in a dedicated chapter. A chapter is also dedicated to integrating outside API like Yahoo! or Google maps. A last chapter is dedicated to a sample mash-up application.
Source code and sample chapters for this book can be find on http://www.manning.com/crane2/
As agile software development approaches are more and more adopted in software development organizations, the title of this book from Kurt Bittner and Ian Spence seems to be right on the target. The book contains two major parts. The first gives an overview of iterative project management. It defines the concepts, discuss controlling and gives tips to assess your readiness for iterative project management. The second is a more detailed walk-through to the planning and management of iterations at different levels. It provides also information on how to assess the results of iterations, discuss the relation between iterative project management and project scales. The last chapter is dedicated to the information needed to start your first iterative project. Finally, appendices provide material on use case development (the topic of a former book from the same authors), templates, checklists and an example of 50 pages.
The process behind the book is widely based on the RUP approach; thus practitioners of a “pure” agile approach could be disoriented by the content. However, this book contains very valuable and pragmatic material about managing iterative project management that could be used in any iterative context. It will also provide good transition information towards an iterative process for project managers that operate in a more traditional organization. With 600 pages, it is a not an easy book that is quickly digested. It will nevertheless helps you to improve you grasp on iterative project management, whether you read the book sequentially or you pick sections according to your current project management questions.
The goal of this book is to present good practices for software development that are based on OpenUP and RUP, but independently from these processes. The practices are grouped according to six principles:
* Demonstrate value iteratively
* Focus continuously on quality
* Balance stakeholder priorities
* Collaborate across teams
* Elevate the level of abstraction
* Adapt the process
For each practice, the authors propose a definition, practical advices on how to apply and adopt the practice, related practices and further readings. This material is very practical and contains many references to “real life” situations. The practices are selected from RUP and OpenUP and each chapter has a section devoted to compare the situation in other approaches, mainly XP and Scrum.
This book is full of practical knowledge and I will recommend it to every software developer. The only thing that bothers me is that the authors seemed to be forced to apply the “agile” label on their UP practices, with the implicit assumption that “if it is not waterfall, it is agile” and “if it is not agile it is not good”.
References on the Web:
Eclipse Process Framework Project (EPF)
This book presents a top-down approach to define an information system architecture at the enterprise level. It begins with a short presentation of the Zachman Framework that is used as the basic tool to analyse enterprise architecture. A first part is then devoted to present approaches used to express the strategy. A second part describes the techniques used to translate the strategic goals at the information system level with data and process modelling. Finally, a third part discusses current technologies and products involved to integrate applications and deploy the enterprise architecture. A CD-ROM is provided with the book. It contains problems and solutions to apply the concepts presented in the book, products information and some modelling tools.
Clive Finkelstein is a founding father of Information Engineering and he continues to apply its principles. The goal is to help large organisations to manage their complex information systems. Being strategic doesn’t imply always multi-years projects. The book states that the enterprise architecture portfolio plan for a large company can be created in 8-12 weeks. It also recommends 2 days workshops to define sub-systems that have a 3 months delivery objective. Many examples are provided in the book.
This book is recommended for people that are managing applications or portfolios of applications at the enterprise level. It provides also valuable knowledge for business analysts/architects with a detailed examination of the data and process modelling activities and the definition of coherent and autonomous sub-systems. The book has close to 500 pages of dense material, but each chapter could be used separately according to your needs.