On the Bookshelf
The books below are those which we have found the most useful in our work in the past few years. Note the order is alphabetical by author, not by ranking!
Follow the links marked "Read Agilier review" to read our own detailed reviews. The links marked "More details" give further information at Amazon.
Discovering Requirements: How to Specify Products and Services by Ian Alexander and Lierka Beus-Dukic
Ian Alexander's latest requirements book is a pleasure to read. He and his co-author have succeeded in producing a book that represents the latest thinking in requirements management.
Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle by Alexander and Maiden (editors)
This book shows practitioners how to design more effective systems by soliciting, analyzing, and elaborating stories from end-users. There are contributions from leading opinion-makers who present a range of scenario techniques: from the light, sketchy and agile to the careful and systematic. It includes real-world case studies from Philips, DaimlerChrysler, and Nokia, and covers systems ranging from custom software to embedded hardware-software systems.
Writing Better Requirements by Ian Alexander and Richard Stevens
There are plenty of books around covering techniques for gathering requirements; however, these tend to be focussed on a particular development method, such as the RUP or plan-driven; or focussed on a particular engineering discipline, such as software or systems engineering. Alexander and Stevens’ excellent book focuses simply on how to write better requirements - irrespective on what development method used or what product is under development.
Agile Modelling: Effective Practices for Extreme Programming and the Unified Process by Scott W. Ambler
This hands-on book describes lightweight modelling techniques for two popular development methodologies. There is plenty of good material here but there is duplication across the book and readers unfamiliar with XP or RUP may find the going hard.
Extreme Programming Explained: Embrace Change by Kent Beck
The book that kick-started the Agile software development movement in 1999 by describing the author’s techniques which he collectively called Extreme Programming (XP). Now into its second edition, it is recommended to all software development practitioners – you may not agree with all of the material but it will be thought-provoking reading.
The New Lean Toolbox by John Bicheno
Lean is a management methodology that seeks to maximise customer value by giving the customer the product or service they want in the most efficient (least wasteful) manner. The key in the title is “toolbox”; this book is not a primer but a summary of the latest thinking in the Lean methodology.
Balancing Agility and Discipline by Barry Boehm and Richard Turner
This excellent book convincingly argues that most real-world software-development projects will incorporate elements of both approaches. The authors correctly identify that a risk-based process is the best way to formulate a method for delivering a software-development project.
Writing Effective Use Cases by Alistair Cockburn
This is without doubt the definitive book on writing Use Cases - a popular technique to depict software requirements. Cockburn also describes how to apply Use Cases to describe business processes, thus providing a fascinating comparison to Rummler and Brache’s "Improving Performance".
Agile Estimating and Planning by Mike Cohn
This book gives a review of techniques used for planning and estimating in agile development projects. However, it goes much further and gives a readable approach to using Kano analysis for product development and detailed advice on how to proritise requirements according to financial benefit. Destined to become a classic.
Good to Great by Jim Collins
This book is a result of five years’ research into how ‘good’ company transforms itself to a ‘great’ one. Collins describes the qualities of the leaders of these companies, what visions they had and what methods they used.
Peopleware by Tom DeMarco and Timothy Lister
This year sees the twentieth anniversary of the first edition of Peopleware, deservedly one of the most popular books to consider the human side of software development. The book examines the non-technical factors that contribute to productive projects and teams, covering such areas as workspace layout, inflexible methodologies and inter-team dynamics.
Waltzing with Bears: Managing Risk on Software Projects by Tom DeMarco and Timothy Lister
This is a well-written and enjoyable read on about a subject that has been sorely neglected – software project risk management. The authors provide a number of case studies together with a breakdown of how their risk management techniques would work for each. Interestingly, one of their main techniques for risk reduction is the use of short iterative delivery – one key tenets of the agile development movement.
Assumption-based Planning by James A. Dewar
Assumption-based Planning (ABP) is the standard work in how to reduce the effect of unintended consequences when planning. Although the technique has its roots in high-level strategic activities such as military planning, it is also directly applicable to systems development activities. There are also interesting links between the techniques in ABP and between scenario-based software development.
Facts and Fallacies of Software Engineering by Robert L. Glass
This is a very useful book to have to hand when having an argument with your manager! It contains a list of facts (example: adding people to a late project makes a project later) and fallacies (example: tools and techniques – one size fits all). Glass gives the reasoning behind each and gives references to the original published research material.
Discovering Real Business Requirements for Software Project Success by Robin F. Goldsmith
A remarkable and little-referenced book that describes concisely how to elicit accurate business requirements for software projects. The author describes a simple process for tying business requirements to high-level business objectives and ways of measuring their successful implementation. Highly recommended.
The Software Requirements Memory Jogger by Ellen Gottesdiener
This book, although small in size, is large in scope; namely, to provide a comprehensive reference for requirements activities in all sizes of software development projects. This sounds a tall order but the reader is in safe hands as the author succeeds handsomely.
Business Process Change by Paul Harmon
There are many books describing business strategy, and many describing the design and development of IT systems. There are very few that link the two activities together - this book is the best that I have read to do so. It can be regarded as an update to Rummler and Brache’s “Improving Performance”. The second edition (2007) brings the material up to date in a fast-moving field – indeed over half of the material has been re-written.
Business Process Management by John Jeston and Johan Nelis
This book takes a holistic, organisational approach to BPM; automation via IT projects is rightly treated as one of only several possible mechanisms for change. The key point made is that the organisation’s business processes have to be improved prior to automation, otherwise all that automation will do is magnify the inefficiencies within the processes.
Balanced Scorecard by Robert Kaplan and David Norton
This is the original book by the creators of the Balanced Scorecard that shows how managers can mobilize their people to fulfill the company's mission. More than just a measurement system, the Balanced Scorecard is a management system that can channel the energies, abilities, and specific knowledge held by people throughout the organization toward achieving long-term strategic goals.
Agile Development by Craig Larman
Although this book is described as "A Manager’s Guide", it is an excellent introduction for business leaders that have had problems with traditional software development processes, that have heard of Agile processes as a possible solution, and would like to find out more. It is also an excellent reference for those who have practised Agile processes and would either like to improve their knowledge or would like to find solid evidence-based support to influence others.
Software Estimation Demystified by Steve McConnell
A much-overdue book that elaborates different techniques for estimating the size and cost of all sizes of software and systems engineering projects. More recent techniques from agile methods, such as story-point estimation, are compared alongside more established techniques such as function points.
Rapid Development: Taming Wild Software Schedules by Steve McConnell
A seminal book describing techniques for estimating projects more accurately and completing them to schedule. It is full of humourous, real-world examples and solid formulae for applying them. Although the biased toward software development, the book contains plenty of material applicable to other engineering disciplines.
Mastering Your Organisation's Processes by John O'Connell, Jon Pyke and Roger Whitehead
This book is sub-titled “A Plain Guide to Business Process Management” and is aimed at senior non-technical managers within an organisation who are planning to introduce a system to automate and manage their business processes.
Business Model Generation by Alexander Osterwalder and Yves Pigneur
Billed as a book for "visionaries, game changers and challengers", this introduces a useful new modelling concept: the Business Model Canvas - described as a shared language for describing and visualising business models.
Lean Software Development: An Agile Toolkit by Mary and Tom Poppendieck
This is one of those essential “cross-over” books that builds bridges between engineering disciplines. Here, the Poppendiecks explore the principles derived from Lean Manufacturing, as developed by Toyota in the 1950s, and apply them to modern software development.
Agile Project Management: Running PRINCE2 Projects with DSDM Atern by Keith Richards
This book’s aim to show how these two internationally-renowned project methods can be used together to improve the chance of delivering successful projects. It gives a way of integrating the PRINCE2 project management method with a highly-configurable and increasingly-popular delivery method, Atern.
Fearless Change: patterns for introducing new ideas by Linda Rising and Mary Lynn Manns
This book gives real-world advice for practitioners who seek to introduce organisational change. Some techniques will be familiar to some readers but most will learn something new that will be immediately relevant their work.
Improving Performance: How to Manage the White Space on the Organization Chart by Gary A. Rummler and Alan P. Brache
Another essential “cross-over” book, this time linking business process re-engineering and software development. The authors depict business processes in terms of Process Maps (“swimlane diagrams”) – software development practitioners will recognise these as the forerunners of UML activity diagrams. Anyone puzzled as to how to trace business activities though to software implementations will find the book a revelation. It is book that inspired Harmon’s book “Business Process Change”.
Agile Project Management with SCRUM by Ken Schwaber
This is the book that introduced the popular agile software development methodology, Scrum. It explains how to deliver quality software in short iterations or “sprints” with the team having a daily stand-up meeting or “Scrum”. The project manager role is renamed the “ScrumMaster”. The unusual rugby-based names aside, Schwaber produces persuasive statistics to show the success of the approach.
Freedom from Command and Control by John Seddon
This book has the subtitle “A better way to make the work work”. It describes an way of improving performance of service-based organisations. Seddon’s approach is based on the work performed by Taiichi Ohno at Toyota in the 1950s. Seddon proposes that his methodology would help improve the performance of some the UK's poorly-performing public-sector organisations.
Systems Thinking in the Public Sector by John Seddon
This new book by John Seddon continues his theme from his previous work which dealt with the application of “systems” thinking to organisations. In this new book he turns his attention toward recent UK public sector reforms, which have seen some of the biggest failures in service delivery in the last few years.
Joint Application Development (JAD) by Denise Silver and Jane Wood
This book details the collaborative, structured workshop-based approach aimed at eliciting software requirements from a large stakeholder community in a short space of time. Essential for those planning or running a JAD session.
Troubled IT Projects by John M. Smith
This book aims to show how “troubled” projects can be turned-around and more importantly, prevented in the first place. Smith’s first task is to define what he means by a “troubled” project - namely one that has one or more of the following characteristics...
Performance-based Earned Value by Paul Solomon and Ralph Young
This book is aimed at experienced practitioners of Earned Value Management (EVM). The authors contend that EVM has its limitations, namely, that it does not include guidance essential for a successful systems engineering project, namely: the integration of requirements, risk management and quality aspects...
Value Stream Management by Dan Tapping
A useful primer for less experienced practitioners, Value Stream Management describes a complete system that provides a clear path to Lean implementation, ensuring quick deployment and measurable benefits. It links the metrics and reporting required by management with the Lean tools needed on the manufacturing floor.
Discipline of the Market Makers by Michael Treacy and Fred Wiersema
This often-quoted book is devoted to investigating the characteristics of corporate market-leaders and what tactics are required for those aspiring to become market-leaders. The authors argue that in order to succeed in their market-space, companies have to choose to excel at one of three disciplines:operational excellence, customer intimacy or product leadership.
Lean Thinking by James Womak and Daniel Jones
This thought-provoking book builds on Womak and Jones’s previous ideas on the supply-chain improvement, and applies them to the issue of improving consumer service-provision. It will suit a wide readership, from small business owners to senior executives in large organisations, who seek to improve the service they give to their consumers. It will also prove useful for practitioners who seek to understand the latest thinking from two of the recognised leaders in the field.
The Machine that Changed the World by Womak and Jones
The book that "re-launched" the Lean methodology back into the West by describing the success of Japan's car manufacturers. Lean is a management technique that focuses on improving business performance by concentrating on customer value.