Agile Software Development
Автор: Alistair Cockburn /
CHAPTER 3. Communicating, Cooperating Teams Convection Currents of Information
-
Часть 1
-
This chapter considers the effect of the physical environment, communication modalities used for jumping the inevitable communications gaps, the role of amicability and conflict, and subcultures on the team. These issues deal with a project's need for people to be able to notice important events, and to be both willing and able to communicate to others what they notice.
"Convection Currents of Information" examines the similarities of moving information with heat and gas dispersion. The comparison yields several useful associations: the energy cost of information transfer, osmotic communication, information radiators, and information drafts.
"Jumping the Communications Gap" examines people's efficiency in conveying ideas using warmer and cooler communication channels. It introduces the idea of adding "stickiness" to information, and looks at how those two topics relate to transferring information across time.
"Teams as Communities" discusses amicability and conflict, the role of small team victories in team building, and the sorts of subcultures that evolve on a project. We shall see that the differing cultural values are both useful to the organization and difficult for the team to deal with.
"Team Ecologies" considers a software development team as an ecosystem in which physical structures, roles, and individuals with personalities all exert forces on each other. Each project producing its own, unique ecosystem makes the job of methodology design even more difficult.
Saying that software development is a cooperative game of communication implies that a project's rate of progress is linked to how long it takes information to get from the head of one person to the head of another. If Kim knows something that Pat needs, the project's progress depends on
· How long it takes Pat to discover that Kim knows something useful
· How much energy it costs Pat and Kim together to get the knowledge transferred to Pat
Let's see how much this costs a project.
Suppose that people who program in pairs ask and get answers to 100 questions per day. Adding just one minute to the cost of each question adds 100 minutes of salary cost per person per week, plus a small delay to the project's delivery. For a 12-person project, that costs 20 hours of salary per week. On a 20-week project, it amounts to 10 work-weeks of salary cost, up to $50, 000 in many companies.
The project gets delayed almost a full week and costs an extra $50, 000 per minute of delay in getting questions answered, not assuming any other damage to the project for the questions taking longer to answer.
The delay is more on the order of 5 minutes if a person has to walk down the hall, but there is worse damage: Kim might not be there. That means that when Pat returns to his office, he has lost the train of thought he was working on, and has to spend more time and energy recovering it. That is still not the worst.
The worst is that the next time Pat has a question, he might decide against walking upstairs, since Kim might not be there. For not asking the question, he makes an assumption. Some percentage of his assumptions will be wrong, and each wrong assumption results in Pat introducing an error into the program. Finding and fixing that error costs the project anything from multiple minutes to multiple days.
Thus, Pat's not asking his question and getting it answered represents a large lost opportunity cost. Over the course of the project, the lost opportunity cost is far greater than the cost of walking upstairs.
I hope you palpably feel the project's development costs rising in the following six situations:
1. Kim and Pat pair-program on the same workstation (Figure 3-1). Pat wonders a question out loud, and Kim answers. Or, Kim mentions the answer in passing as part of their ongoing conversation, and Pat recognizes it as useful information. This takes little work by each person, and the least time.
Figure 3-1. Two people pair programming. (Photo courtesy of Evant, Inc. )
2. Kim and Pat at separate workstations, but right next to each other (side-by-side programming). Using peripheral vision or the usual chit-chat that develops when sitting lose together, Kim notices that Pat is looking for something on the web, and asks what the question is. Or, Pat simply asks. Kim answers, possibly without looking away from the screen. Not much work, not much time is involved.
3. Kim and Pat work on opposite sides of a room, facing away from each other (Figure 3-2). Kim is not likely to notice that Pat is looking for something, but Pat can easily see whether Kim is available to answer a question. At that point, Pat asks and Kim answers.
Figure 3-2. Two people sitting at opposites sides of the room. (Photo courtesy of Thoughtworks, Inc. )
4. Kim and Pat sit in adjacent offices, separated by a wall. Kim can't notice when Pat is looking for something, and Pat can't see if Kim is available. Pat must get up, peek around the doorframe to see if Kim is in, and then ask Kim the question.
5. Kim and Pat sit on different floors or in adjacent buildings. Pat walks upstairs, only to find that Kim is out! Now, Pat has lost time, energy, the train of thought he was holding while he was working downstairs, and the motivation to walk upstairs the next time he has a question. The lost opportunity cost starts to mount.
6. Kim and Pat sit in different cities, possibly with several time zones between them. In this setting, not only will they not ask each other questions so often, they also will have to use less efficient, less rich communication channels to discuss the question and its answer. They expend more energy, over a longer period of time, to achieve the same communication result.
-
Навигация [ Часть 1. Глава 12. ]
Закладки
Accepting program modifications demanded by changing external…
The surprising thing about human success modes is how…
13. (FIRST TECHNIQUE). .. your sword now having bounced…
The group of 17 quickly agreed on those value choices.…
The industry is littered with projects whose sponsors…
On a new project, I would use Crystal Orange as a base methodology…
For us as designers, it was possible to express both…
Agility implies maneuverability, a characteristic that…
While writing, reading, typing, or talking, we pick up…
The complete discussion about when and where to apply…
In arguing for the Theory Building View, the basic issue…
After much coaching for six months, his programs still…
The chart shows the state of the user stories being worked…
That it is people who design software is terribly obvious.…
1. Project name, job of person interviewed (the interviewee…
The main question is, if you were funding this project,…