Agile Software Development
Автор: Alistair Cockburn /
CHAPTER 2. Individuals Working Better in Some Ways than Others
-
Часть 2
-
An architect designing a hospital told me that he never shows the customers a computer-drawn plan of the building. The customers view it as too far along to change, no matter what he says.
He therefore always draws the plan in pencil, so they feel comfortable drawing over it. An extension of the low-fidelity mock-up technique is one called informance (Burns 1994). An informance is an interactive performance, showing the not-yet-built system in use in its predicted future setting, using a mock-up so concrete that people can interact with it. Informance allows trial users to live the life of the future user in a realistic future environment.
One reported informance showed a hair stylist using a proposed system while cutting hair. In another, the group built a walk-through apartment in which actors playing patients used computers to talk with each other and build community while staying in bed.
By making the informance setting concrete, everyone involved in development can see the strong and weak points of the proposed idea.
A popular design technique that takes advantage of tangibility is the Class-Responsibility-Collaborator (CRC) card technique mentioned earlier. In this technique, an index card is put on a table to represent a specific instance of an object nominated for use in a design. The designer picks the card up and moves it around, at the same time discussing its behavior with respect to the other cards on the table.
CRC cards are concrete and tangible examples that let designers work multimodally through concrete situations. People consistently report that moving the cards on line reduces their effectiveness.
There is something about picking up a couple of cards and saying, "This object sends. .. this other object. .. the request to do XYZ. .. No, that's not right, let's try another one, " that triggers an emotional, physical response about the quality of the design.
Something to Alter
Copying and altering previous work is a standard mode of operation used almost daily by people in all fields.
Faced with starting a new letter, invoice, proposal, document, program, or project plan, a person finds a previously done sample, copies it to a new work area, and changes all the particulars until the work product becomes what he needs. A cook will copy a recipe and vary just one part. A project manager takes over the previous project’s plan and changes the line items to reflect the current project. A requirements document or database schema gets similarly copied and altered. Children (and adults) learn hypercard programming by copying someone else's program and guessing at the simple things to change. The TalkingParrot Program
My first Smalltalk program was a direct-manipulation editor for sequence charts.
Not yet knowing Smalltalk, I copied the TalkingParrot example from the Smalltalk tutorial and then changed every line in the program until I got my editor. Nothing was left of the original TalkingParrot except its use of the sophisticated MVC Model-View-Controller architecture (which I had never heard of, at the time).
A year later, my colleagues were having trouble changing their program to accept input from the network instead of from the keyboard, and I wasn't. It turned out that the MVC architecture I had inadvertently picked up from TalkingParrot was what was making my life so easy. This copy-alter technique has been applied even to completed applications.
Airline companies traded frequent-flyer applications in the late 1990s. A frequent flyer application, by itself, provides little competitive advantage to an airline company. So one company would recover development costs by selling its frequent flyer application to its competitor. The buyer received a graphical model that generated application code that would need tuning, and the actual, generated and tuned code from the previous company. The buyer recognized that the application would not be quite correct but that it would take less effort to alter it than to build it from scratch.
Glass (1995, p. 182) tells that a first design model
"may very well be a reused model rather than one created by the designer in response to this particular problem. Visser (1987) discovered that, for problems encountered before, designers employ an 'example program' as their starting point, and then observed, 'Designers rarely start from scratch. '"
You can and should start taking advantage of people's strengths in copying and altering work samples. Create a small, online library of real samples for work products produced on your (or some previous) project. Other people can then simply copy one of the samples as the base for their own work. In copying it, they will pick up both the structure and style from the sample, while changing the details to fit their purpose.
The implication is, of course, that you would like the work samples you collect to be relatively "good, " having structure and style you don't mind having copied. They needn't be perfect, of course, just "good enough. "
One book already does this. Object-oriented Development: A Workbook-based Approach (IBM Object-Oriented Technology Center 1997? ?)]is a collection of work product samples used by IBM's OOTC on various projects during the mid-1990s. The OOTC avoided fighting over methodology by providing examples of various work products and letting each project team choose the examples they felt compelled to use.
-
Закладки
1. Project name, job of person interviewed (the interviewee…
In arguing for the Theory Building View, the basic issue is…
Walk around your place of work. Notice · The convection currents…
The third problem is absence of feedback from the downstream…
After much coaching for six months, his programs still…
Figure 4-1. Elements of a methodology. Roles. Who you employ,…
For us as designers, it was possible to express both propositional…
The main question is, if you were funding this project, which…
The chart shows the state of the user stories being worked on…
That it is people who design software is terribly obvious.…
We see an example of needing these normalizing rituals in…
The industry is littered with projects whose sponsors did not…
On a new project, I would use Crystal Orange as a base…
The complete discussion about when and where to apply…
Games are not just for children, although children also play…
It follows that on the Theory Building View, for the primary…
The group of 17 quickly agreed on those value choices. Developing…
Types of Methodologies Rechtin (1997) categorizes methodologies…
13. (FIRST TECHNIQUE). .. your sword now having bounced upward,…
Agility implies maneuverability, a characteristic that…