First page Back Continue Last page Text

Notes:


On a small project where the customer, developer and user are all the same person it is possible to succeed without any consideration of development process, or addressing issues of planning or communication.

In the past much of the literature on development processes is based on the experience of large projects (which require a lot of documentation to support their communications). Such projects require a lot of effort just to track and maintain their documentation, and this is a feature that is easily fastened on by those trying to understand what is happening.

As the size of the project grows (either in complexity or number of people) this initially remains true. But things change: a single phrase on a TODO list is fine for one person, but it needs explanation for two and on a large project could become several large documents (for example: a business requirements description, a UI prototype, a UML model, an series of APIs, some implementation code and test harnesses, a test plan and a user manual).

These documents are the tangible results of enabling communications within the project. It is common practice to measure the progress in terms of these tangible results (e.g. the number of screen layouts agreed with the customer). I'm not disputing the utility of this, but counting these documents it is not measuring the communication itself. It is the communication itself that is important – and this is overlooked. (It is very easy to see the objective to be an agreed requirements document and ignore the learning that all parties undergo during the process of drafting and redrafting it.)

Various “traditional” OO methods attempt to reduce communication problems by using techniques that limit the coupling between different areas of work, by keeping the content of a piece of work coherent and by having notations for expressing commonality.

Agile methods focus on communication and actively eliminate documentation activities that are not needed to support it. Some of the Agile methods (for example XP) are targetted at small, highly skilled, diciplined teams where face-to-face discussion is used almost exclusively as the means of communication – apparently obviating the need for other forms of documentation.