Figure 1-6. Initial design document
Figure 1-6 shows a sketch of this new application on the right, decorated with numbered points. On
the left, each point is described. Little details are added as the designer thinks of them; for example, it
occurs to our imaginary designer that the file names will not necessarily fit within every circle. So she
comes up with two strategies for displaying the names. She is also familiar with the practice of having
both a text field and a button for selecting directories, so she includes that in the design.
While it would be possible to simply go and create this application, why not give our designer some
feedback from the developer's perspective? This will give her a chance to iterate over her design and
make improvements. I would bring up the following points.
What happens if the user types a bad path into the text field?
How exactly are those circles laid out, are they just random? Can they overlap?
What if the file name is really long? Should we abbreviate?
• Does the application remember which directory it was looking at between runs?
If the team agrees that regardless of the issues brought up, the basic design is solid enough to move
forward, then a graphical designer can start doing his work while the developer gets started on
evaluating technologies and creating the first version in code. Figure 1-7 shows the first mock-up by our