Agile Software Development
Автор: Alistair Cockburn /
CHAPTER 4. Methodologies An Ecosystem That Ships Software
-
Часть 1
-
The purpose of this chapter is to discuss and boil the topic of methodologies it until the rules of the methodology design game, and how to play that game, are clear.
"Methodology Concepts" covers the basic vocabulary and concepts needed to design and compare methodologies. These include the obvious concepts such as roles, techniques, and standards and also less-obvious concepts such as weight, ceremony, precision, stability, and tolerance. In terms of "Levels of Audience" as described in the introduction, this is largely Level 1 material. It is needed for the more advanced discussions that follow.
"Methodology Design Principles" discusses seven principles that can be used to guide the design of a methodology. The principles highlight the cost of moving to a heavier methodology as well as when to accept that cost. They also show how to use work-product stability in deciding how much concurrent development to employ.
"XP under Glass" applies the principles to analyze an existing, agile methodology. It also discusses using the principles to adjust XP for slightly different situations.
"Why Methodology at All? " revisits that key question in the light of the preceding discussion and presents the different uses to which methodologies are put.
"Methodology is a social construction, " Ralph Hodgson told me in 1993. Two years went by before I started to understand.
Your "methodology" is everything you regularly do to get your software out. It includes who you hire, what you hire them for, how they work together, what they produce, and how they share. It is the combined job descriptions, procedures, and conventions of everyone on your team. It is the product of your particular ecosystem and is therefore a unique construction of your organization.
All organizations have a methodology: It is simply how they do business. Even the proverbial trio in a garage have a way of working—a way of trading information, of separating work, of putting it back together—all founded on assumed values and cultural norms. The way of working includes what people choose to spend their time on, how they
I use the word methodology as found in the Merriam-Webster dictionaries: "A series of related methods or techniques. " A method is a "systematic procedure, " similar to a technique.
(Readers of the Oxford English Dictionary may note that some OED editions only carry the definition of methodology as "study of methods, " while others carry both. This helps explain the controversy over the word methodology. )
The distinction between methodology and method is useful. Reading the phrases "a method for finding classes from use cases" or "different methods are suited for different problems, " we understand that the author is discussing techniques and procedures, not establishing team rules and conventions. That frees the use of the word methodology for the larger issues of coordinating people's activities on a team.
Only a few companies bother to try to write it all down (usually just the large consulting houses and the military). A few have gone so far as to create an expert system that prints out the full methodology needed for a project based on project staffing, complexity, deadlines, and the like. None I have seen captures cultural assumptions or provides for variations among values or cultures.
Boil and condense the subject of methodology long enough and you get this one-sentence summary: “A methodology is the conventions that your group agrees to. ”
"The conventions your group agrees to" is a social construction. It is also a construction that you can and should revisit from time to time.
Coordination is important. The same average people who produce average designs when working alone often produce good designs in collaboration. Conversely, all the smartest people together still won't produce group success without coordination, cooperation, and communication. Most of us have witnessed or heard of such groups. Team success hinges on cooperation, communication, and coordination.
Structural Terms
The first methodology structure I saw contained about seven elements. The one I now draw contains 13 (see Figure 4-1). The elements apply to any team endeavor, whether it is software development, rock climbing, or poetry writing. What you write for each box will vary, but the names of the elements won't.
-
Навигация [ Часть 1. Глава 17. ]
Закладки
While writing, reading, typing, or talking, we pick up…
It follows that on the Theory Building View, for the primary…
That it is people who design software is terribly obvious.…
After much coaching for six months, his programs still looked…
The third problem is absence of feedback from the downstream…
1. Project name, job of person interviewed (the interviewee…
The industry is littered with projects whose sponsors did not…
Types of Methodologies Rechtin (1997) categorizes methodologies…
On a new project, I would use Crystal Orange as a base…
The surprising thing about human success modes is how nebulous…
In arguing for the Theory Building View, the basic issue…
13. (FIRST TECHNIQUE). .. your sword now having bounced…
Agility implies maneuverability, a characteristic that is…
We see an example of needing these normalizing rituals…
Walk around your place of work. Notice · The convection…
Accepting program modifications demanded by changing external…
Figure 4-1. Elements of a methodology. Roles. Who you…
Crystal Clear is the most tolerant, low-ceremony small-team…
For us as designers, it was possible to express both…