The following are the books, etc., found in the references
section of A Practical
Guide to Feature-Driven
Development (APGTFDD). They are listed here for the convenience
of those wanting to read further on a particular related subject.
Where a later edition of a particular book exists I have listed
that instead of the precise one listed in APGTFDD. I have also
added one or two that would have been in the reference list if they
had actually been published at the time. While I would recommend
most of the books below, that is not true of all of them; some are
simply books I referred to for one reason or another when writing
APGTFDD. Hopefully, the distinction between the two is clear
below.
A number of the books in the list were recommended to the team
on the first Feature-Driven Development (FDD) project in Singapore
by FDD's creator, Jeff De Luca. These were obviously influential in
the development of FDD and as a result ended up being referenced in
APGTFDD, and have found a place on my bookshelf. Others I'd met
already or read during my time at TogetherSoft.
The list is organised into the following categories ...
...but clicking on the reference tag used in A Practical
Guide...immediately below will take you to the relevant book
[Alexander] [Alur][Atels] [Beck 00] [Beck 01] [Berg] [Brooks] [Coad 96] [Coad 97] [Coad 99] [Crosby] [Cusumano] [De Marco]
[Dobbs] [E & Y] [Fagan] [Fairley] [Fowler][ Freedman] [Gamma] [Gilb 88] [Gilb 93] [Hohmann] [Jacobson 92] [Jacobson
99] [Jones
][Kassem] [McConnell
93] [McConnell 98] [Miller]
[ODR] [Palmer] [Paramount Picture
Corporation] [Rosenberg] [Satir]
[Tennyson] [Tolkien] [Tufte] [Weinberg 92] [Weinberg 98]
Analysis and Design
Patterns
|
A
Pattern Language: Towns, Buildings, Construction
by Christopher
Alexander
amazon.com,
amazon.co.uk
Christopher Alexander's work on patterns is commonly
referred to
from books and papers on software analysis and design patterns.
This must astonish him because he was talking about patterns in
buildings and towns, not software. He says, 'Each pattern describes
a problem which occurs over and over again in our environment, and
then describes the core of solution to that problem, in such a way
that you can use this solution a million times over without ever
doing it the same way twice".
|
|
|
Core
J2EE
Patterns: Best Practices and Design Strategies
by Alur, Malks, Crupi
amazon.com,
amazon.co.uk
A guide to the most popular and useful architectural
design
patterns for the J2EE world. As Martin Fowler says in his foreword,
"This book captures vital experience for J2EE development. Don't
build an enterprise bean without it". The book presents 21 patterns
organised by tier (logical
layer): presentation, business and integration.
Book site: www.corej2eepatterns.com
|
|
|
Design
patterns : elements of reusable object-oriented
software
by Gamma, Helm, Johnson,
Vlissides
amazon.com,
amazon.co.uk
The design patterns described in this book by the Gang
of Four
(GoF), the popular name for the four authors, have almost become
part of software design folklore. This book brought the idea of
software design patterns into mainstream software development. The
book has two small disadvantages. Published in 1995 before the
emergence of UML, the notation used in the book is based on the
obsolete OMT notation, and many of the examples relate to building
Graphical User Interface toolkits and Word Processing software, not
the sort of software the average developer has the opportunity to
design. Nevertheless, it is the original that spawned a library's
worth of software pattern books, conference papers and web
sites.
|
|
|
Patterns of Enterprise Application
Architecture
by Fowler
amazon.com,
amazon.co.uk
Martin Fowler doing what he has become renowned for,
cataloging
and presenting patterns and best practice, the stuff as a developer
you really should already know, in an accessible and readable way.
There are 51 design patterns from both Java and .Net worlds,
covering various topics from the almost ubiquitous money and value
object patterns to the more complicated Data Mapper patterns used
to 'move data between objects and a database while keeping them
independent of each other and the mapper itself'. Published in
2003, it is a great starting point for anyone wanting to explore
the design patterns commonly used when building business
applications.
Book site: martinfowler.com
|
|
|
Java
Modeling in Color with UML: Enterprise Components and
Process
by Coad, Lefebvre, De
Luca
amazon.com,
amazon.co.uk
The material in the book builds on work described in
Peter
Coad's previous books and was inspired by work done with Peter on a
project in Singapore where co-author Jeff De Luca was the project
manager and I was the development manager. Those who have spent the
small amount of time required to really understand and try out the
modelling
in colour technique generally find it very powerful and
helpful.
Read a longer
review...
|
|
|
Object
Models: Strategies, Patterns, and Applications
by Coad, North,
Mayfield
amazon.com,
amazon.co.uk
This book uses a number of simple example applications
to
introduce a set of strategies and patterns for building object
models. This is followed by a reference section that lists the
strategies and patterns discussed. Possibly due to my level of
experience at the time with object modeling I had to frequently put
this book down to think through the points raised. It took me
several readings to fully absorb all the content. I have returned
to this book again and again over the years because of the richness
of the content.
Read a longer
review...
|
|
People
and Process
|
The Mythical Man-Month: 20th Anniversary
Edition
by 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 1986, 'No Silver Bullet' essay 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 thirty years later.
Read a
longer
review...
|
|
|
Peopleware:
Productive
Projects and Teams
by DeMarco, Lister
amazon.com,
amazon.co.uk
Another classic!
A very interesting and thought provoking look at
software
development from a psychological and sociological perspective.
The premise behind the book is "The major problems of
our work
are not so much technological as sociological in nature".
|
|
|
Quality
Software Management: Volumes
1-4
by Weinberg
amazon.com,
amazon.co.uk
A series of four books on effective software development
management. Jeff De Luca says (www.featuredrivendevelopment..com),
"Anything written by Weinberg is worth reading". These four books
are certainly no exception. 'Quality software management" means
both "the management of quality software" and "quality management
in the software business"...the two are inseparable'.
Author site: www.geraldmweinberg.com
|
|
|
Journey of
the Software Professional: The Sociology of Computer
Programming
by Hohmann
amazon.com,
amazon.co.uk
Another book covering the physiological and sociological
aspects
of software development.
Author site: www.lukehohmann.com
|
|
|
MICROSOFT
SECRETS : How the World's Most Powerful Software Company Creates
Technology, Shapes Markets, and Manages People
by Cusumano
amazon.com,
amazon.co.uk
I have not read this book. I caught the quote I use in
APGTFDD
in an article on the internet. It fitted with what I was trying to
say and reinforced techniques that I'd watched Jeff De Luca use
when hiring for the original FDD project in Singapore, and have
used myself since; the ability and desire to solve problems and
learn being crucial to a candidates success rather than knowing a
set of specific answers.
|
|
|
The
Psychology of Computer Programming: Silver Anniversary
Edition
by Weinberg
amazon.com,
amazon.co.uk
Used in APGTFDD to underline the fact that psychology is
plays
an enormous part in software development projects. The first
edition of book was written in 1971 so much of the technology
referred to is obsolete but the psychological principles remain
true.
Author site: www.geraldmweinberg.com
|
|
|
Satir Model:
Family Therapy and Beyond
by Satir, Banmen, Gerber,
Gomori
amazon.com,
amazon.co.uk
Like [Alexander] in the
patterns
community, this work is referred to by everyone writing about
managing change in software development from [DeMarco]
to [Weinberg] but it has nothing whatsoever
to
do with software development per se.
In the end, it's all about the people not the technology.
|
|
|
Extreme
Programming
|
Extreme
Programming Explained: Embrace Change by Beck
amazon.com,
amazon.co.uk
Extreme programming became popular about the same time
as FDD and generated far more hype. Worth
reading to compare and contrast with FDD but having tried both
processes on real projects, I have found pair programming to be no
substitute for the design and code inspections used in FDD. In
fact, both of the so-called XP projects I have worked on dropped
constant pair programming after a while because it was not
providing the benefits claimed. Also in both cases, collective
ownership slowly deteriorate into individual ownership. Without
either practice in place, both projects were left bereft of any
form of checks for design and code quality and suffered as a
result.
|
|
|
Planning
Extreme Programming
by Beck, Fowler
amazon.com,
amazon.co.uk
I bought this book to read on a plane trip across the
USA but
finished it well before we 'started our descent'. The only real
points of interest to me were the definitions of a user story that
had evolved since the first edition of Extreme
Programming Explained, and a smile of recognition while reading
the section about asking developers what percentage complete they
are on a task.
Mike Cohn has written a much more thorough treatment of
the
topic. Unless you are one of those people who must have the
complete Addison Wesley Extreme Programming series, buy [Cohn]
instead.
|
|
|
A Practical
Guide to eXtreme Programming
by Astels, Miller,
Novak
amazon.com,
amazon.co.uk
Referenced purely because it is the sister book to A Practical
Guide to Feature Driven Development written as part of
the Coad Series by
colleagues at TogetherSoft in 2001. I have not read this book
because I am still waiting for one of the authors to send me a
signed copy in return for me sending them a signed copy of
APGTFDD.
The other intended companion book, A Practical Guide to the Unified
Process, never made it to publication. I would like to think
the authors succumbed to analysis paralysis while writing detailed
use case specifications but I doubt that was the real reason.
|
|
|
Agile Estimating
and Planning
by Cohn
amazon.com,
amazon.co.uk
As Jim High smith says in his foreword, "Agile planning
is
deceptive". This book leaves you in no doubt that agile approaches
require planning and that the planning techniques used are
sometimes, "easier said than done".
Determining the business value and estimating the size
of a user
story, backlog item, or feature is not necessarily easy. Expecting
a customer to simply walk into a meeting and reel off lists of
users stories and backlog items without any preparation is also
unrealistic. Agile planning requires work and discipline.
Author site: www.mountaingoatsoftware.com |
|
Java
|
Java
Design: Building Better Apps and Applets
by Coad, Mayfield,
Kern
amazon.com,
amazon.co.uk
The first edition of this book was published in 1996,
and was my
first Peter Coad book. I read it in a single weekend. I could not
put it down. So much of it spoke directly into my situation as a
lead developer on my first Java project. Having battled through the
usual texts trying to learn to think and program in an
object-oriented way with C++ for the previous two years, this book
was simply a pleasure to read.
Unfortunately, Java has moved on considerably since the second
edition was published and there has been no third edition. The
design principles remain valid but the majority of the detail is
very out of date.
Read a longer
review...
|
|
|
Advanced Java 2 Development for Enterprise
Applications
by Berg
amazon.com,
amazon.co.uk
Cliff Berg was the Java Language
Guru on the project in Singapore that I worked on with Jeff
De Luca, and Peter Coad. A little of the work was also outsourced
to the company he worked for at the time, DigitalFocus (now
CommandInformation www.commandinformation.com),
who are used as an example in APGTFDD when discussing
attracting good developers to an organisation.
Although this is a second edition, the content is now out of date.
Cliff has written a more recent book called High-Assurance Design
and is founder and president of Assured By Design (www.aasuredbydesign.com). |
|
|
Designing
Enterprise Applications with the Java(TM) 2 Platform (Enterprise
Edition)
by Kassem
amazon.com,
amazon.co.uk
An early attempt to describe the best practices for developing
with J2EE.
Superseded by [Alur]
|
|
|
UML and
Use Cases
|
UML Distilled:
A Brief Guide to the Standard Object Modeling
Language
by Fowler, Scott
amazon.com,
amazon.co.uk
Now in it's third edition, this is still one of the best
introductions to the Unified Modeling Language (UML), the most
widely used graphical notation standard for depicting software
design.
If you are new to UML then this book will teach you all
you need
to know to use UML effectively in half the pages required by most
other texts on the topic.
If you are looking for in-depth explanations of the new
constructs and diagrams added for UML 2.0, then you need a larger
book like [Booch]
or [Rumbaugh].
Author site: martinfowler.com |
|
|
Advanced Use
Case Modeling: Software Systems
by Armour, Miller
amazon.com,
amazon.co.uk
I have not had good experiences with use cases. That
does not
mean I think they are without value. Since use cases are as much an
expression of requirements as the user stories, backlog items, and
features of popular agile approaches, they could be used in a
highly iterative software development approach. The problem is they
are so often used as a straight replacement for a traditional
functional specification.
Most of my bad experience stems from use case details
being
written by the wrong people, at the wrong time, and inevitably
containing the wrong kinds of information. T
This book contains a wealth of sensible advice for those
seeking
to be successful with them.
|
|
|
Object-Oriented Software Engineering: A Use Case
Driven Approach
by Jacobson
amazon.com,
amazon.co.uk
The original book on use cases and use case driven
development.
The book is really only of interest from a historical
perspective now and superseded by the author's more recent book [Jacobson
99]. Personally, for use cases I prefer [Miller]
for which Ivar Jacobson wrote the
foreword.
|
|
|
The
Unified Software Development Process
by Jacobson, Booch,
Raumbaugh
amazon.com,
amazon.co.uk
The official guide to the Unified Process from the three
authors
of the Unified Modeling Language (UML). Published in 1999, there
are now more recent alternatives for those interested in exploring
this subject, such as:
While I have used use-case driven processes in the past,
I have
not had any specific experience with UP or its commercial
counterpart, RUP (Rational Unified Process) and have not read any
of these recent books on the topic.
|
|
|
|
|
Quality and Inspections
|
Quality Is
Free
by Crosby
amazon.com,
amazon.co.uk
A classic book on quality improvement in business and one of my
co-authors favorites. I have not read this book myself being
content with Weinberg's summaries of Crosby's work and its
application to software development [Weinberg] |
|
|
Code
Complete
by Crosby
amazon.com,
amazon.co.uk
One of those books that every trainee developer and IT graduate
should be forced to read. In an ideal world, if you didn't know
this stuff, you would have no right to call yourself a software
developer and would not be allowed anywhere near a programmer's
editor and compiler. |
|
|
Software
Inspection
by Gilb, Graham
amazon.com,
amazon.co.uk
A definitive work on software inspections. Probably more than you
ever want to know about the subject. If you read this and are still
not persuaded that some sort of peer review or inspection is a good
idea, I doubt anything else will convince you. |
|
|
Principles Of
Software Engineering Management
by Crosby
amazon.com,
amazon.co.uk
I've only read the section in this book on inspections. Jeff De
Luca was force-fed the development team in Singapore this stuff
long before he created FDD. Not particularly exciting fare but very
good for you! |
|
|
Design and Code
Inspections to Reduce Errors in Program
Development
by Fagan, IBM Systems
Journal
15(3): 182-211 (1976)
A quote 'reused' from a Jeff De Luca presentation on code
inspections.
|
|
|
Software
Inspections: An Effective Verification process
by Freedman, Weinberg,
IEEE
Software May (1982)
A quote 'reused' from a Jeff De Luca presentation on code
inspections.
|
|
|
A
Process-Integrated Approach to Defect Prevention
by Jones, IBM Systems
Journal,
24(2):150-167 (1985)
A quote 'reused' from a Jeff De Luca presentation on code
inspections.
|
|
|
Others
|
Dr
Dobbs
Cliff Berg was the Java
Language Guru on the project in Singapore that I worked on
with Jeff De Luca, and Peter Coad. He has written a number of
articles for the DR Dobbs magazine/web site. To find them go to www.ddj.com
and search for 'Cliff Berg'
|
|
|
Ernst & Young ,
US
Organizational Development Research, Inc., (ODR)
Organizational Change Management (OCM), 1994.
One of my co-author's references. I have no further information on
this one.
|
|
|
The CoadLetter
2000-2002
The old TogetherSoft monthly technical newsletter that I
edited
(and largely authored) for nearly two years. Most of the issues can
be found by searching for Coad on the CodeGear developer network
site (dn.codegear.com) or
browsing this site.
|
|
|
ODR®-USA, Inc. Organizational
Change Management (OCM) Course
One of my co-author's references. I have no further information on
this one.
|
|
|
Software
Project Survival Guide
by McConnell
amazon.com,
amazon.co.uk
One of my co-author's references. I have not read this book. |
|
|
Software
Engineering Concepts
by Fairley
amazon.com,
amazon.co.uk
My software engineering course text book from the dim,
distant
past when I was a student at Keele.
This is mainly an excellent, if somewhat dry,
description of
state of the art, phased (waterfall) development circa 1985, but
Fariley notes the need for managers to deal with 'the factors that
motivate and frustrate programmers'.
|
|
|
Star Trek III -
The Search for Spock
Paramount
amazon.com,
amazon.co.uk
This is probably the worst Star Trek movie (although 'The Final
Frontier' comes pretty close). However, Scotty's quip about always
multiplying his estimates by four to maintain his reputation as a
miracle worker reminds me of developers who tell me they always
double their original estimates (usually because they know their
managers will insist on halving them).
|
|
|
Envisioning
Information
by Tufte
amazon.com,
amazon.co.uk
Not read this personally and do not have a copy. It comes highly
recommended, however, by Jeff De Luca who is rarely wrong about
such things.
|
|
|
The Lord of
the Rings
by Tolkien
amazon.com,
amazon.co.uk
Simply in a league of it's own. Like any aging software developer,
this is required reading, in the same way that Star trek and Star
Wars are required viewing.
|
|
|
The Charge of
the Light Brigade
by
Tennyson
I studied this at school in English Literature. I had it as the
wallpaper for my computer screen during the one project I have
worked on that has failed to deliver. However, it seems even more
appropriate for development teams who use agile as an excuse to
dive into producing coding without any thought about design,
quality, or documentation.
Read the
poem...
|
|