Software Development Books

Software development books I would buy again if I lost them.

If I lost all my software development books, these are some of the ones I would buy again, in no particular order:

Enterprise SOA:
Service-Oriented Architecture Best Practices

Krafzig, Banke, Slama
amazon.com, amazon.co.uk

One of the best books I've read on the subject. I particularly like the categorisation of services into basic, intermediary, process-centric and public enterprise services. Referred to extensively during recent work at I did at one of the world's largest telecommunication companies.

Book site: www.enterprise-soa.com

Java Modeling in Color with UML:
Enterprise Components and Process

Coad, Lefebvre, De Luca
amazon.com , amazon.co.uk

The book defines four major archetypal classes found again and again in problem domain object models, the typical attributes, operations, associations, and collaborations for objects of those classes. It follows this with example after example from typical application domains. It finishes with a brief introduction to feature-driven development.

Streamlined Object Modeling:
Patterns, Rules, and Implementation
Nicola, Mayfield, Abney
amazon.com, amazon.co.uk

Jill Nicola and Mark Mayfield are previous co-authors of Peter Coad. In this book they describe and explore 11 elemental object-oriented domain model patterns. Interesting to compare and contrast with Peter Coad's Java Modeling in Color with UML.

Book site: www.streamlinedobjectmodeling.com

Domain Driven Design: 
Tackling Complexity in the Heart of Software
Evans
amazon.com, amazon.co.uk

For those who have been told that agile software development and especially eXtreme Programming do away with the need for analysis and design techniques like object modelling and notations like the Unified Modelling Language (UML), this book comes as a bit of a surprise.

Book site: www.DomainDrivenDesign.org

A Practical Guide to
Feature-Driven Development

Palmer, Felsing
amazon.com , amazon.co.uk

Feature-Driven Development is a pragmatic, agile development process. It differs from other agile process in that it promotes upfront domain object modeling, code ownership and the use of design and code inspections.

Book site: www.step-10.com/...

Object Design:
Roles, Responsibilities and Collaborations

Wirfs-Brock, McKean amazon.com , amazon.co.uk

Interesting stuff. Are the typical attributes and operations in Peter Coad's class archetypes reminders of typical responsibilities?

Patterns of Enterprise Application Architecture
Fowler
amazon.com
, amazon.co.uk

Martin Fowler doing what he does best; collecting and cataloguing best practice in a very readable format.

Java Design:
Building Better Apps and Applets
Coad, Mayfield, Kern
amazon.com, amazon.co.uk

Java has moved on considerably since the second edition of this book was published and, unfortunately, there has been no third edition. This is a shame because the design principles discussed still hold true.

Quality Software Management:
Volumes 1-4
Weinberg
amazon.com, amazon.co.uk

Actually a series of four books on producing  higher quality software  through higher quality management. Should be mandatory reading for any software development management or leadership role and anyone trying to improve their team's or organisation's software development processes.

The Mythical Man-Month
Brooks
amazon.com
, amazon.co.uk

The book consists of three hundred pages split into fifteen essays that formed the original edition published in 1975 plus four new chapters that add the 'No Silver Bullet' essay from 1986 and three retrospective chapters. What is so disappointing about this book is that so few of the lessons have been genuinely absorbed by the industry over thirty years later.

Peopleware:
Productive Projects and Teams

DeMarco, Lister
amazon.com, amazon.co.uk

Interesting and thought provoking look at improving software development from a psychological and sociological perspective. More mandatory reading for any one trying to improve their team's or organisation's software development processes.

Agile project Management with Scrum
Schwaber
amazon.com
, amazon.co.uk

Appendix A of this book lists the rules of Scrum very concisely and clearly. Does for Scrum what Jeff De Luca's five process descriptions do for feature-driven development. The rest of the book provides the rationale and justification behind the rules and plenty of examples.


 

UML Distilled:
A Brief Guide to the Standard Object Modeling Language

Fowler, Kendall Scott
amazon.com, amazon.co.uk

The Unified Modeling Language (UML) has been the dominant standard notation for modelling software systems for over decade. This book in its third edition remains one of the best introductory overviews of the notation and its pragmatic use.

The Unified Modeling Language User Guide
Booch, Rumbaugh, Jacobson
amazon.com
, amazon.co.uk

The best 'long' book on the second major release of UML, the industry standard software modeling notation. For those who need more detail and more complete coverage than found in shorter introductions like UML Distilled. The book provides a welcome alternative to the formal specification of the standard itself. Brooks warned about version two!


 

Design Patterns:
Elements of Reusable Object -Oriented Software

Gamma, Helm, Johnson, Vlissides
amazon.com, amazon.co.uk

The book that brought the idea of design patterns in software to the mainstream. Unfortunately it pre-dates widespread use of UML and programming languages like Java. If I lost this book,  I would probably buy a more up to date incarnation based on a language like Java or C#. However, this is the original.

Object-Oriented Software Construction
Meyer
amazon.com
, amazon.co.uk

If you can get past the slightly academic writing style, this is a comprehensive theoretical treatment of object-oriented design and programming. The book provides considerable food for thought for those interested in a more purist approach to OO programming than provided by the C-inspired languages such as Java and C#.


 

Copyright 2010 Stephen R. Palmer. All rights reserved.