Notes by Stephen R. Palmer
A software process functions within a context, that of a software development project. Jeff De Luca, FDD's inventor, has told me on more than one occasion that he sees his job as a project leader as building and maintaining a system to build and maintain a software system. Jeff saw his role as more than building and reporting on a plan in Microsoft Project, tracking a budget, and logging issues and risks. While our goal as developers was to build the software system required by our customers, his goal was to build a system out of people, processes, and tools that could do just that in a cost-effective and timely manner.
Just like good software designers, good project leaders have collected and become adept at applying an experience-based set of patterns that solve common problems. The difference is that these are project structure and behaviour patterns not software structure and behaviour patterns.
The participants in project patterns are not services, classes, functions, data structures and algorithms. Instead the ingredients of a software project comprise things like:
The statement of purpose does need to be sensible. It is
nonsense to define a statement of purpose for a project that is not
achievable within a reasonable time frame. For very ambitious
programs, it is often better to identify several projects that can
be run concurrently or as follow-on efforts. As we will see FDD
supports this need very nicely indeed. The statement of purpose may
also start off somewhat vague. Chapter seven suggests a useful
exercise to help refine the statement of purpose.
The list of roles of a project team is like the players' positions
in a sports team or the parts in a play or symphony. We need the
software development equivalent of players, actors and musicians to
cast in those roles.
The processes describe the rules of the game, the acts of the play
or the movements in a symphony. They describe the framework through
which all work is performed.
The technologies are the players' equipment, the props used in the
play or the musicians' instruments.
Likewise the architectural framework is the marked pitch, playing
area or the stage and scenery.