Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

6.3KB

The Psychology of Computer Programming — Interlude: Part 2: Programming as a Social Activity

  • Source: /library/The Psychology of Computer Programming/source-file.pdf
  • PDF pages: 77–82
  • Pages without text: 77
  • OCR note: OCR is supplied below for image-only pages; multi-column reading order may be imperfect, so consult the PDF for layout and visuals.
  • Note: Part introduction and Silver Anniversary comments on the part.

[OCR from image-only PDF page; verify layout and illustrations in the PDF.]

[Image-only page; OCR found no readable text. Consult the PDF for visual content.]

2
a

DROGRN MING ch OCA. ACINIV

Having been brought up in a serf-owner’s family, ! entered active life, like all young men of my time, with a great deal of confidence in the necessity of commanding, ordering, scolding, punishing, and the like. But when, at an early stage, | had to manage _ serious enterprises and to deal with men, and when each mistake would lead at once to heavy conse- quences, | began to appreciate the difference be- tween acting on the principle of command and disci- pline and acting on the principle of common understanding. The former works admirably in a military parade, but it is worth nothing where real life is concerned, and the aim can be achieved only through the severe effort of many converging wills. Peter Kropotkin* rogrammers do not ordinarily work in isolation. Although an in- dividual programmer may find himself assigned the task of writing @ program, even then he has other programmers to whom he may turn for help—and who, at the same Hed may be turning to him.

  • Reprinted from Memoirs of a Revolutionist, by Peter Kropotkin. Copyright — a per- _ mission of the Publisher, Horizon Press, New York. 45

46 Programming as a Social Activity Indeed, as we shall see, the programmer working alone is working under a serious handicap. But when working with others, many types of relation- ships can exist. For our purpose, we shall identify three sorts of pro- grammer assemblage—the group, the team, and the project. Roughly speaking, the group is a collection of programmers, working in the same place, probably sharing the same machine and system, but working on separate programs, although there may be a relationship among some of the programs. A typical programming group might be found in a university computing center, an engineering firm, or wherever an “open shop” is run. A programming team, on the other hand, is a collection of programmers who are trying to produce a single program by working together. A team might consist of from two to twelve members, though with the larger numbers the team begins to break down into two or more teams. The team may exist within a programming group or perhaps be one team of many. making up a programming project. The project is a group of pro- grammers plus their supporting activities which has probably been brought together for the purpose of producing a single integrated system, or at least a closely knit collection of programs. It will often have its own machine, plus special teams to provide systems work, standards, documentation, and other functions. It will also ordinarily have a project manager and a regular bureaucratic organization—like the Austrian army.

Silver Anniversary Notes (R27 Comments on Pah 2 Programming as a Social Activity [There are] three sorts of programmer assemblage—the group, the team, and the project. Roughly speaking, the group is a collection of programmers, working in the same place, probably sharing the same machine and system, but working on separate programs, although there may be a relationship among some of the programs. ...A programming team, on the other hand, is a collection of programmers who are trying to produce a single program by working together. (p. 46) After observing groups of programmers for another quarter-century, | have changed my own definition of team. Now, | would say, “A programming team is a collection of programmers who are trying to produce better products by work- ing together.” In other words, the distinguishing characteristic of the team is the way its members produce products by working together—products that they could not produce (or produce so efficiently) by working as individuals. Some teams share a common product, while some groups working on a common product are not teams. Some teams have each member working on a distinct product (although this is less usual), while many groups share little except common space or a common manager. Now that hardware has grown cheaper while labor has

«Silver Anniversary Notes grown more expensive, group members are much less likely to share a machine and system than they were years ago. In the end, though, it’s their method of /earning that distinguishes teams from groups. Because a common goal often influences group members to learn together, it’s easy to see today why | was confused about this distinction twenty- five years ago. But with lots more examples under my belt, | now understand that a common product goal need not lead to mutual learning. On the other hand, team members always have a common goal, regardless of the product— the goal of helping each other learn to perform better. My annual Software Engineering Management Development groups are teams constructed with precisely this goal. Brian Pioreck, a member of the 1998 team, commented on this goal: “So, then, can this criterion be used to help organizations that want to build teams that produce products instead of groups that produce products? And learn what? Learn how to build better programs? Learn how to listen better? communicate better? feel better about themselves? | think the answer to all these questions is yes. “When | ask clients about their best experiences of being part of a team, the most often cited memory is that it was like a family—a family around Thanksgiving time. Everybody makes something and brings it to the table, where they can all share and celebrate. | think another attribute of a healthy team is that it can perpetuate itself. It can help a member break off and start and support a new team that will share the same values and customs.”

Powered by TurnKey Linux.