/
Text
,
Addison- Wesley
Kent Auer and Roy Miller
Extreme Programming
Applied:
Playing to Win
Addison-Wesley
An imprint of Addison Wesley Longman, Inc.
Reading, Masachusetts Harlow, England Menlo Park, California
Berkley, California Don Mills, Ontario Sydney
Bonn Amsterdam Tokyo Mexico City
,
¦ us
^
-
-на-
¦
2004
32.973-018
681.3.06
93
93 : .
/ . , . . .: , 2004. 368 : .
ISBN 5-318-00132-7
: «
, ,
?» .
. ,
. , ,
. , , .
, .
32.973-018
681.3.06
, , , .
, ,
, .
© 2002 Pearson Education, Inc.
ISBN 0-201-61640-8 (англ.) © , «Питер», 2003
ISBN 5-318-00132-7 © , ,
«Питер», 2004
13
14
17
19
20
20
XPeWeb 21
22
22
25
: , 26
27
27
28
28
? 29
29
30
32
33
34
34
34
, 35
35
35
35
6
36
36
! 38
39
45
0. 45
1. 45
2. 46
3. 46
4. 46
46
0. 47
0. 48
(Planning Game) 51
(Testing) 52
(Pair Programming) 54
(Refactoring) 55
(Simple Design) 55
(Collective Code Ownership) 56
(Continuous Integration) 57
(On-Site Customer) 57
(Small Releases) 58
40- D0-hour Week) 58
(Coding Standards) 59
(System Metaphor) 59
60
1. 61
1. , 62
62
63
2. 64
65
65
70
Driving Spikes 71
72
73
73
74
, 75
7
3. 76
77
, 77
78
4. 80
80
81
82
83
85
87
88
5. 92
92
93
93
95
97
100
6. 108
108
110
111
2. 115
7. 117
118
119
.., 122
122
123
124
125
8. 126
, 126
127
129
129
8
130
131
131
, 132
9. 133
134
- (stand-up meetings) 137
140
141
146
10. 148
-планирования 148
149
150
, 151
152
153
154
, 155
161
165
167
11. 172
173
175
177
178
183
185
186
187
189
12. 191
192
192
194
198
199
199
201
9
202
202
205
13. , 206
207
208
209
211
214
214
216
216
217
web-приложений 218
219
14. 221
222
222
223
225
, 229
231
232
233
234
239
241
15. 244
245
245
246
248
249
249
250
251
252
16. 253
253
254
10
255
256
258
17. 259
259
263
3. 265
18. 267
268
269
? 270
271
? 273
1 275
2 276
277
19. 279
279
«Я» «Мы» 280
? 281
282
? 282
20. ? 284
? 284
286
288
? 288
21. , ? 289
289
291
292
294
296
298
? 300
11
22. 302
? 302
303
? 304
23. 306
? 307
? 307
309
40- 309
24. 310
310
311
? 311
25. 313
314
, ? 315
-новичок 316
317
317
? 318
? 320
26. 321
321
322
? 330
4. 331
27. 332
333
334
334
335
338
339
28. 340
340
341
12
342
342
343
: 344
345
29. 346
- ? 347
? 348
? 348
? 349
? 349
351
30. 352
, 352
? 353
? 354
31. 357
357
360
«до» «после» 360
? 361
32. ? 362
364
(Extreme Programming),
, -
,
( ) , -
. , ,
. , «клас-
«классической» , - , -
,
.
, -
.
, -
. , . : -
,
?
:
, -
, -
. ,
, , , -
. , -
, , ,
, .
« ...»,
. , ,
. , -
. , .
, : « », « 15
», « ».
, .
,
, ,
.
, .
,
, ,
. , -
, .
, (Ken Auer) 66
, (Jack Bolles) 67
, (Ken Auer) 72
, (Ken Auer) 74
, ,
(Ken Auer) 80
, , (Roy Miller) 84
, (Michael Feathers) 89
, (Ward Cunningham) 94
, (Ken Auer) 99
, (Ken Auer) 100
, (Ward Cunningham) 102
,
(Ken Auer) 103
, (Kayjohansen)
(Roy Stauffer) 104
, (Roy Miller) 109
, (Ken Auer) 120
, (Ken Auer) 123
, (Frank Westphal) 124
, (Ken Auer) 127
, (Ken Auer) 128
, (Jim Highsmith) 131
15
, ,
(Jeff Canna) 134
, (Ken Auer) 136
,
(Roy Miller) 140
, (Tom Kubit) 142
,
(Ken Auer) 144
, (Ken Auer) 156
, Ayep (Ken Auer) 159
, (Travis Griggs) 162
, , (Ken Auer) 165
, (Ken Auer) 168
, (Rob Billington) 201
, (Ken Auer) 207
, (Ken Auer)
(Roy Miller) 210
? (Ken Auer) 212
Reflection API, (Chris Collins) 218
, (Steve Hayes) 219
, (Ken Auer) 224
,
(Nathaniel Talbott) 225
, ,
(Kevin Johnson) 227
, (Steve Hayes) 235
,
(Steve Hayes) 237
, (Steve Freeman) 240
, (Roy Miller) 243
, (Roy Miller) 247
, , (Ken Auer) 250
, (Steve Hayes) 257
,
, (Joseph Pelrine) 258
, (Ron Jeffries) 260
, (Ron Jeffries) 262
, , (Ken Auer) 263
, (Tom Kubit) 268
,
(Jeff McKenna) 271
-решением, (Ken Auer) 274
, (Steve Hayes) 285
, (Uros Grajfoner)
(Matevz Rostaher) 286
?, (Ken Auer) 290
16
, ' (Duff O'Melia) 293
,
(Roy Miller) 295
, (Rob ) 296
, (Kyle Larson) 303
,
(Ken Auer) 304
, (Steve Freeman) 308
, (Ron Jeffries) 313
,
(Don Roberts) 314
/Тренер, (Ken Auer) 318
, (Ken Auer) 323
, (Roy Miller) 335
, (Susan Johnson) 354
, Qin\ Highsmith) 357
? (Ken Auer) 359
: « -
, -
, -
?» . ,
, . -
. , -
. , , -
. , , .
, .
(Ken Auer) - -
.
-
, ,
-
. .
: , -
, ,
. , ,
, , -
, , .
« » (keep-it-simple),
.
(Roy Miller), , -
. .
1 -
,
-заказчики. -
, .
1 , : Arthur Andersen ( Andersen
Consulting), KPMG, PriceWaterhouseCoopers, Deloite and Touche, Ernst & Young. 1999
Andersen Consulting Accenture. . .
18
,
, -
.
.
.
- . -
-
, . ,
, . ,
, , -
, , ,
, .
: -
, -
, . ,
, , -
, . ,
, ,
, , -
. -
, -
(change agents).
. , , -
, -
.
, ,
, , , .
(Ward Cunningham)
, (Portland, Oregon)
« , , , !»
,
(Extreme Programming, XP).
,
, , , .
,
.
, -
, , -
.
. ? ,
, , , , -то, -
.
, - -
. , -
. , -
. , . ,
, :
. . ,
.
, , , -
, . ,
, ,
, , .
. , , -
, , -
. , , -
. , , ,
.
.
.
. , . -
. , -
.
20
-
,
(Extreme Programming, XP). , , , ,
, , .
, ,
.
, , ,
(Kent Beck) Extreme Programming Explained1, -
- -
. , -
. ,
, , -
.
, -
, ,
:
1. , ?
2. ?
3. ?
4. , , -
?
5. , -
?
, ,
. , -
, .
, .
:
1. , ( )
.
2. ,
.
3. (coach),
, .
, .
, . -
: . . .: , 2002. . .
Web 21
, , -
.
, -
, ,
. , -
,
.
, ,
. , -
-
, .
, .
, , -
. ,
, Extreme Programming Explained.
Web
.
, -
-
. , ,
.
,
, ,
, http://www.rolemodelsoft.com/xp. -
, :
(Laurie Williams) (Alistair
Cockburn) ;
VisualAge for Java Enterprise;
JAcceptO.
.
, .
- ,
. ,
, , -
: (Ann Anderson), (Paul Chisholm),
(Randy Coulman), (Rick Evans), (Martin
Fowler), (Chet Hendrickson), (Jim Highsmith),
(Ron Jeffries), (Joshua Kerievsky),
(Jeff McKenna), (Bill Pyritz), (Bill Wake),
(Frank Westphall). (Paul
Chisholm), -
.
,
. .
. ,
,
.
RoleModel
Software. -
. ,
, , . -
, !
, ,
, ,
. «... » (Дея-
(Деяния, 17:28). ,
, , -
, .
, (Carol), -
.
, , -
.
.
23
, . , -
!
, (Норе) (Caleb), -
. - ,
. .
. , -
!
,
, . , ,
.
, ,
RoleModel. , , .
(Ward Cunningham) -
. -
, .
, -
.
(Kent Beck) -
. , -
(шаблонов) . , -
, , (Joshua
Kerievsky) « »,
(Extreme Programming).
. , ,
. , ,
, -
. , !
(Ron Jeffries),
(coach's coach). ,
, -проектом. , ,
,
. -
. , ,
.
(Martin Fowler) -
, «сверхэкстремалыциков», ,
. -
, , , , -
. , ,
. , .
, ,
.
' (Duff O'Melia), -
.
,
. ,
, , .
24
. ,
,
. , .
,
(Nathaniel Talbott). ,
, , -
. , , , ,
, , -
, , -
, . -
, .
, , .
, , .
(Jeff Canna), -
, Software Studio, ,
.
. ,
, . ,
, .
-шников, Role-
Model ,
: (Chris
Carpenter), (Chris Collins), (Michael Hale)
(Adam Williams). .
, Stagville,
-шников: (David Blythe), -
Qohn DeMichiel), (Andy Fekete), (Karen Read),
(Chris Stark) (Richelieu Tah).
: (Roger Elkins), (Velinda Moore),
(Lisa Morelli), (Carl Nackols), (Cynthia
Traynham) (David Trogdon).
, .
(John DeMichiel) ,
, , ,
.
(Lisa Morelli) , ,
.
, -
, , .
, ,
. , -
, .
.
, -
:
(Fellowship Bible Church), (Reed Phillips)
Knowledge Systems Corporation, The Hillside Group,
25
, , ,
(Graham Poor) (Margaret Mahoney),
.
,
(Mike Hendrickson). , ,
, . , -
.
, (Jon Vickers). , -
, RoleModel, ,
, -
. ,
, . , -
, . -
, , . RoleModel
, , .
, , ,
. , , .
.
,
. . -
, .
, , -
. , , ,
, .
, , . -
-
, . , .
, , , .
, , /ii
, . .
( ), (
), -
, , .
. , ,
, .
Addison-Wesley ,
. -
, .
,
. -
(Mike Hendrickson), (Heather Olszyk), (Ross
Venables), (Tyrrell Albaugh) (Kim Arney
Mulcahy). , -
, .
: ,
, , .
.
, , ,
. -
, , . , , .
, , , - ,
, , , -
.
-
. , -
, . -
. ,
: « -
, , , ,
».
, , ,
,
,
, . , -
(Extreme Programming, XP) , -
, , .
, ,
. ,
,
?
, ,
, . -
( ) .
,
, , -
, .
, -
, -
,
.
27
. -
.
, , , -
, . ,
.
, ,
, . -
,
. , ,
. , (
, , )
- - - .
, . « , -
», . ,
. -
.
. , -
,
- , -
. , -
, , -
. , ,
.
,
. , ,
, , -
, , .
.
, , , , -
, ,
, , .
.
, -
, , -
. -
. ,
« », - -
, . ,
. ,
. ,
, , . , -
, , ,
28 Введение: ,
.
, , , ,
.
. , ,
, . , -
, , . -
, , , -
.
, - -
-
. , ? -
, . -
, -
,
, , , : «По-
«Поехали!» .
.
-
, .
,
. -
, , , ,
, -
. , «незначительных» , -
, -
. , ,
, .
, -
, ,
? - -
, , ,
, ,
, - .
, . ,
, «блистательной» ?
. , , , -
, .
, ,
.
,
, , ,
.
29
. -
, -
, , . -
, -
.
. -
. -
.
, ,
, .
, ,
. , ,
. , -
.
- ?
,
. , ,
: « , ,
!!!» , .
, , -
.
, -
. , -
. -
.
.
, , .
?
, .
.
,
- . . -
, ,
, .
, -
, , -
. -
. , -
. .
-
, -
30 Введение: ,
. , -
, . -
, , , ,
. .
? -
. ,
, , .
, , ,
, -
. -
, .
,
, -
. -
. ,
, . -
, , -
.
, ,
, . ,
,
«программирование». , -
. , -
, , .
. . .
- -
. , -
, .
, .
software (
soft , , ). , -
, ,
, (hardware).
. , ,
, . , -
. -
, ,
.
,
, ,
31
. -
, . -
. -
,
. -
,
.
, , . -
.
(мосты, , . .),
, , , -
. -
, , . -
,
. -
- , -
, , -
. (моделированием)
. , -
, -
.
.
, (докумен-
( ), , -
? , -
. ,
.
, , .
, . -
, ? -
! , .
, .
, , -
.
« »
, « »? -
, . .
.
-другому, -
, ,
, ,
. , ,
, -
. -
.
32 Введение: ,
, , ,
-
, . -
, . -
, ?
?
, -
,
. -
. ,
,
, -
(рис. .1).
. .1.
, - -
, - . , -
, -
.
. -
. ,
,
, -
. , -
33
, ,
- . ?
, -
, , . -
, (waterfall). -
,
,
, -
. , -
, .
, , -
, , ,
, . -
«хрупкий» , .
, ' -
.
,
.
, .
, . -
. , -
, :
, . ,
.
,
.
. ,
, -
. .
, , -
. -
, , -
, . ,
, , ,
, . , -
, -
. ,
.
?
. , -
. , «
», , . -
.
2 . 509
34 Введение: ,
, , -
, . ,
, , -
. ,
, -
. ,
, -
. - ,
.
- , ,
. ,
, .
-
, , , ,
, -
- . Visual,
«визуальный», . -
,
- , «визуаль-
«визуальных» . : < , ?
. -
. -
, , ,
. , -
( ), -
, -
.
, -
. , ,
, , -
. -
, 1 -
. , -
, 20 ,
.
, , -
. -
. -
.
. .
35
. , ,
.
,
,
, .
,
-
« » . -
, . -
, , .
,
.
, (communication) , -
, , , . -
, ,
,
. , , -
.
, «
», - . -
.
, ,
- .
, , -
-
, . ,
, - ,
. , ,
. ,
, , -
.
. ,
. -
, . -
, , ,
.
36 Введение: ,
, -
. -
. , ,
,
, , ,
, . -
. , -
, -
. , ,
, , -
. , -
, , .
, , -
. ,
, .
,
,
, . -
, , .
.
, ,
, -
, , -
.
:
( ) , -
(таких, -
), , -
. , -
,
, . - ,
.
, -
. .
, , -
.
, . -
-
.
, -
. , . .2.
37
I
<
I
)
I
. .2. 1
,
, . ,
.
.
, . -
, ,
:
1. (Simplicity).
2. (Communication).
3. (Feedback).
4. (Courage).
, , -
, . -
, :
; , -
, ; , ,
, , ; -
; ,
.
,
. , , -
(конкуренты, . .).
38 Введение: ,
, ,
. ,
, . -
.
, -
. , -
, . ,
, ; -
, ; -
, , ,
; , -
, . , - -
,
: .
, .
-
, . ,
,
.
,
, . ?
. -
, .
, , -
.
!
, -
, -
. .
, , .
, . ,
, .
,
.
, , ,
, , , -
, : (simplicity), (courage), -
(communication) (feedback). ,
, , ,
.
, , ,
, .
. -
, , , , ,
39
. , , ,
. . -
.
, -
. , ,
. .
. -
, , -
. . -
, .
, -
. ,
.
: ,
. , -
, . , ,
. , , -
. , -
. , -
, .
, , -
. ,
.
, , -
. .
. ,
,
. , .
,
. ,
. -
. -
, . -
, .
.
, . , -
. -
, .
. , , -
.
(Ken Auer). , Role-
Model Software Inc. -ориентирован-
- 1985 . -
(Kent Beck) (Ward Cunnin-
40 Введение: ,
gham), (Chrysler
Comprehensive Compensation) 1996 . 1998 -
RoleModel Software
(eXtreme Programming Software Studio).
, , -
-эф-
- , , -
.
(Roy Miller). RoleModel Software Inc.
RoleModel,
Andersen Consulting ( Accenture)
. RoleModel , -
Extreme Programming Explained. , -
, , -
. RoleModel Software -
, . , , -
, .
.
, , -
.
, , -
.
, , -
, .
(Kent Beck) , -
, , -
(Extreme Programming).
, Crysler 1995 .
Extreme Programming Explained -
. -
(Martin Fowler) Planning Extreme
Programming1. , . -
, , , -
, .
. -
( ). -
, , (т). -
, .
(Rob Billington).
. 1999
StorageTek .
-
.
: ., . : . .: -
, 2003. . .
41
(Jack Bolles). Thought-
Works Bay Area (San Francisco) XP Users Group.
, -
. -
, , . ,
(agile)
, -
, .
(Jeff Canna). RoleModel
Software Inc. RoleModel Software 1999
, , -
, -
. RoleModel -
,/ 17 , Wang, Compugraphics, IBM
MGV America, , , , -
, .
(Alister Cockburn). Humans &
Technology.
.
, . -
, -
. ,
.
(Chris Collins). TYBRIN.
, -
, ,
, . -
RoleModel Software Inc., ,
.
(University of West Florida).
(Ward Cunningham). Cunningham & Cun-
Cunningham. -
1980- .
. 1989 , Wyatt Software,
, -
. , , -
, .
(Michael Feathers). ObjectMentor
Inc. ,
,
OOPSLA'97. , , -
, . ,
, ,
: .чер. . : . .: -Плюс,
2002. . .
42 Введение: ,
. -
ObjectMentor,
. -
.
, , -
(micro-incremental
test-first design) .
(Martin Fowler).
Thought Works , , -
( ,
). -
, Refactoring, -
, .
Planning Extreme Programming. -
( -
),
, -
.
(Steve Freeman). ,
- 15 .
, Lombard
Risk Systems Web-проектов. -
Extreme Tuesday Club.
(Uros Grajfoner) (Matevz Rostaher)
FJA OdaTeam . , -
, 1999 . -
,
.
(Travis Griggs).
Key Technology. , -
OOPSLA'98 ,
. -
,
VisualWork Wiki. .
-
Key Tech.
(Steve Hayes).
, OOPSLA'98 -
Software Studio. -
- 10 . -
- -
, . -
,
Khatovar Technology.
(Jim Highsmith). 30 ,
, . -
43
, , Adaptive
Software development: A Collaborative Approach to Managing Complex Systems.
, , ,
, . -
.
(agile) . -
.
(Ron Jeffries). ObjectMentor. -
-
,
. -
(Assistant Coach), -
(Head Coach). , -
, , «
». Installed, -
, « » -
. -
,
.
(Kay Johansen) (Ron Stauffer). -
. Word-
WordPerfect, -
. e-automate,
. , ,
. -
,
, .
(Kevin Johnson). -
Medtronic Inc.
, « »
(Extreme Programming). , Smalltalk , -
, ,
, The Smalltalk Report. -
, - , ,
, , (
) , Smalltalk -ори-
- .
.
(Susan Johnson). He .
Medtronic Inc. 1998-1999 -
Object Technology. , -
-
(Geographically Distributed XP).
(Tom Kubit). Ann Arbor (Мичиган).
- 13 . 1997
(Don Wells) , , ,
44 Введение: ,
, « ». , ,
.
.
(Kyle Larson). -
1983 . -
1993 .
(Chief Coach) -
Advanced Technologies Integration. 1998 -
(test-first) -
(pair programming) .
. ,
-
. 1999 ATI -практи-
. -проектом.
- (Jeff McKenna). 15 -
- . -
, . -
,
. , ,
,
.
. /
(Rob ). -пр,
1998 .
( ) Evant, -
-Франциско.
.
' (Duff O'Melia). RoleModel
Software Inc. 1998 .
. ,
RoleModel
- . RoleModel -
, , RoleSoftware .
-
RoleModel.
(Joseph Perline). , (
) .
, . -
( Smalltalk) 13 .
.
(Don Roberts) Redneck Smalltalker (
Smalltalk) Refactory Inc.
- . -
( ) -
. -
45
, « -
». (John Brant) Refac-
toring Browser for Smalltalk ( Smalltalk) -
.
(Nathaniel Talbott). RoleModel
Software Inc. -
16 RoleModel 1998
18 . .
, , -
. ,
, ( Software
Studio). - -
RoleModel, , . -
. -
.
(Frank Westphal). -
. , -
. ,
. , -
.
Channel One, -
-
.
(Laurie Williams).
.
IBM Raleigh ( ). , -
, -
. . -
.
,
( , ).
0.
0 ,
. , Extreme
Programming Explained . -
, , -
.
1.
1 , -
.
, .
46 Введение: ,
. , , .
, , , .
, -
. , , -
, -
, . , ,
.
2.
: ,
. 2 , -
. ,
, -
. ,
,
.
3.
, 2, -
, , .
. -
3 , -
. , -
,
.
4.
-
.
, , , -
. 4 . -
,
, ,
, . , -
, , , !
, , -
comp@piter.com ( «Питер», ).
!
web- http://www.piter.com -
.
Extreme Programming Explained: Embrace Change* .
, ,
,
.
.
,
. , -
, -
. Extreme
Programming Explained, , ,
, .
: . . .: , 2002. . .
1
, -
. -
-
.
, .
, -
.
-
. ,
, , -
.
. -
-
. , -
, , -
. , , -
, . , -
-задачу, ,
. (stories),
(priorities), (acceptance
tests), -
, . -
(estimates),
(unit test). -
,
, ,
,
-условий.
, (Roy Miller)
, (Chris Collins) web- IBM developerWorks
http://w\vw.ibm.com/developer.
49
, -
, : -
. ,
,
. -
, :
« », . ,
-
, -
, .
(Kent Beck)
Extreme Programming Explained. :
1. (Communication). -
, , - -
- - - .
.
, .
2. (Simplicity).
(simplest thing that could possibly work).
: « -
. , ...
, -
, ».
3. (Feedback). -
, -
,
.
.
4. (Courage). ,
. ,
. ,
, ,
. -
,
, .
? -
, -
. :
1. (Planning Game) -
, -
.
2. (Testing) , ,
.
50 0
3. (Pair Programming) -
, -
.
4. (Refactoring) .
5. (Simple Design) -
.
6. (Collective Code Ownership)
.
7. (Continuous Integration)
, .
8. (On-Site Customer) -
,
.
9. (Small Releases) -
. -
.
10. 40- D0-hour Week) -
, -
.
11. (Coding Standards) -
.
12. (System Metaphor) ,
, -
.
. . -
-
. -
? , «экстремальное» -
:
1. «экстремальной» ,
.
2. , -
.
? (review) , ,
, .
, , ,
, .
, ,
,
-
. ,
, -
, . -
(Planning Game) 51
, ,
.
12 , -
.
(Planning Game)
, ,
-
. . ,
, , , -
. , , -
, -
. , , -
, -
. , ,
, , , -
. , ,
,
, -
. ,
.
, , - . , -
, , .
?
(Planning Game).
-
, -
.
, (customer stories),
. ,
, ,
-решений,
. , -
.
:
,
, ;
, , -
;
;
52 0
, ;
, ,
( -
, ).
:
(Scope),
(release) (iteration);
(release);
(priorities), ,
, ,
.
. -
, ,
.
(Testing)
:
(unit testing);
(acceptance testing).
(unit tests) ,
. (acceptance tests) -
, (stories). -
, -
. , -
, .
, -ориен-
- , ,
. -
, . -
, .
, , .
, .
, , :
;
, ( ) -
;
, .
, .
,
(Testing) 53
. ,
. , -
.
- -
(refactoring) , -
. -
, , -
, , -
. -
, , -
: « » « ». -
, ,
.rUnit1. -
. -
,
(assertionsJ. -
, , . -
GUI ( ), . -
-
. -
-
. -
, ,
, , -
. ,
. « » (green bar) , -
, « »1 (red bar) ,
, .
(acceptance tests) -
(story). -
, . -
(например,
, - .). -
, -
, . , -
-
.
(iteration) ,
xUnit ,
(unit testing).
, , . -
, JUnit Java, VBUnit Visual Basic, CppUnit C++. JUnit -
Java http://www.junit.org. . .
( )
assert. . .
54 0
. .
, ,
-
. , -
.
-
. -
. -
XML-файл, -
: «сработал»
« ». .
.
, -
. -
, -
(release) .
(Pair Programming)
-
, .
, .
(pair programming) -
, , :
, ;
,
;
-
, , , -
. .;
, -
;
(review) :
, .
, -
, 1. , -
,
. (A. Cockburn) . (L. Williams) Costs and Benefits of Pair Programming.
Extreme Programming Examined, . (G. Succi) . -
(М. Marchesi) Addison-Wesley 2001 .
« : »
http://www.maxkir.com/sd/pairprog_RUS.htm. . .
(Simple Design) 55
, . -
.
(Refactoring)
(refactoring1) , -
. , -
.
,
. .
: -
. -
, -
, . -
, ,
. , , -
, ,
.
, , -
(simplest thing that could possibly work). ,
-
. ,
, . -
. -
,
. -
. , ,
, ,
, .
(Simple Design)
, . .
,
,
, -
- . -
, -
. .
, ,
,
refactoring «переделка», «переработка».
« ». . .
56 0
.
, . -
, , -
. -
,
.
, .
, .
, (simlest
design that could possibly work)? , , :
1. .
2. .
3. .
4. .
, ,
. , -
, . -
, . -
YAGNI1, You Ain't Going to Need It (
). YAGNI .
(Collective Code Ownership)
. -
, , . -
-
, , . -
- ,
. ,
. ,
. , -
, . ,
, .
- ?
, .
: «You break it, you fix
it» ( , ). , , -
, .
- «ягни». . .
(On-Site Customer) 57
, , , , -
. , ,
. ,
, ,
. , (unit tests)
, . , -
, -
, -
, .
.
(Continuous Integration)
-
, . -
, ,
, ,
.
, , ,
.
,
. ,
}' , . -
, , . -
, , -
. .
.
, , ,
.
, - -
. , .
(continuous integration)
.
« », -
. .
, -
.
(On-Site Customer)
, -
.
58 0
.
(stories) -решения,
.
, , -
, , -
.
, ,
(customer story), ,
. -
, -
. -
, .
,
,
.
,
-
-условий. -
,
. , -
. .
(Small Releases)
(releases) .
.
.
, -
. -
, , , , ,
. , -
, -
, .
.
40- D0-hour Week)
, «... ,
»1. ,
40 . , -
. « » -
. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000. C. 60. -
: . . : , 2002. . 86. . .
(System Metaphor) 59
. -
,
.
-
, , .
, ,
, . -
, . -
, .
.
(Coding Standards)
-
. :
1) , -
;
2) .
, -
(refactoring), -
; , -
, ; ,
. ,
, ,
, . -
, -
.
. , -
, .
, -
, . -
.
(System Metaphor)
?
, .
, , -
-
.
(System Metaphor) ,
. -
, , -
.
, ,
. .
60 0
-
. ?
. -
, -
. ,
. .
,
. ,
. ,
, . ,
,
.
, -
, , -
. , -
. , , ,
. , -
, .
« », .
, , .
. -
-
. , .
,
. , -
, , -
, -
. . ,
.
, -
. , -
.
,
-
, ,
, -
, , -
, .
(Theodor Roosvelt)
,
. -
, ,
, , .
. -
, -
, . . -
, .
-
.
, -
.
,
. -
.
-
, ? ,
,
.
,
. ,
«тяжеловесного»
63
, . -
, , -
.
, .
,
,
. (планов, -
, , ) ,
.
, , -
?
, , -
.
.
, -
?
. -
, , -
-
.
-
, . -
. -
, .
, -
, .
, , ,
. -
, , -
. . -
.
,
, .
1965 (John William Ward) : «
, ,
. . , -
»1- , -
,
. -
, . -
? .
1 J. W. Ward. Time Magazine, 17 1965.
-
, -
,
.
(Will Rogers)
, -
(do the simplest thing that could possibly work). -
, -
(drive a spike), .
, -
. -
.
, .
(do the simplest thing that could possibly work). , -
. :
, , , -
, , -
, ,
.
, , -
.
(drive a spikeI , .
, ,
.
drive a spike ( « »)
(http:/c2.com/cgi/wiki?XpGlossary) : «процедура, -
( , ) , -
».
, (Exploration Phase),
9.
65
-нибудь, .
, ;
, - ; ,
, .
.
, -
. -
. , .
, -
. , -
. .
,
.
, , ,
.
, -
, , -
.
, Extreme Program-
Programming Explained, :
Extreme Programming
Explained. !... -
. .
, «врубился» .
, . ,
, -
:
,
, , -
? ,
, , .
. . -
, , .
- , :
. -
, .
,
, ! , .
,
? .
3 *. 509
66 2
, .
]
.
(Ken Auer)
, , -
. ,
. , , -
, ,
. ,
,
. .
,
.
, .
, -
, -
(Duff O'Mclia) ,
. , ,
,
.
, , . ,
.
, , -
. -
, , ,
, , -
. , -
,
,
. -
, .
,
, . -
, ,
.
. , .
. ,
. -
, , , -
.
. , -
, .
, -
. -
«тяжелую» .
67
« », -
. ,
. ,
, - -
- «непроверенного» .
.
-
, .
,
, . -
, .
.
.
, . -
-
. . , -
.
,
.
- , , -
.
. , - -
, , -
.
, -
, .
, -
. ,
, -
.
, -
.
(Jack Bolles)
,
.
, , -
. -
, , ,
: -
.
.
68 2
, , -
.
, , . -
, -
, .
, «
». , -
, « ». ,
, ,
. -
(refactoring), -
, .
, -
. ,
(do the simplest thing
that will work). - , , -
, , - . ,
,
.
,
. -
: «Хсй, , ,
, , ». -
. ,
, -
. , ,
, .
.
(pair programming), -
.
, ,
. (parallel
programming)
. ,
(pair programming).
, , -
- -
.
. , -
, -
, . -
, .
, , -
, .
. ,
69
,
,
. «паника» ,
. -
, .
.
, ,
.
. , -
, -
.
,
, . -
.
. -
, , -
.
« » (most
necessary best practices). ,
, -
. , -
,
. , -
, ,
. , , -
:
;
;
;
.
,
, :
, -
. -
.
/дизайна. -
, .
, , -
, .
. ,
:
;
(unit test suit)
;
70 2
, ,
, .
, , -
. -
. ,
.
, , -
40% . -
, , ,
-
, .
-
: «Пожалуйста! . 3 , ,
, » (
150 ).
, ,
, , -
.
. ... -
. -
, . - ,
. - , . -
. , -
, . ,
:
,
.
Copyright 2001 by Jack Bolles, Technical Lead, ThoughtWorks, Inc.,
www.thoughtworks.com. All rights reserved.
, , , -
,
? , ,
, , , -
. , -
. , ,
, -
, . , -
(Tiger WoodsI, -
, , -
.
(Tiger Woods) . . .
Driving Spikes 71
, -
. :
(cus-
(customer stories);
,
(Planning Game);
, ;
;
, -ориентированный;
(unit tests),
.
,
.
Driving Spikes
, ,
, , , .
, , , ,
, .
, -
. «driving a spike».
,
. , -
,
, .
, .
, -
. . ,
, -
.
, ,
-
. -разному. -
, -
. -
, , -
,
. , , ,
. -
, , -
.
72 2
,
. .
, .
(stories) .
, .
, .
, .
.
(Ken Auer)
, ,
, -
. -
Drawlets.
HotDraw,
SmallTalk (Kent Beck) (Ward Cannin-
gham) 1980-х. Java. HotDraw
-
. -
,
, .
, , , -
. , -
.
, ,
, (story) .
, -
. , -
, , -
. -
,
, , , -
.
, , -
. ,
.
,
, , -
, , . , -
, Drawlets
, , -
, .
, ,
, . . -
Driving Spikes 73
, , , ,
. (green bar), -
, , -
. ,
(refactoring). ,
.
. -
, ,
. . , xUnit,
, .
, ,
. .
, ,
, , . -
. .
.
: -
; ;
; ; -
, ; . ?
, , -
, -
.
-ХР.
- , -
.
,
.
, .
, . ,
.
«ведущего» (тот, ), «нави-
«навигатора» (тот, ).
,
,
.
(Planning Game)
, .
,
. -
74 2
(metaphore). He ,
.
- (stand-up meeting) -
, , .
. -
. -
. , , -
. , , -
. , -
, ,
.
, , -
, ,
, , .
, -
. -
, -
,
. -
, , -
.
(Ken Auer)
- ( ) -
Java,
, -первых, -
, -вторых, -
.
Java
- .
, -
,
, -
.
, .
Java .
JUnit.
.
LCD- -нибудь, -
. ,
«результаты» (Results)
, 75
«результаты» «предписанием» (Order).
, Result ( -
) Order ( ), -
, Order -
Result , .
-
, . -
. (red barI. add (добавление)
. . getNumberOfResults
( «результатов») .
(Green Bar). .
.
,
. -
.
-
, .
LCD-
,
( , ,
). .
.
(Planning
Game), ,
. -
.
,
, -
. ,
. . ,
.
, -
. . -
. -
. , ,
, .
, JUnit (red bar) ,
. (green bar) , -
. . .
, -
, , . -
, ,
, .
, -
, .
(Ralph Waldo Emerson)
, -
. .
. -
, -
.
,
, , ,
. .
. -
. , -
, ,
. -
/ . ,
. , -
, .
: -
. , -
, - -
, . ,
, -
. , -
.
. ,
.
, , , -
, 77
. , -
, -
, .
. -
. , ,
. , -
.
, , -
,
. - -
, ,
. .
. -первых,
, ,
( ). -вторых, , , -
, .
.
.
. , -
. . ,
-
. ,
, .
, , , -
: -
.
, -
. ,
, . -
, . -
, -
,
. , , , , -
: .
,
1968 (Dick Fosbury) -
. -
, «фосбери-флоп» (Fosbury
flop) « ». -
78 3
, , . -
, -
. , . :
« , » « -
». 1968
2 24 , -
. , ,
.
, -
, ,
-
. -
,
. , -
, .
, , ,
, . ,
, . -
, .
, -
, , -
. , -
. .
.
.
, :
? . ,
. -
. , . , ,
.
, ,
. ,
, -
. , ,
.
.
. . .
. , -
, .
, . ,
«хорошая» «плохая», ,
, .
79
-
. ,
, , -
. , -
. , , -
, .
, .
. ,
,
.
4 5 , -
.
, -
-
. , -
.
,
.
, .
, -
, . , -
.
, -
. , -
,
, , .
, - -
. , -
, ( -
) .
, -
,
. ,
, . -
«победа».
,
(Ken Auer)
.
, : « -
, ?»
, , , ,
. -
81
, -
, .
, .
, -
. -
. . :
« , , .
. .
, , , -
». , -
.
.
-
. .
. -
, .
. -
, ,
, -
. ,
. , -
, -
. :
, ;
, ;
;
.
. -
, ,
. -
, -
.
,
. ,
-
. -
, .
,
. 1.0.
, , ,
, , , ,
82 4
. , . ,
, , .
- . -
, , -
.
2,
. , , -
, -
.
-
, , -
. -
. , , -
. , , -
.
.
, -
.
.
, -
, . , -
.
, -
,
-
, .
, , -
.
, , , -
. -
,
,
. -
, -
. -
,
. , -
. -
. . -
, .
.
, , -
. ,
, , -
. -
83
, -
,
.
(Planning Game) -
, -
. , -
. -
. , -
, .
, - - . ,
,
,
.
,
, -
. .
, .
, , -
? , -
, ,
? , , -
? , -
.
, -
,
.
9 13, -
.
« ,
!» , , , -
. , , .
, -
15%. -
, , -
, ,
1. -
.
. (A. Cockburn) . (L. Williams) Costs and Benefits of Pair Programming.
Extreme Programming Examined, . (G. Succi) . -
(М. Marchesi) Addison-Wesley 2001 .
« : »
http://www.maxkir.com/sd/pairprog_RUS.htm. . .
84 4
, -
(Roy Miller)
.
.
.
, , ,
,
.
.
,
, ,
.
(pair programming), , -
. -
, , ,
.
. . -
, .
.
,
,
. -
, -логи-
- , . , -
( Jason), -
.
, -
. - -
, -
. -
,
. . ,
, , -
.
,
(
, ). ,
, , -
.
, (например, , -
), .
85
, -
, , ,
.
.
, .
, ?
, .
, -
. , ,
-
- .
, -
, -
.
, .
,
? , -
, -
.
-
, , -
. ,
? -
, , -
, .
?
, -
. -
,
, .
, . , -
, , , .
. -
.
, -
. ( -
) ,
. ,
. -
, . ,
, -
:
86 4
1. , -
,
.
2. , -
.
, -
. , , -
, ,
, -
.
(Jim Highsmith) :
... , ,
, -
. ,
, .
, -
, .
,
. , .
. ,
,
, -
: ,
, , , -
? -
. -
.
. , -
-
15% 7%2. ! -
, .
-
,
50%, 57,5% -
53,5% . -
?
, , -
,
, . -
,
- .
(Ken Aucr). 2001.
. (J. Highsmith). Adaptive Software Development ( ). -
OOPSLA 2000.
87
,
. , -
, -
, .
, (user
stories) ,
.
,
. -
, . -
. ,
. -
.
, -
. , -
, , -
. . -
, -
. -
, ,
.
:
, -
. -
, , ,
( ball of mud
). , -
, ,
. -
. . -
PowerPoint
PDF, , : « PowerPoint
».
, ,
, -
( ).
, -
, ,
.
(stories) -
, , . -
, , . ,
88 4
, -
. , -
. -
,
. , (story)
, .
,
, . -
, , -
.
.
, , ,
, ,
, ,
? -
.
, , ,
- ? ,
, . -
, -
, . , -
. , -
,
.
. -
, ,
. «Возможно, -
», , -
.
, . -
, , , -
, , -
(Planning Game).
,
.
. ,
, -
, -
. ,
, . -
, ,
, -
89
. , -
.
,
. .
,
. -
, -
. -
, .
, , -
, ,
, (feedback). To, ,
. , .
.
, .
.
, -
(Planning Game). , -
, «
». ,
, -
,
. , -
. , -
, ,
, . , -
-
.
,
« », -
. , -
.
(Michael Feathers)
. -
, , -
. ,
, , -
,
.
, -
, , -
. . (Kent Beck) ,
, , .
90 4
: « , ,
?» -
, ?
-
web-приложений. -
.
,
. ,
.
,
.
-
, .
-
. , -
. ,
, , -
. -
, .
.
, .
. (Planning
Game) , .
,
. -
,
(customer story).
.
(Scope). , - -
, .
, -
, , -
web-узла. , , ,
. ,
, -
.
(esti-
(estimates), . -
- .
, , ,
, -
. ,
? : «
, -
. , .
91
. ,
-
». . .
. -
, -
. ,
.
, -
. , , ,
-
. , -
.
, ,
. -
, , , -
. , ,
.
. -
. , , -
, , . , -
, .
. . ,
.
. ,
. .
Copyright © 2001 by Michael Feathers. All rights reserved.
, -
. , -
, .
« ». , -
-либо. . -
, . -
.
, ,
. .
, (например, -
), , -
. .
, ,
, .
, ,
. -
, .
,
. -
, -
.
,
. .
, -
. , -
.
93
, , -
.
: -
, -
. « » -
. ,
:
, -
;
, ;
, ; ,
;
,
, ,
. , ,
,
.
, -
,
, -
. , ,
. , -
, . -
, -
.
, -
.
, ? ,
.
, , ,
( ), -
. ,
, , -
, . -
. . -
, ,
.
94 5
,
, -
.
. -
. (напри-
(например, )
,
.
, , -
, : «
,
. . ,
». -
, « » -
.
, , -
, - . , -
- .
.
. -
, , - ,
-
, .
, ,
-
. .
(Ward Cunningham)
, -
, , -
. .
, , , , -
, . -
, .
.
,
. -
. , , .
,
. , -
, . -
. ,
- . ,
,
95
, -
. , - .
, .
, . ? :
«Эврика!»? .
- : « ,
"х" "у"». -
.
«х» «у» , .
: «Эврика!»
, -
. -
, , .
,
, . , -
.
, . -
, , ,
. , ?
(Ward Cunningham) Wild no
http://c2.com/cgi/wiki7WelcomeVisitors.
. , -
. . -
, ,
. -
. -вторых, , -
- . -
, ,
, .
.
, -
. -
, , -
. -
.
, ,
. ,
,
.
-человечески. , ,
.
96 5
, (Alistair Cockburn)
(Laurie Williams), , 90% , -
, , 1. , -
10% ,
.
, , -
- . -
: -
, . -
. ,
, . .
, Green Eggs and Ham ( ) -
(Dr. Seuss).
, , . -
- , -
. , ,
. , -
, . -
, .
, - ,
. , -
- .
, , -
. -
. , , -
,
. , -
. ,
- . , -
(code review) .
, -
,
. ,
. , ,
. ,
: , ,
, . , .
, , -
- , -
, , ,
. (A. Cockburn) . (L. Williams) Costs and Benefits of Pair Pro-
Programming. Extreme Programming Examined, . (G. Succi)
. (М. Marchesi) Addison-Wesley 2001 . -
« : »
http.//vvww.maxkir.com/sd/pairprog_RUS.htm. . .
97
( -
, , , - ).
,
:
1. , - -
, ,
. , , -
« » , -
.
2. , -
, , -
,
.
,
-
, . « »
, , ,
, .1
, -
,
. -
, -нибудь, .
, «
» . , ,
. ,
.
.
. -
.
, -
, -
. :
, ;
-
;
,
.
(collective code ownership), -
,
.
4 . 509
98 5
.
, .
, « »,
, -
. , -
.
, ,
, ,
. -
, , -
, . ,
,
, . !
. -
, ,
, .
, . -
, , -
,
. -
.
. ,
.
.
, , -
. , - ,
, -
. -
-
, .
, . ,
, .
, , -
. -
. ; ,
. (test-
infectedI. .
-
. , , -
, . , . -
, .
. ,
. (К. Beck), . (Е. Gamma). Test Infected: Programmers Love Writing Tests (Инфициро-
( : ). http://
members, pingnct.ch/gamma/junit. htm.
99
, ,
. -
, , -
(just in time).
. -
.
, , , -
. ,
, .
(Ken Auer)
: -
(per-
(persistence layer) , .
,
, , ,
,
. -
. , -
,
, .
, -
, -
. -причинами.
-
,
. , -
, -
.
-
XML. ,
? Web -
, -
. , ,
, . - , -
XML
, -
. . ,
. , -
XML , -
, ,
.
.
, , , , -
, . ,
100 5
. , . -
, . , , -
, , .
,
. . -
,
. , -
, .
, , , .
, -
-
(customer stories) , .
, ,
, : , - -
, / -
, . -
, , , , , ,
, -
. , , -
. .
(Ken Auer)
, , ,
,
. , , -
. ,
, -
. ,
,
,
.
-
, , , ,
. ,
. -
,
. , -
,
. , -
, , ,
, -
101
.
, , ]
, .
,
, .
.
: . ,
X, .
: , ,
X.
, .
: . ,
, , -
, , .
. -
.
, - -
, .
, , -
, -
.
, . -
, , -
, «читать» .
, ,
. - -
, -
. , ,
, -
. , -
. -
.
, , -
, .
.
. ,
. , , , -
, . , - -
, ,
. , « -что». -
.
, , .
-
(например, ),
(simplest thing that could possibly
work):
102 5
(customer stories), (tasks),
, (acceptance
tests). .
(unit tests),
, .
-
FAQ ( ),
- . FAQ .
(Ward Cunningham)
, WyCach .
, -
Wiki,
. 30-40 , ,
, , . -
10 20. WyCach 300 ,
Wiki-FAQ
10 20 .
Copyright © 2001 by Ward Cunningham. All rights reserved.
. , -
, , (acceptance
tests), . -
, , -
4.
. , -
, , .
,
, , , -
.
, -
. , -
. (acceptance tests).
.
, -ни-
- . -
, , ,
. -
,
. ,
. , -
, -
103
. , , -
, . , -
. -
, , .
( -
), , -
, .
, .
(estimates) , -
. 7%. -,
, (acceptance
tests), .
, -
. , -
-
. ,
, ,
. ?
(Ken Auer)
Extreme Tuesday Club (http://www.
xdeveloper.com). , , : «Ка-
«
?» .
: ?
: , .
: , -
(acceptance tests).
: , ?
: .
: , , -
?
: ?
: , .
: . , ,
, -
. , -
: ,
. , -
? -
104 5
, . ,
. ,
. , -
.
.
, ,
, .
-нибудь, -
.
(Kay Johansen) (Roy Stauffer)
1999 2000 ,
. -
, , -
.
.
. -
,
, .
,
.
, ,
.
, .
, -
-
, .
- .
-
.
. , -
, ,
(test-first) (refactoring).
Immention1, -
.
-
, -
.
, , ,
,
Immention wcb- http://wvvw.objectiiientor.com.
105
. , , -
. .
,
, . -
. ,
, ,
, -
, . ,
,
, . -
. , -
, .
, .
-совещаний1 (stand-up meetings)
( ?).
«летучки» (stand-up meetings) . -
, -
. .
, -нибудь, -
. 15 .
, - -
. -
.
(test-first),
,
, -логики, ;
, , -
. ,
, -
. .
- ,
. (Iteration
Planning) , -
, - ,
, , .
, , -логику,
, , , ,
, -
. , ,
. -
, , . -
,
, -
.
«летучка» « ». .
.
106 5
,
, , -
(Iteration
Planning), ,
(estimates), -
. (Iteration Planning) -
.
, , -
. -
,
, -
, , -
.
, ,
, (заказчик) , -
. ,
,
, , -
, , -
.
, , . -
-
, ,
.
-
. .
,
-
. , -
. ,
.
,
. - -
- , -
.
,
. , -
. -
,
- . ,
,
.
.
«
», .
7
. ,
.
. -
,
!
Copyright © 2001 by Kay Johansen and Ron Stauffer. All rights reserved.
,
.
, 16:18
.
. .
, .
, , -
, , -
.
,
. . -
. , .
. . -
, , -
, .
. ( ) -
.
.
,
. - .
. . -
, -
, . ,
,
. ,
, -
. , ,
. ,
109
.
, -
( ). -
, ,
, , .
.
. -
, ,
: -первых,
; -вторых, , -
, ,
, . -
, ,
. ,
, , , -
. -
,
, -
. .
.
, , , .
,
- .
-
. ,
, . -
- (stand-up meetings) -
. ,
, . -
, .
,
. - . -
.
. .
(Roy Miller)
-
.
. , 2.0 -
, . -
-вопросов,
.
110 6
, .
, 2.0, -
, ,
, . -
, ( ),
. -
. -сто-
- .
, -
. , , -
.
.
, , -
, , .
-
. , ( 25 ),
-зале. -
,
. -
,
. , ,
, , , -
«Титаника», , . , ,
, ,
, « -
».
.
, 2.
-
, . -
.
-проектом,
: « ! ! -
, , . ,
, , !» -
, «Join the Extreme
Programming Software Studio ... Feel like idiot every day!» (
Extreme Programming Studio ... !). -
, , , , -
, . -
.
,
.
111
, . , ,
.
, (
, ), -
, -
.
.
. , -
( ) , -
. ,
, . ,
, ,
. . -
, .
.
. -
. ,
. . , -
, , , -
. ,
. -
(coach) , .
, , -
. . . -
. , -
.
-
, , .
. , ,
.
, . , -
. , ,
. ,
, ( ),
, , ,
.
,
, -
, ,
, -
.
-
.
112
: , , -
,
!
: . , -
? -
, ?
: !
, .
: . .
, . .
:
: ! , !!!
: .
. . ,
. .
. . ,
, . -
, . .
. -
, .
( ),
. ,
. .
-
,
- . ,
.
: , :
«плюс» «минус», .
, «ноль»,
, «сегодня».
: . ,
«плюс» «минус». «ноль»,
,
.
(раздражаясь): , ! -
, «ноль», «сегодня»,
, , -
«плюс» «минус».
: . , -
. , , , .
: . , ". ,
.
: . , ,
.
: , ,
?
: , ? (Пауза.)
, , . ,
, ,
, today, «сегодня», Y yesterday,
«вчера», , ,
. , -
«ноль», , .
«ноль»
«день/месяц/год». «плюс» «ми-
«минус», , ,
. , -
, . -
, ,
«плюса» «минуса», -
-
. , , -
«плюс» «минус»,
. . ,
. ,
« » « », «плюс»
«минус». ,
, ?
: , . -таки, ,
«ноль» Tab, -
?
: ,
, , .
, «плюс» «ми-
«минус». , «ноль», , -
.
, -
. -
, ,
. «ноль>> . -
. , , ,
, - .
: -м-м... - ,
«ноля», .
: , .
, , -
, .
.
? .
, . ,
.
114 6
,
, .
, ? -
, ? .
: « .
, . !» -
: «Нет».
-
, . -
, -
. .
. . -
, , .
.
, ,
,
. ,
. , .
, -
, . , , -
. , , . -
, , .
.
, . , -
, , -
, . , , -
. , ,
, .
, -
. -
,
. .
,
, , . ,
. , -
,
.
-
. ,
.
, , , , ,
, -
. ,
,
, , .
, .
-
. ,
.
, -
:
116
-вопросов;
;
(testing first), ,
(unit testing);
;
(refactoring);
.
.
, ,
, .
A809-1865)
.
. -
, , -
.
1914 (Ernest Shackleton) -
,
, . -
.
27 .
1915 , 85 ,
, «Эндьюранс»1, ,
. 9
, .
, , . ,
. 1916 . -
.
- (stand-up meeting).
, .
, . , -
.
, , .
, -
. -
. , ,
, . , -
, 2.
Endurance . . .
. (A. Lansing). Endurance: Shacklcton's Incredible Voyage (Эндьюранс: -
). Carrol and Graf Publishers, Inc., 1959.
118 7
-
, . ? -
, 200 -
1997 1999 1.
40% 67%;
30% -
127%;
22%;
47% - .
, -
, , -
. .
, -
, , , ,
. , -
, : (travel
light).
, , , . -
, .
, ,
, . ,
, , , -
. , , -
. ,
, , ,
,
.
, .
,
, .
, -
. , , -
.
, , -
. , -
, , , , , -
. (J- Highsmith). Adaptive Software Development.
OOPSLA 2000. Ma (Michael Mah) QSM Associates.
119
, , , ,
. , . -
, -
.
, ,
, ,
.
. , , , -
, . -
, , , -
.
, , -
,
, ,
.
,
, . , , -
, , ,
.
, , -
, . -
. -
, , ,
. -
, , -
12 .
, , . -
:
1. .
2. .
3. (testing first), ,
(unit testing).
4. .
5. (refactoring).
6. .
, ,
, ,
,
. -
.
,
.
120 7
,
. , -
, , , . -
, . -
, , .
. ,
.
, : «Конечно, , -
. - -
. , ,
, 70% ...» .
. , , -
- ,
.
,
. ,
,
. , , -
, .
, -
, , ,
. .
, -
.
(Ken Auer)
( ), -
.
, ,
, -
. , ,
, ,
, . . « -
, , », .
.
. , -
:
: ?
: , .
: ? , -
?
: ! . , -
, . ?
121
: . , (менеджер, -
) , : «Конечно, ,
X, .
. , , ,
, ». -
, , ,
. , -
, -
. , ,
, , ,
, , .
: ! ! -
. .
: . ,
, , , ,
. -
.
-
: « , -
, » (make it run, make it fight, make it fast1). -
-
. , .
, -
, . -
. , ,
. , -
- , , .
12 , -
. ,
, .
, -
, .
-
, .
-
, , .
, -
. -
. , , -
.
, . ,
. -
, . ,
, . -
, - .
122 7
.
, , -
. ,
. , -
-либо, , , ,
, .
, .
, ? ,
, .
, -
, . :
;
;
;
.
.
, -диске, -
- .
RoleModel
, .
,
. ,
. ,
(refactoring), , -
. 30 ,
. ,
.
, -
. , -
, . :
, ?
,
. , -
, .
. ,
.
.
. , -
. .
123
. -
, . , -
. ,
. , , .
. ,
?
, -
. , ,
.
. ,
, . -
, ,
. -
, .
(Ken Auer)
- ,
, .
, , ,
. ,
- , -
? .
-
, ,
, . ,
. -
. ,
, .
, . ,
, , . , -
, , -
, ,
.
.
. ,
.
, , , -
,
, . -
, . -
, , -
.
124 7
.
.
(Frank Westphal)
-
, , ,
. Channel One,
, -
. -
,
.
-
, ,
. -
. . -
:
?
?
?
, , -
,
. , -
, ,
.
, -
. , -
, .
, , -
.
Copyright © 2001 by Frank Westphal. All rights reserved.
.
.
. ,
.
.
,
, , ,
. , .
, , .
,
125
(например, ). -
, , .
, - (stand-up meetings)
.
, . -
, . -
, . .
, .
-
.
, . -
- -
. , . -
, .
, , , -
:
, -
?
, ?
, ?
,
?
,
?
, ?
, ?
, ?
, .
.
.
,
, ,
.
127
, .
. , -
, , -
. ,
, -
. .
, -
,
, -
. .
, . -
. ,
, .
,
. (lightweight) ,
- .
, . ,
.
, -
, . -
-
. .
, ,
.
-
, .
. ,
? «уникальную» , -
. ,
.
(Ken Auer)
, -
-
. ,
.
, , -
, -
. .
, -
. ,
128 8
. -
, , , .
,
, ( -
).
, -
, ,
. ,
, ,
. !
, -
. , -
, ,
. - -
, . -
.
, , . -
, . ,
.
? .
(Ken Auer)
. -
. .
.
. .
, , ,
,
. , , .
, . -
, ,
. , , ,
. ,
. ,
, .
. « ! . -
, ».
. ,
, , .
, -
. , ,
. , . -
. -
129
. ,
, , . ,
, , -
. : «
». ! : «
?!» , , , , .
.
, -
. .
, , ,
. - -
. -
, .
,
, .
, ,
, - , -
. ,
, - - .
, - , -
.
,
, .
-
(stories).
, , .
, , , -
, . -
. (user stories).
. -
: .
, -
, . , -
- -
. , .
, -
.
5 . 509
130 8
(acceptance tests), -
. , , -
. -
- , , , -
. , - -
. , , .
, , - . ,
. , -
.
,
, , . -
, .
, , ,
, . ,
, , .
: ,
. . ,
. ,
,
. , , ,
. -
.
, -
, . -
:
; ; ;
, . -
, , .
. -
.
, , : -
. ,
, .
,
, , .
,
. ,
, , . -
.
131
(Jim Highsmith)
,
, , ,
, . , -
,
.
, -
, , . -
,
, , .
, ,
.
.
. -
: « ,
X?», , , : «Похо-
«Похоже, , , », -
, -
. , -
, .
, , ,
.
(Planning Game).
, -
, - . «
» . -
. !
, , -
. , ! , -
, -
, ,
.
« -
».
,
, .
Refining the Practices ofXP (Совершенство-
( ) OOPSLA 2000, (Dan Rawst-
132 8
home) ,
(mentoring), (pair programming)
, .
(mentoring) , (pair pro-
programming) . , -
, , -
.
, ...
,
. .
: -
, , -
, .
, -
.
(Margaret Miller)
, ,
,
.
, ,
. (Ward Cunningham)
:
, .
, .
, .
.1
-
. , -
-
.
.
.
, .
, ?
?
, -
? , , -
-зале? -
?
, . -
,
, , . «Кен,
. ?» «Боб, , . ,
(W. Cunningham) , 2001.
134 9
. .» « , -
- ?» - -
, , -
. .
, -
, :
1. ,
.
2. - (stand-up meeting).
3. ( -
).
4. .
14.
, -
.
:
1.
.
2. -
, .
, -
. , , -
, . -
, , ,
, . , -
,
.
. -
,
(если, , -
), . , -
, , -
, , ,
.
-
.
,
(Jeff Canna)
,
, ,
135
.
.
. -
, ,
, , , , , -
.
, -
,
. , ,
. -
. -
.
, ,
. -
- . .
.
, - .
, . -
, .
, OOPSLA, -
, , ,
. ,
, -
. , , -
, . ,
, .
, - , -
, , . , -
, Fie
.
.
, , ,
, . -
.
Copyright © 2001 by Jeff Canna. All rights reserved.
, ,
. ,
-
. -
«1984», Apple Computer
Apple Macintosh.
-дурацки: , -
( ) .
, -
, . ,
.
136 9
, ,
. -
. -
, . -
.
,
. -
- , -
. , ,
. -либо, -
, , -
,
.
(Ken Auer)
VisualAge for Java. -
, ,
VisualAge, -
. , -
VisualAge for SmallTalk,
IDE. , ,
VisualAge for Java, -
. -
, VisualAge, . ,
-
. : -
, (вообще-
), +<пробел>, -
.
, , . -
, -
. ,
, ,
.
+<иробел>. , -
« VisualAge» , -
.
, - : « ,
?» ,
1г1+<пробел>.
. « , !» . « ?» -
. «Да, , ,
.» VisualAge -
, -
- (stand-up meetings) 137
^ . -
, -
.
, , -
,
-
. , 90% -
-
- (stand-up meetings).
- (stand-up meetings)
. ,
-
.
, , ,
, ?
, ?
-совещаний. -совеща-
-совещание' (stand-up meeting) ( )
( , )
.
,
. ,
, .
, -
, . -
, ,
, .
, -
. -совеща-
-совещания. - , -
, , . -
, ,
, .
(
) :
;
, ;
1 stand-
up meeting. : « » «летучка». «экспресс-
». . .
138 9
, -
;
, .
-сове-
-совещаниями. 1.
,
( ) ,
. , -
. -
. , -
.
-совещания, , -
. .
, - -
. , , -
.
(Laury Williams) -
-совещании, .
, : « , -
. , , !
, -
.»
- , -
, . -
:
;
, , -
;
, , - -
;
;
, .
, -
, -совещаний.
,
. -
.
, , , -
, . , -
- ,
. -
1 stand-up meeting « ». . .
- (stand-up meetings) 139
, .
, ,
. ,
. -
, .
- .
, . -
, ,
. -
-совещания.
, . -
- :
1. ( ) , -
?
2. ?
3. ?
,
. , -
, -
.
. , -
-совещаний.
-совещаний, -
.
. - -
-зал. , -
15- -
. ,
. , -
15 .
, , -
, - .
- . ,
, , - -
. , -
,
.
, - (stand-up
meetings) .
. -
12 .
, -
-совещаний.
, , -
-совещаний. ,
140 9
-
-литературе, -со-
- .
-
. .
«тяжеловесные»
.
. , -
,
,
.
. , -
, -
.
, .
(Roy Miller)
. 1.0 2.0 -
-
. ,
, . -
,
.
-
. -
, ,
. ,
, , . ,
, . -
,
. ,
, - -
. -
, .
.
, «тяжеловесный»
, . -
, . -
: « , .
141
». - . .
, , -
.
.
: -
.
. ( -
, ).
.
. , ,
.
, -
, . -совеща-
-совещания, 90% ,
.
. -
, . -
, - ,
, , -
-совещании. .
, .
-
, . -
, , , -
- , ,
. ,
, - -
. , .
,
. , - ,
( , ),
, , : « .
, ». , -то, -
,
, .
: « . . -
? ».
,
, , ,
, , -
. -
, .
142 9
, -
. ,
.
(Tom Kubit)
, -
. -
, .
,
: -
, , -
.
.
,
. , ,
, -
.
, Java Factory ( Java). -
. , -
.
. 9.1.
. 9.1. Java
! -
.
, -
. , ,
, -
. , -
143
, , . -
, , , -
, «запахов» , ,
. , -
.
-
. ,
2,5 .
, .
, .
. ,
. -
.
.
. 9.2.
. 9.2. ,
Java, , -
, , -
.
, .
Copyright © 2001 by Tom Kubit. All rights reserved
,
. , ,
, ,
. , /
144 9
. , ,
. .
(Ken Auer)
-
, -
. . -
.
, -
. -
. ,
.
, -
. -
. , ,
, ,
, ,
.
, -
, .
- , , -
. , -
. - ,
, , , .
, -
. . -
,
. , -
. , -
, i iac , .
. -
$80 . -
. ,
, , -
. .
, -
. -
,
180 .
, , .
,
, . ,
, .
. 9.3.
: , ,
.
.
145
. 9.3. ,
, . -
14 Extreme
Programming Software Studio. -
. .
. -
, -
.
. ,
. -
. ,
. . 9.4.
1.
(Alistair Cockburn) , -
2.
, , -
. -
. 4x8 3
1 , -
. . ,
. . .
2 А. (Л. Cockburn) Selecting a Project's Methodology ( )//1
Software. , 2000. . 6-71.
3 122 2 . . .
146 9
$20. 10 .
, , -
.
. $300
.
. 9.4.
(Extreme Programming Software Studio)
-
1
1
/ 2
1
2
/'
147
.
,
. ,
, , -
.
,
. -
, -
.
, , -
. , -
, -
.
, .
... , -
.
, 8:32,
,
-
.
, . -
, -
-решений. -
. -
.
,
. -
, -
.
-
.
-
:
,
;
-
, -
;
, -
, ;
149
,
,
, -
.
-
, . , -
. -
. , ,
, . -
.
,
, , -
. ,
, , -
, .
, -
, -
.
-
. , , :
-
,
;
-
, -
,
, ;
-
;
-
, - , -
-
.
.
, .
, ,
.
, ,
, .
.
150 10
, -
. , ,
. , -
. .
, .
-
, , , -
. , -
, .
,
. .
, ,
. - ,
-
. , . -
.
. -
-
(Release Planning), , .
(Iteration
Planning), , .
- (stand-up
meeting). -
, - . -
.
,
. -
. , -
.
, , -
.
, -
. . ,
, . -
.
-
. -
. . -
,
, 151
.
, ,
.
.
,
, 1. -
, , -
. , -
, .
.
, « ».
, - -
, .
, , .
, -
,
:
1. -
.
2. (user
stories).
3. ( ),
, , -
, , .
,
. -
, -
(acceptance tests),
.
, -
. ,
, .
, -
, . ,
-
, , -
. -
, , .
. Q. Highsmith). Adaptive Software Development ( ). -
OOPSLA 2000.
152 10
- .
, , : «
-решений». . -
. -
.
, ,
, . -
-решений. , , -
, -цели, , -
, .
.
- -решений,
- . -
( ), -рещений,
(customer). ( -
), , - .
, -
. ,
, ( ). -
«заказчик» ,
, . -
, , «заказчик», -сто-
- . , , -
, .
, , -
«разработчик» (developer). ( )
, .
, ,
. , -
. ,
(
) .
«разработчик» .
, ,
-решения. -
, , -
.
. ,
. ,
, , , -
.
. . -
, -
. .
153
-
-решений. .
-решений, ,
, (stories)
. - ,
, . -
, -
, . .
,
. ,
.
, ,
.
-
, -
. ,
. , -
, ,
.
, -
. (Exploration
Phase) (см. 11).
-
,
(Planning Game),
(Iteration Planning). -
12.
-решений. , -
, -решений. .
- .
. -
. -
, . -
, .
, . -
,
.
, -
( , -
), -
. , -
, , ,
.
, -либо,
,
154 10
. -
.
,
, . -
,
. ,
, .
, , ,
. -
. -
, .
, -
, -
, . -
- .
. -
.
,
: , , , -
. (gold owner),
(goal donor). , .
, .
. , , .
, -
.
. ,
. ,
, , , .
:
1. , -
-решение.
2. , -
, .
-
. ,
, . -
, -
-
. , -
.
, , -
, . -
, .
, 155
.
, -
,
, . -
, .
, ,
.
, ,
:
, , .
, , . ,
.
,
. . -
, , -
, -
, . ,
, -
.
. , -
, .
, .
-
, -
. -
, , .
, -
. ,
, .
, ,
. , ,
. .
, -
.
,
. , ,
, , . -
.
,
CASE-инструмент.
CASE- . -
156 10
, , -
. CASE Card-Assisted Software Engineering1 (разра-
( ). , CASE-
,
.
, -
,
. -
, -
.
.
, , -
.
(Ken Auer)
.
.
. , ,
, , ,
, .
-
, , -
. -
, , -
. , .
. -
,
, , -
.
, , ,
.
, -
. , -
, .
( -
). ,
, -
. ,
,
. , -
,
. . ,
(Keith Braithwaite) Extreme Tuesday Club ,
.
, 157
,
.
, , ,
, . , ,
.
, -
. , , ,
, -
- , -
.
. ,
, -
. , ,
, ,
, « -
, ».
,
. -первых, , -
, , -
. -вторых, -
.
, . -
, , -
. -третьих,
.
. , , -
. -
. , , -
, ,
.
. , -
. , -
, .
. -
:
, . -
, .
-
. , ,
, .
40—50 . .
, -
200 . -
. : « ,
,
. , -
158 10
, , -
. , ,
, -
, .
, ,
». .
.
. ,
, , -
.
. , ,
, ,
, ,
. -
, -
, .
, , -
-
, -
. ,
, 40 .
. , -
, . -
. -
. .
.
, , , -
. , -
, , .
.
, ,
( )
.
, -
. .
-
.' . , -
,
, -
.
,
. , , ,
, , -
, 159
> ,
. ? .
-
, .
-
, .
, -
. , -
, -
.
Ayep (Ken Auer)
-клиентом, ,
. -
,
.
.
, ,
, , -
. , -
. .
.
, , -
.
, , ,
, .
, -
. : «Да, ,
N !»
.
, ,
- .
, -
.
.
,
. -
, ,
, . -
: «
, ,
, -
?»
160 10
, , -
,
, , . -
« 2001 »-.
,
.
. , -
, , -
. , -
, .
,
, -
. , ,
- -
. ,
- .
- , -
, .
,
200 . , -
, -
. .
-
: ( -
), (
) (
, ).
.
,
, -
. ,
, .
, ,
.
. -
.
, : «Отлично, -
». -
: « . ,
, -
,
, . 50 -
, .
, ,
, ,
161
, .
,
. ?» -
. : « ,
, , 300 , -
. , , -
50 . ,
,
».
« , ?»
. «Нет, . , -
, -
, ,
, ».
. -
,
,
, . -
, ,
. -
.
. , ,
,
.
,
,
.
-
, -
.
. , -
, -
.
, -
. -
? (Planning
Game)?
, -
. -
, ,
6 . 509
162 10
,
, . -
- .
, .
. , -
. , -
, , .
-
,
. , ,
. -
. ,
, -
. , -
, -
, , ,
.
. .
-
, .
.
(Travis Griggs)
, (Planning Game).
- . web-
Wild. -
. ,
. . -да... -
. ,
.
. .
. -
. , .
, .
. ,
. . , -
, . -
web-браузеру.
Wild -
. -
, ,
, . . web-
. ,
, , -
163
, , , . -
Wild , -
.
.
, .
,
, .
,
! . -
,
. -
. 10 .
, .
. ! -
-зале, , .
. -
. -
. , .
? . , -
, . .
. , -
, , ,
. ,
. - , -
. .
. -
.
. . -
, , -
. ,
.
. .
, , -
( 30 ).
. -
. -
.
. -
, .
. -
. .
. , .
. -
. ,
, .
164 10
. , -
, . -
.
. -
. ,
-
. -
. .
-
. , -
, .
. -
Wild, .
, -
-
. .
.
(Senate Game). -
.
. . -
. . -
,
.
. -
. (
, . .). -
. ,
. , .
? . -
. -
, -решений. -
. , -
.
, ( -
) .
,
. -
, .
. , -
, -
. ,
, .
-
, .
Copyright © 2001 by Travis Griggs. All rights reserved.
165
,
. , ,
.
, -
.
, , -
, -
. ,
.
.
,
(Ken Auer)
RoleModel ,
, .
.
. -
, ,
, , -
. , -
.
«Кен, , - . -
, ?»
: «Наконец-то! .
, . ,
». : « -
. .
. , , -
».
.
, - .
CASE-
, $1.
15 ,
. : « -
, ,
». « -
, . , , -
. -
, , , -
».
40 . -
. . -
166 10
, , -
. -
,
« , -
», «функциональность, ,
» « -
, ». -
,
, -
.
,
. , Web. -
. -
, ,
-
.
60 ,
. .
(craft units) -
« X», ,
. , (craft unit)
(ideal engineering day) Extreme
Programming Explained1. ,
, ,
. « , , $Х/месяц»
. «Хорошо, ,
: , ?» «Думаю, .
, , -
».
«Хорошо, , 12 .
. , -
.
12 , , ».
15 13 (
, ). , 13 ,
, -
, -
, ,
18 . , , -
,
12 , .
« , , .
?» «Настолько,
, . ,
: . . .: , 2002. . .
167
. .
18 , 12 -
. , .
, .
, - ,
.
, ,
, - -
?»
«Безусловно! . , -
. ,
- . , . .
, -
, , .
, -
.»
«Хорошо, ? .
?» , .
. « . -
. , -
.
,
.
. -
, ,
- , ,
.»
« », .
. « , -
,
. -
.»
. « . ,
.»
, -
, , -
. ,
.
(Peter Merel) -
(Extreme Hour). , -
,
.
http://c2.com/cgi/wiki7ExtremeHour. -
.
168 10
, -
. ,
. ,
, .
.
, .
:
, -
. , -то, ,
, . -
, -
. , , -
, .
, -
.
, .
? -
-
.
(Ken Auer)
-
RoleModel Software. ,
.
,
6 10 . :
, .
, RoleModel,
.
-
. , , -
, .
-газонокосильщика, «
». ,
.
,
.
, , , ,
, .
.
10
.
-
169
.
. ,
. , : « -
», : «
,
?»
,
. -
.
, -
. ,
, , -
.
10
: ( -
), (
) , -
. , -
. .
. -
, ,
(craft minutes) . -
. -
, 10 ( , -
, , , « -
»),
, .
.
5
(craft minutes)
. , -
( , -
),
(load factor), .
, , , 40 -
, ,
40/3, 13 (craft minutes).
.
.
, -
.
10 1
, -
. -
170 10
,
. , -
. -
. ,
.
-
, ( ) -
, .
, , -
.
5
,
. -
, .
, .
, -
. -
- .
, , -
, .
10 2
.
, -
-
. ,
.
, . , -
.
, -
( ) -
, .
, , -
.
,
.
5
, -
? ? -
? , ,
,
. -
, , -
.
171
, , -
, ,
. , -
.
, -
.
,
.
, , -
, -
, ,
. , ,
, .
, ,
.
, .
, ,
, 1. , , -
, ,
, .
, -
, ,
.
, ,
, . -
? -
, .
, -
. -
, , -
, ,
, ,
, .
(К. Beck)
(М. Fowler) Planning Extreme Programming. Addison-Wesley, 2001. : ., .
: . . .: , 2003.
. .
173
, ,
, , -
.
, .
. -
, .
, , -
. -
, , .
-
, , -
.
,
. -
-
, , . -
, .
,
, , -
. , -
,
, , -
. ,
- , -
- , -
. ,
, ,
,
.
, , -
, . -
.
, ,
10-20% (если, , - -
). ,
. -
, , ,
, .
. - -
174 11
.
, ,
. . -
, , .
, , ,
« - ».
, -
( ,
). ,
.
. , , -
. -
. -
, . ,
, -
. ,
. , -
, , .
.
,
, . -
, .
, -
. -
. , , -
, . 15
-
. ,
, .
-
,
. - -
, , -
. ,
.
, -
.
, , , -
. , -
, , -
. . -
:
, ,
;
175
-
, ,
;
, -
.
, .
,
. , , -
, .
,
. , ,
.
-
. . .
-
. , -
. , ,
.
, , -
. -
. -
, , ,
.
, .
, . -
, . -
, .
(Planning Game). -
, .
, -
,
, . -
, : -
.
, :
1. (Initial Planning Game).
2. (Exploration Phase).
3. (Release Planning Game).
(Planning Game) , -
. , -
. , .
176 11
« » , -
- . , -
RoleModel -
(Project Planning Workshop). , -
, ,
. , , -
,
.
(Initial Planning Game)
(Release Planning Game) :
(Initial Planning Game)
, , -
.
, -
. (Release Planning Game) -
.
,
, , -
. -
,
, -
. ,
, , , -
.
:
.
(и) (и)
. (ручки)
. -
. -
:
1. .
2. . -
.
3. ,
, (М)
N ( -
).
4. ( ) -
, , .
. -
. , -
. .
177
, .
, . -
,
,
.
(story),
(use case), (functional requirement),
(system goal) - , -
? , , -
. -
: « (story) ,
, -
, ».
, -
. , -
. - ( -
) ,
. - ,
.
, . -
: « , ,
, .
- . -
, , , -
». - , -
. ,
: , -
, -
.
, , -
. , .
, ,
. . -
, , , ,
.
. -
, . ,
.
,
-либо,
. , -
-
. , , -
. ,
178 11
. -
, . , -
,
.
,
. -
,
. -
? ,
? ,
. : , -
-
.
,
. . ,
,
. (или, -
, ) .
, .
.
Extreme Programming Explained* ,
, -
. ,
. . -
, .
, , -
,
(
, ).
(Initial Planning Game) -
. 10, -
. RoleModel , ,
. -
, -
, . -
,
.
, . -
-
: . . .: . 2002. . .
179
, -
, .
, -
:
1. ,
( ).
2. , ( ).
3. ( , -
).
.
, , , -
.
RoleModel ,
(craft unit).
, (ideal programming day) ,
Extreme Programming Explained.
, ,
-недели. -
-неделю. ,
. , ,
. -
.
.
, . , -
, -
.
, -
. , -
. , -
. ,
, . ,
. -
, -
. -
.
1: : «
». , -
?
: : , , .
1: ? -
?
: -м-м... , -
: , -
.
180 11
1: ?
? , ,
, - , , -
, - .
: , . - ?
1: -
.
: , ,
?
1: .
2: , -
.
,
. , -
, , -
. , -
.
1: . , -
.
: . ,
.
2: -
. ,
. .
, ...
: , , ,
. , -
.
1:
. ,
.
, -
, -
. , -
, -
. -
, ,
. , -
, -
, ...
2 (прерывая): , , -
(enablers), -
,
.
1: ?
2: (enablers)?
181
1: .
2: ! , Observer, ...
(прерывая): . ,
?
2: . , .
,
. , , -
, , -
, -
, . ,
, , ,
, . -
?
: .
2: . ,
.
.
, , -
. -
,
, -
. -
, . , -
.
, ,
.
1: , -
, . -
, .
2: ... , -
?
: .
2:
. -
.
, -
.
. -
, , .
1: , . -
,
. ,
, , , , -
, .
,
. , -
.
182 11
2: -
. , -
.
.
1: , -
, , .
2: ... ( ) -
. , -
, -
.
.
3:
, , -
.
2: .
1: -
.
, ,
.
2: !
3: , , ,
.
: , . ,
?
1: , .
2: , , .
, .
: .
2: . . ,
- , .
1: , . ,
: «
».
: , ,
, .
1: ?
, . -
.
, : «
» -
: « , -
, .
: , , .
.
-
183
-
, . , -
, .»
, , , -
, .
, . - ,
. ,
. ,
-
.
. -
,
.
RoleModel :
, ( )
. ( « -
» .)
, .
, , , -
. ,
, , -
.
, , , -
, -
. , , ,
.
, , -
.
:
: ?
: , , -
. , -
, , , -
, . ,
, .
: .
, .
, -
. -
. ,
, -
. , -
184 11
, . -
?
: !
, , . -
, ,
, .
: .
: .
: . ,
.
. ,
.
: ?
:
. ,
, ,
-
. : « -
». ,
, -
. , -
-
. .
, -
, , -
. : «
-
». , -
-
. ?
: , . -
, -
.
: . , -
, .
, ,
, .
,
. -
, .
, -
.
: , -
. .
, .
: , , -
.
185
-
: , -
, , .
, ,
. , -
, -
« ».
,
, . -
: , -
. -
, .
, ,
, -
. , -
-
. : «Пере-
« ». -
,
, . -
: « -
». (Initial Planning Game)
« * -
. « » -
. -
.
«
»,
.
. ,
, . ,
-
- , -
. -
.
:
.
.
, -
. ,
.
,
. ,
186 11
. , -
-
. -
, , .
.
, ,
. . ,
, , -
. RoleModel
,
. ,
, -
. , :
, .
.
(Initial Planning Game), ,
-
. .
. , -
, -
. -
. .
,
, . -
, , -
.
(Exploration Phase).
,
. ,
, - -
. ,
. , -
, . , , -
- .
. , -
, . ,
,
, .
.
? -
, .
, -
.
187
, ,
. ,
, -
.
.
-
, .
.
? ,
(gold owner). -
,
. , -
( ), -
. ,
, , ,
, .
, ,
. , ,
. -
16 D -
2 2 = 16).
.
, (например,
), ,
. .
, :
, , -
. , -
-
. , , ,
. , ,
(Initial Planning Game), -
, .
,
. , -
, , -
. ,
. :
, -
. ,
14 , -
16 , , 12 . -
. -
, .
188 11
, , -
. -
, , -
, .
, . ,
, .
, -
«желательно, ». -
, . -
- , , .
, -
. -
, -
.
, -
. -
«обязательно». -
.
« » . -
, ,
. , -
,
,
. -
,
, -
.
(Initial Planning Game)
(Release Planning Game) -
:
( )
(Exploration Phase).
.
(Release Planning Game)
,
.
.
, -
. -
, -
«обязательно».
-версий.
189
(Initial Planning Game), -
(Iteration Planning) -
, .
(Exploration Phase). -
, :
, ;
;
;
, ;
.
,
. ,
,
, , ( ,
).
, ,
. (Steve Freeman) : « -
-проектов,
- , -
, . Oracle
».
, - -
RoleModel, .
:
;
VisualAge for Java Enterprise Edition JUnit -
;
, -
,
; Java,
;
«модель-
-контроллер» (Model-View-Controller, MVC);
-
, ;
Java, -
; -
;
190 11
, -
, ,
, -
.
, -
(Release Planning Game). -
. , -
, -
, .
, -
, .
, I . .
, -
. ,
. -
, .
, -
. ,
, .
,
. , -
. , -
-
. :
,
;
, .
-
, ,
, ,
. '
, -
( ). -
, , ,
-
, .
, ,
, . ,
.
(Iteration Planning) -
. .
.
, .
192 12
(Iteration Planning) -
(Release Planning) .
,
.
-проектом.
, -
. , -
, , -
. ,
.
-
, .
.
, .
, , -
, ,
, . , -
, . -
.
(Paul Grobstein) , -
« » « -
»1. -
, .
. -
, ,
, .
,
,
, . ,
- , -
, , -
.
.
« ».
,
. .
,
. (P. Grobstein). Science as «Getting It Less Wrong» ( -
). , Bryn Mawr Serendip,
1993.
193
. -
,
.
-
. -
,
. , ,
. .
? ,
. ,
.
. ,
. , -
, , ,
, .
,
1-2 .
. -
:
, -
. ,
, , . -
, , ,
.
, , .
: 1 .
, -
. , -
.
, -
.
. . -
: 1-2 .
. -
. -
. -
. (
), -
.
, . -
, -
,
. ( )
. :
4-8 .
. , , -
, .
7 . 509
194 12
, , -
. -
. -
: 4—8 .
-
, -
8 10 . , -
.
. , -
. ,
, -
(например, , ,
.). -
, , -
.
,
, -
.
, ,
, , -
. ,
, ,
.
-
. - ,
, , -
. ,
, -
. ,
, «
» - ,
.
,
, -
.
(Release Planning), .
:
: ,
.
: ? « »?
: . , , -
, . ,
. -
, .
195
: , , .
(Iteration Planning Game)
:
: , -вашему,
? ?
: , . ( -
.) -
, .
.
. -
, -кода,
,
( ).
. -
,
.
: ,
?
: , «се-
«сегодня». «вчера»,
. .
,
, .
, -
.
, -
.
: - ?
: ,
. -
. , , -
. ,
,
.
: , -
?
: , , .
,
.
: -
? : « -
», « », « ».
:
. .
: , -
?
196 12
: , , -
.
: , ,
, , -
?
: , -
, 48 .
, -
.
, -
, , -
, , ,
. , ,
. , ,
: « -
». , -
, , -
:
1. . ,
, .
2. , , ,
.
. -
, .
:
: , , t, today,
«сегодня». «вчера», , yesterday.
, «t-З», «t ».
: . ,
, , ,
. : t , ,
- ?
: -м-м... , now, -
?
: ,
.
: . -
?
: , . , -
.
: , «желательно, -
». -
.
: , . ,
.
: . , -
, ?
197
: , . ,
.
: ,
,
. , : « , -
»,
: , -
.
: , .
, . -
. , : -
.
-
?
: , -
Tab,
, ?
: Tab.
, .
: (пауза). , , .
, , -
.
: , .
, , -
.
:
, ?
: , .
: , .
: . , -
, , ?
: , . . ,
, t, «t ». , -
, ? -
, .
: ! ...
: -да... t . -
«сегодня» «вчера» ?
: , , ,
.
: -м-м...
: .
, « », « », « »
- ? -
.
: ? ?
198 12
: , , . .
«моль», ,
,
? «плюс» «минус»,
, , -
.
: .
: , ? -
, , .
: , .
: «плюс» «минус»,
, ,
-разделители.
«ноль», , -
, 01/02/2001?
: . -м-м...
, -
, -
. , , -
.
,
. -
.
, -
,
. , -
.
, . -
, , -
, , ,
-
.
-
-совещания. -совеща-
- , -
. - - :
« 11 ?»
, , . - -
, . - -
, .
,
.
. .
, ,
199
. ,
,
.
, , ,
, , , -
, . ,
.
,
. ,
, -
. , , -
. .
? :
1. . -
. ,
.
2. . -
, -
.
, , -
. , -
,
.
, . ,
, -
. -
.
, , ,
.
,
, .
, . -
, .
, -
.
, -
. - -
, . , ,
, ,
. ( -
) .
200 12
. -
, , -
. , -
, ,
.
, -
.
, -
, .
- , -
. -
, -
, , -
.
-
, . ,
, .
-
, , -
. , -
. -
, , ,
, ,
. , ,
,
, , ,
, .
. -
, , -
, , -
.
. , , -
. . -
, , ,
, . -
, . -
(«Ты, , -
, !»),
.
.
Planning Extreme Programming^ , , -
, , -
, , -
. .
: ., . : .
. .: , 2003. . .
201
, -
.
.
, , ,
, . -
(
, . .).
, -
.
, .
35% . -
. -
5-10%. -
.
. -
26.
-
. , -
. , , ,
, , . -
, .
, . -
, -
. .
, . ,
. . .
(Rob Billington)
, -
, -
.
, . -
, -
. , .
, -
, -
.
, -
.
Copyright © 2000 by Robert L Billington. All rights reserved.
,
. , -
202 12
. ,
-
, . .
, . ,
.
. -
, ( -
).
. ,
, , -
. .
. -
, ,
. -
, ,
, . -
, -
- , , -
. , .
.
, ,
/ .
. -
. -
. :
, , -
; t
.
, ,
, , . -
(Ralph Johnson)
: « ,
».
, . -
, -
, -
.
,
. -
203
. , .
.
, -
. ,
. (tracker), (coach) -
, . -
, -
, .
(
20 ), ,
. , ?
,
: -
? , -
(ideal days) (story points).
, , -
, -
.
.
, ,
, , -
. , - , -
. , ,
.
, , -
-
. .
, .
,
. , , -
.
, ? ,
. , -
, , , -
. , , -
. ,
, ?
Extreme Programming Explained
(load factor). , -
.
4- B0 ) , -
8 , , -
2,5 B0/8). Planning Extreme Programming
, -
, . ,
,
204 12
.
. , -
. , ,
:
-
;
;
.
RoleModel (craft
unit) . .
. -
2,5, ,
, ,
, . ,
, -
, -
, .
, -
. -
.
.
.
: , -недели.
,
.
, ,
35 . ,
, -
, , -
-
, .
. 12.1.
12.1.
15
18
10
19
16
20
2,5
2,5
2,5
4
2,5
3
6
7
4
5
6
7
35
205
, , -
, .
, -
. , -
(« -
?»). , -
. ,
, ,
, .
,
.
. -
, -
, . -
.
, , -
. (
) . -
.
, , , -
. ,
, -
. .
, -
. -
, (тест), -
(код), , «чисто»
, (рефакторинг), -
. -
, (пожелания), -
(итерация),
, ( -
), -
.
, ,
, . -
:
, . .
-
. -
, .
,
,
,
.
(George Bernard Shaw)
, ,
. ,
.
, -
.
Extreme Programming Explained -
, .
, ,
. , : « -
, ,
? , -
».
1980- ,
Objective-C , , -
, . -
.
, .
, ,
.
.
, , ,
. .
.
, , -
.
. , ,
.
207
,
, .
, -
. , -
. , , .
,
, ,
, -
. , -
, , .
. .
. .
(Ken Auer)
. , - ,
. , -
, . -
, ,
. -
: « ?»
,
. ,
,
? ,
, -
. ,
. , ,
. -
.
, -
.
,
. ,
ASSERT. -
, 10 .
: «Невероятно,
, , -
. ,
, !»
208 13 ,
,
, ,
, . -
.
, .
, ,
, .
,
. . , -
.
, . ,
,
, . -
, . -
, -
, .
1955 (Jonas Salk) -
, .
, , , .
. : « -
, , »1.
, -
. -
, .
.
, . -
, -
. , -
, , , -
, , : « ,
!»
, , .
, ,
- . -
, , , , -
.
, - ,
,
, -
. .
. . (J. . Simpson). Simpson's Contemporary Quotations ( -
), Hotighton Mifflin, 1988.
209
, .
.
, ,
, , -
. -
. .
- ,
. , -
, -
, -
. -
. ,
.
, ,
, ,
. :
« getMeal(PotPie) Shopper Store,
PotPie.
Meal, addToBasket(Meal),
Meal ...»
? , , -
Assertion ( JUnit). -
-
, .
.
, ,
. , , ,
, .
, , .
, , ,
( -
). -
? , ,
, , -
,
.
, , : «Прочи-
« , , ,
. , , -
». , -
-
? ,
? -
, ?
210 13 ,
.
, -
, -
. -
. ,
. , -
. -
, -
, - .
. -
, , -
. .
. -
, .
(Alister Cockburn) :
-
, .
, .
.
. ,
, }
,
.
, -
, ,
. , - -
. ,
. ( , -
).
, ,
.
.
(Ken Auer) (Roy Miller)
.
, ,
, .
, -
, .
:
: ,
. , -
. (A. Cockburn) . (J. Highsmith) «e-Business Application
Delivery».
211
, ,
, , .
-
, . -
,
, , , -
, . -
, ,
-
.
: , , .
: . , -
, , ?
: , . , , -
, , -
, , .
: , , , -
, , ?
: !
.
, - , ,
.
- , , .
, . ,
, .
(подразумевается, -
). , -
. -
-заглушками. .
.
(test suite).
. . ,
, ,
. , -
, ? . -
. , ,
.
, ,
.
. , , -
, .
.
, .
212 13 ,
?
(Ken Auer)
OOPSLA '99 ,
, .
-
. ,
, Java
. , ,
. . ,
, -
( ), , -
, ,
( ). -
, - ,
. , -
. -
,
30 . , -
: «Та-а-ак... , -
?» .
. -
. ? .
, , ?
. ? . -
, ,
? .
, ,
1. ,
-либо, ,
, , . -
, -
(например,
), -
, .
, -
. ,
-
.
Extreme Programming Explored2 (Bill Wake)
/кодирования. -
1 М. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. . -
. : . . .: -
, 2002. . .
2 У. (W. Wake). Extreme Programming Explored. Addison-Wesley, 2001. . 7-8.
213
, , .
:
1. .
2. . ,
, .
3. , ,
.
4. , .
5. , , -
.
6. , .
7. , -
( Once and Only Once).
8. .
, 10
. , .
, -
. , ,
. 2000 -
(Ward Cunningham) RoleModel
Software
(acceptance testing framework). -
RoleModel.
,
, -
.
, (test-
first programming), , -
, . -
, . ,
, -
. : « -
, ». , . -
. , -
. .
,
. , -
, ,
. , ,
, .
(Chet Hendrickson) :
. -
, , -
. ,
, , -
214 13 ,
, . -
.
. ,
. , -
, , -
. ,
. , -
. ,
, , ,
, .
« , ». -
1
, -
.
, ( -
get set). , , , -
( , -
). ,
.
.
, ,
. , -
, ,
, . -
- ,
. , ,
, , .
, .
, ,
. ,
. , -
, .
, , , -
, , . -
. . , , -
. (С. Hendrickson). , .
215
, , -
:
, -
?
, XYZ?
?
, , , -
. , -
, , -
.
- , ,
, - , .
. . , -
, .
, , -
, . , -
, , ,
.
.
, , , .
xUnit1 ( -
) , , -
, . -
.
. -
, .
, :
-
, ;
;
, ;
, .
, , -
, ,
.
, ,
, .
, ,
. :
xUnit http://www.xprogramming.com.
, -
. : JUnit Java, SUnit Smalltalk-, VBUnit VisualBasic, CppUnit
C++. -
216 13 ,
« -
, , -
(FICA1), -
, , , ».
.
. , . -
. , ?
, .
. , -
, -
: getEmployeeSalary(String employeeName). ,
. . -
, , getEmployeeSalaryO.
,
, getEmployeeSalaryO. -
. getEmployeeSalaryO ,
. , ,
. .
. ,
.
, .
.
PC, . -
-
, .
.
,
.
. -
, -
(User Interface, UI). ,
.
UI,
Federal Insurance Contributions Act . -
. .
217
-логики. , -
, .
, UI -
UI -логики. -логи-
-логики, , -
-логики.
UI. UI,
UI. , -
, UI.
. , -
UI , .
90% , .
, -
UI
UI .
, -
, ,
. -
Motorola iDEN, Microsoft
, PalmOS, , -
TINI (Tiny InterNet Interface), Dallas
Semiconductor.
Java
Web, Java,
-
.
Java.
. , ,
.
.
, -
, -
, , -
, . -
, . ,
-
? -
. , , -
, -
, , .
, , ,
.
-
, ,
218 13 ,
. . -
. ,
.
REFLECTION API
(Chris Collins)
-
Motorola iDEN. -
, Java.
: J2ME Gava 2
MicroEdition), CLDC (Connected Limited Device Configuration), MIDP (Mobile
Information Device Profile).
, ,
MIDP, - -
. JUnit MIDP, -
J2ME Reflection API ( ,
JUnit). ,
JUnit J2ME.
JUnit MIDP -
. -
,
Reflection API , ,
«test». , TestSuite. -
, ,
. TestCase,
runTest().
. -
:
protected void runTestO throws java.lang.Throwable {
i fCgetTestMethodNameC).equals("testOne"))
testOne():
else if (get TestMethodNameO. equal sC'testTwo"))
testTwoO;
}
. ,
. JUnit -
, .
J2ME Unit www.rolemodelsoft.com/
aboutUs/products.htm www.xprogramming.com/software.htm.
Copyright © 2001 by Chris Collins. All rights reserved.
web-
web- ,
. ,
. , -
219
(Servlet Engine) - ,
. -
web- web-страницу. , -
-
.
, . -
(Steve Hayes) -
, EJB:
web-приложений, EJB, -
:
1. : , -
HTTP (запросы, . .), , -
. .
2. - HTTP,
, -
. JUnit -
. , ,
, ,
HTTP.
, , -
,
, .
, . ,
.
.
(Steve Hayes)
, , -
.
, . -
,
. .
, , .
,
. , , , -первых, -
, -вторых, . -
, SQL, -логики,
, .
, .
,
220 13 ,
, . ,
, , SQL
, -
.
Copyright © 2001 by Steve Hayes, Khatovar Technology. All rights reserved.
, ,
. -
,
. ,
.
, ,
(Martin Fowler) OOPSLA 2000, -
(Chet Hendrickson) ,
. , -
, .
ASSERT,
. ,
. -
. -
, -
.
, , -
, , , -
. , -
,
12 .
, .
(John Heywood).
. , -
.
, ( , )?
, .
,
. -
, ,
1.
, -
.
, , -
.
, , .
.
, , , , -
. ,
.
,
, -
. , , , , -
.
.
, . ,
, .
. . . ( J. . Nosck). The Case for Collaborating Programming ( -
nporpaMMHpoBannfl)//Communications of the ACM. 1998. T. 41. 3.
222 14
1 (code review) ,
. , -
. -
, .
. -
. , ,
.
?
. -
, , -
- . -
, .
, -
, .
, ,
, , . -
, .
, -
. , -
, . , -
, ,
, , -
. - .
, - , .
: .
. ,
. - ,
( ). -
, , ,
. , -
.
.
.
-
.
.
. , . -
, ,
. , ,
« ». . .
223
. -
: .
, -
.
. -
,
-
, , . - ,
, .
,
.
, :
;
.
, .
,
. ,
, «чистку» ,
, , . -
, -
. .
. ,
.
, , -
,
.
, ,
, , -
. - , ,
. -
.
, ,
, .
.
. -
.
Extreme Programming Explained1 ,
, , -
, , -
. Beck. Extreme Programming Explained: Embrace Change. Addison Wesley, 2000. :
. . .: , 2002. . .
224 14
. , -
. , -
,
, .
(Ken Auer)
, , -
, .
. ,
, - -
, , -
, . , -
. , -
, , ,
.
.
,
.
, , , -
. -
, , ,
. -
. , ,
,
. , -
(enablers). -
,
. , -
. , -
- ,
, ,
-
.
, .
(enablers). - -
-
. ,
(enablers), .
, -
, :
;
;
'.
1 (Jim Coplien) Crack number ( ). .
. Q. Coplien). Pattern Languages of Program Design//A Generative Development Process
Pattern Language. Addison-Wesley, 1995. 194.
225
, -
. .
9. .
, -
. , : «Прощай!»
, -
.
.
(Jim Highsmith) :
, -
, .
, , ?
. , -
!1
.
: (driver) (navigator).
, , -
, . -
. ,
.
, ,
. « ?» ,
. -
- , .
, , . ,
.
, .
« ».
, . , -
. . ,
, .
. , -
. ,
.
(Nathaniel Talbott)
, -
, . -
. (J. Highsmith). (Ken Auer), 2001.
8 . 509
226 14
, , , .
, ? -
, -
. , -
-
. ,
. -
, -
.
, -
. , .
, , . , !
, ?
. , -
. ? ,
. ,
, .
, : « ,
?», « -
?», « -
?» , -
: «да» «нет», , -
.
,
, . -
, ,
, -
. « ?», «
», « ?», «
, ?» -
. . -
, ,
.
.
,
, .
Copyright © 2001 by Nathaniel Talbott. All rights reserved.
, -
. , -
, ,
. :
, , ,
. , ,
.
, , -
. -
227
, ,
, , , .
, ,
.
, - .
, , ,
, ,
, -
.
.
, ,
. .
, .
,
(Kevin Johnson)
.
-
.
, .
-
. ,
.
, , -
. ( )
. ,
, -
.
,
, ( -
). -
, ,
, . -
-
. , -
, , ,
, , -
. -
-одиночкой. , , -
, , ,
, . ,
.
, .
-
, ,
228 14
. -разному,
.
,
. , , -
, .
. -
. -
. ,
. -
, . -
, -
. , .
,
, .
. , -
, (навигатор), ,
, -
, , (ведущий).
, -
,
. , -
, .
, : , -
, -
, , ,
, . -
, .
, .
. -
, , -
, ,
. «горячих»
.
. -
, -
. ,
-
. -
, -
. -
,
. ,
.
.
. -
,
, . , -
, 229
.
, . -
« , , » .
-
, -
, .
, -
GoF1.
-терминологию, -
. , -
.
, , -
.
, . ,
, , -
, , -
. ,
.
, -
, , .
, , , ,
. ,
. ,
. , ,
.
. ,
.
! . -
, . -
, , !
Copyright © 2001 by Kevin Johnson. All rights reserved.
,
( -
, ) -
. , ,
( ,
, , , -
),
. , ,
1 GoF Gang of Four ( ). .
(Е. Gamma), . (R. Helm), . (R. Johnson) . (J. Vlissides)
Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
: - . . .:
, 2001. . .
230 14
, ,
. -
, .
.
.
( ) -
.
, .
, -
. . .
. ,
, .
, , -
.
.
. .
,
, . -
. , ,
,
.
.
. , ,
.
,
. Visual Age, -
SlickEdit, emacs,
. -
, ,
. , -
,
- -
. ,
- . -
, : , -
,
- . ,
,
- .
, -
1:
1. , .
2. , .
3. , .
. (R. Swenson). , North Carolina Home Edicator's
Conference, 2000 .
231
, ,
. .
,
. , -
. - ,
, «одино-
« », : « ,
». . -
, (coach) , -
, -
.
, . (Ron Jeffries):
- , -
. , -
. , ,
. ,
. « ,
. , .
.
:
. , ». -
, . -
. -
, ,
, , -
. , , ,
- .
. -
, . , -
: « ».
, .
, -
. , , -
- }
. , -
, ,
. .
, .
. (R. Jeffries). Enforcing Methods ( ), http://c2.com/cgi/wiki9Enfor-
cingMethods.
232 14
, , -
, .
, -
. -
. ,
, , .
, .
, . .
, . ,
,
. ? .
,
. , , -
, . -
. .
. ,
, , .
. ,
. ,
. , .
, , -
, . Extreme Programming Explored (Bill
Wake) (Harris Kirk), : «Програм-
« -
»1. ,
.
(Ron Jeffries) :
( ) .
, , .
, -
, -
. ,
. ,
... ... -
}
, ?
.
. .
1 У. (W. Wake). Extreme Programming Explored. Addison-Wesley, 2001. . 71.
2 P. (R. Jeffries). Enforcing Methods ( ), http://c2.com/cgi/wiki7EnforcingMe-
thods.
233
, .
, '.
,
. . -
,
, . ,
, -
, , . -
, , . -
«мы» «ты», .
, «я».
? .
. , ,
. ,
.
.
, ,
. -
. , -
.
, Costs and Benefits
of Pair Programming ( : ), -
(Laurie Williams)
(Alistair Cockbern) Humans and Technology.
. -
, , , .
. -
, , -
. -
. , .
1. .
15%, -
15% . ,
,
( , ,
. .) 15 60%.
. (Nathaniel Talbott) «Conversant Pairing» web-
http://www.pairprogramming.com, . -
, (Ward
Cunningham) « » (reflective articulation).
A. Cockbern, L. Williams. The Costs and Benefits of Pair Programming. «Extreme
Programming Examined», G. Succi M. Marchesi. Addison-Wesley, 2001, 223-243. -
« » -
: hUp://www.maxkir.coni/sd/pairprog_RUS.hUn. . .
234 14
2. , , -
, . 85% ,
,
. , , -
.
3. . ,
. ,
-
, .
4. . , -
. , -
. , -
.
.
5. , -
.
( , -
).
, .
6. , . -
. -
.
, .
7. -
. , -
.
, -
.
8. . -
, (
).
, ,
.
. -
, . -
,
.
, , -
, ,
. «редкие».
.
, -
. -
235
. . -
, -
.
(parallelism).
,
( ,
):
1. .
2. , -
.
,
.
, , (например, -
), . -
, . , -
,
, -
. , -то,
. ,
. -
. -
, , , -
.
,
, -
. -
. - -
. -
.
. -
, , , , -
, .
, -
. -
,
.
, ,
. .
.
(Steve Hayes)
. ,
, . ^
236 14
-
. .
, . , , -
. ,
, -
. , -
, . ,
, -
, .
, .
: « X,
, -
...» -
, : «
?» : «
, , ...»
, -
, -
,
. -
. -
.
Copyright © 2001 by Steve Hayes, Khatovar Technology. All rights reserved.
, ,
, . ,
, .
, , , -
, -
. , -
. ,
- . -
, , , -
. , -
, , , .
-
, , ,
, .
, ,
. .
, ,
. -
,
. ,
.
237
(Steve Hayes)
, , , -
. . -
,
, .
,
, , -
.
. -
, -
.
,
. ,
. «я», :
« ».
, -
.
, .
,
, , .
. -первых, . , -
, ,
,
. -
, -
, ,
, , . -
, ,
, ,
. ,
, . ,
. , : -
, . , -
, ,
. .
,
. ,
.
, -
- . -
.
-
. -
,
. -
. , , -
238 14
, , -
, . -
.
- . -
, . , -
.
, -
.
, , , ,
. , -
. -
, .
-
. , -
. ,
.
, -
,
. , -
, ,
, . -
. , ,
, . -
, . ,
, -
.
- .
? , . -
, .
,
.
, , -
. -
,
. , -
, . -
, .
, .
, -
, , ,
, -
. , -
. -
. ,
, -
. , ,
, .
.
239
, .
, -
, , -
, , -
. -
. , .
- , .
,
, .
, ,
. . -
.
, .
, , -
. , . -
,
. ,
,
. 40 , -
,
. ,
.
:
, , , -
. -
.
, . -
, ,
, .
,
. ,
.
, - .
, ,
, -
. , ,
.
.
.
Copyright © 2001 by Steve Hayes. Khatovar Technology. All rights reserved.
, ( )
. , -
. -
, :
240 14
-
;
;
-
, .
,
. ,
. -
, ,
.
(Steve Freeman)
-шни-
,
. , -
. -
,
, .
, -
, , -
.
-
. ,
, -
. , -
, -
, .
:
. -
,
. , -
,
. -
.
, -
. -
,
. :
, -
. ,
. ,
, , -
, , .
. -
241
, ,
, .
-
.
, , ,
. ,
, ,
. ,
, , -
, -
.
. ,
, -
, ,
,
.
Copyright © 2001 by Steve Hayes. All rights reserved.
,
, , ,
. - ,
,
.
, -
. ,
. , -
,
, .
,
. ,
. ,
. -
.
, -
. , -
. ,
, ,
, ,
. -
, , -
, .
. , , -
. -
242 14
, .
. -
, .
, -
. , .
-
.
. -
. 14.1.
,
, . -
.
,
.
.
. 14.1.
, ,
. -
.
,
, .
-
, -
. -
(Chet Hendrickson), (Ron Jeffries) (Ann
Anderson) :
243
, .
. , -
.
1.
,
. , ,
, .
. ,
, -
. -
,
. -
, , - . -
, -
, ,
. .
(Roy Miller)
RoleModel, .
, ,
. ,
, .
, . -
Java,
, , .
, , -
, : « .
.
. !» ,
.
, , .
,
, -
, . . -
, , , -
. ,
, ,
, .
, ,
.
R. Jefferies, A. Anderson, . Hendrickson. Extreme Programming Installed. Addison-Wesley, 2001. . 90.
,
, , .
-
(Antoine de Saint-Exupery)
,
-
. , .
: «Сделайте, , -
, , , ». (Make
it run, make it right, make it fast). (refactoring) -
. :
«Сделайте, » .
,
. , -
,
? ,
. , , -
« ».
, .
,
. , ,
. . -
, -
.
. -
, .
.
.
, . -
, .
245
, , . ,
. -
, , -
. ,
. ,
. , :
.
.
.
,
(если, ,
). ,
. , -
. . -
? , .
,
, . .
.
.
, , .
, ,
. . -
, .
.
. - , ,
. ,
. 35 .
, ,
, ,
. , -
.
, , -
. YAGNI (You Aren't Going to Need It)?
,
. -
.
, .
, :
, , -
, .
. -
.
246 15
,
.
. , -
, -
. ,
. -
, ,
.
,
, , -
.
. . -
. (Michael Feathers)
:
, ,
. , -
, . -
, }
, . -
, , -
-
. , , -
, -
.
,
- -
. . ,
, . ,
.
, , -
. , ,
, . -
, .
,
. -
.
, , -
, ,
. .
. (М. Feathers). OaooBalancesYagni, http://c2.com/cgi/wiki7OaooBalancesYagni.
247
(Martine Fowler) Refactoring{ -
: . , -
, , -
, .
. , ,
. , ,
.
, -
. ( : ,
), . -
, -
, .
(Roy Miller)
, -
. -
. -
, -
. ,
, . ,
.
,
. ,
. , ,
. -
, ,
, . ,
, . -
, , ,
. ,
. , , -
, - .
. - ,
, . , -
. , -
,
,
« ». , -
, .
, .
, .
1 . Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. -
: . : . .: -Плюс, 2002.
. .
248 15
Refadoring (Matin Fowler) ,
. , -
. -
, , :
, ,
;
, , -
;
,
;
, .
-
. , ?
." .
. , -
- .
.
. , ,
,
. , , -
. , :
, -
. , -
.
, .
: -
, .
. , -
,
. ? ! .
, ,
, .
. -
:
1. . , -
, ,
. , -
, ,
.
2. . , « -
» (make it fast). , -
, , , -первых, -
, -вторых, ,
.
249
,
.
.
, , -
. , , -
, . ,
. ,
, .
, , -
, , «за-
» (code smell). , -
(рефакторинга) .
, , . , -
, , .
, -разному:
, .
: ,
, ,
. -
, , , -
, .
, -
, , . -
, , ,
, .
. -
, .
. ,
, ? , -
, .
,
. (Martin Fowler) , ,
.
. , -
, .
. -
.
,
, . -
, , -
, , .
250 15
, .
, , , .
.
, -
, .
, ,
, , -
. , -
, , -
. «рефакторингом» . ,
, .
,
.
, -
. ,
.
: « , »'. -
, ,
, , -
. .
, , -
. . : -первых,
, , ;
-вторых, ,
. : « -
, ». «Позже» .
,
(Ken Auer)
Java ,
(casting) ,
. , -
,
, ,
-
. -
, .
,
, ( ,
Object
, ),
: « ». . .
251
.
, , ,
.
,
, . ,
-
, ,
. -
.
, .
-
: , , , -
. .
, , , -
. (Ward Cunningham) -
. ,
.
, . -
. -
,
.
(Martin Fowler) Refac-
toring1. , .
. -
, ,
, . . -
«обоняние»: .
, .
, -
. -
, ,
, .
. ,
. , -
, , , .
, (
, ).
.
, -
. . -
: . : . .: -
-Плюс, 2002. . .
252 15
, , -
. .
, -
, ? : ,
.
, -
,
.
. ,
, -
. , -
, -
, ,
.
, -
, . , -
, , -
. ,
.
, , . .
.
. -
, , . -
. -
24 .
,
, , . , -
,
. ,
.
,
, , ,
.
« », «постоян-
«постоянная» . , .
, .
: ,
.
-
. , -
. -
,
,
.
, ,
. , -
. -
, -
.
, -
, .
, , -
, , -
. .
, , -
, , -
:
1. ,
.
254 16
2. , , -
.
.
, ,
, - . -
. , .
,
, .
, -
. , , -
. -
,
. ,
, , -
. ,
, , -
, ,
. .
, -
.
,
: «Слушай,
, XYZ » «
. .
».
. (Cecil . DeMille) « »
. -
. -
,
. ,
, . -
, -
, .
, ,
. ,
.
, , : «Мотор!»
. , .
, . . -
, , . « -
, , ».
255
, ,
, , - -
. . -
, .
, , ,
. , ,
: «Да, , ,
»1.
,
. , , -
. -
.
. -
. ,
.
,
, .
, -
. , -
. , ,
,
, . -
, -
, ,
.
, ,
, -
, . , -
, , -
. .
, , -
, -
. ,
, .
, .
. , -
, , -
. -
. , ,
, . ,
.
256 16
. -
.
.
, , -
«интеграционнаямашина» (integration machine). ,
, -
. ,
-
.
: « »
« », , -
.
.
, ,
. , -
, , -
, ,
.
, -
. , ,
, , -
(
, , ). -
, , -
, -
. . ,
: «Сделано!» -
, . - -
, . -
, ,
. ,
.
,
, , -
, , -
.
, «Сделано!»
, , .
, ,
.
.
, , .
. ,
. ,
257
, , -
, - .
, -
, , -
. , -
, .
, . ,
- , .
. .
? ! .
,
, .
, - -
. . -
, , -
,
.
, ,
.
(Steve Hayes)
,
, ,
, .
, ,
.
(pessimistic locking).
Java (Java package).
( ) ,
( -
, ).
. ,
-
. .
, , , ,
, ,
, .
, -
. -
.
(например, -
), , , -
, ,
. , ,
- .
Copyright © 2001 by Steve Hayes. Khavotar Technology. All rights reserved.
9 . 509
258 16
Java. -
IBM VisualAge for Java.
, -
. , , -
.
. , , ,
, .
, , -
. , -
, .
,
(Joseph Pelrine)
, .
, , -
, -
,
-диск, . -
, -
( ), ,
. ,
,
, -
URL . . ,
. , , -
CD
.
Copyright © 2001 by Joseph Pelrin. All rights reserved.
.
(Beverly Sills)
. -
.
, . -
, , -
. .
-
, . -
, ,
. ?
.
.
, .
, -
, . -
, , .
, -
:
1. .
2. .
3. .
, . -
, , , .
.
, -
, , -
.
260 17
, ,
. ,
. -
, .
, ,
(например, -
). , .
, -
.
, ( ) -
, .
. ,
, , -
.
(Ron Jeffries)
, .
, ,
, .
, . -
:
, .
: « ,
. -
, ? !
, ? -
!» .
, , -
. , ,
, . ,
, .
,
, .
. , ,
, , , , .
( -
), , -
,
.
.
,
. , , -
.
261
^ . ,
, -
.
, -
. , .
, .
, ,
.
, -
. -
. !
,
, . , -
. , , .
, .
, . -
, . -
(предположим,
), ,
. ?
, -
. , , ,
, . -
, , :
.
, -
, .
.
. -
.
, .
. , -
. ,
, .
, / -
. , , -
.
, .
. .
, -
. , -
, - .
-то, ,
.
262 17
. , -
. . -
- , -
. ,
.
, .
, ,
, -
.
(Ron Jeffries)
,
:
, . -
. -
, / -
. , .
.
. -
-
. , -
.
. -
, , -
, .
, -
. , -
,
, .
, , ,
.
. -
, .
, , - -
.
, -
-задачи. , - -
? , ,
,
.
. , .
.
, ,
, , ,
263
. -
, .
. -
«боль-
«больших, » (Big Visible Charts). -
,
, .
, -
, ( ).
.
, -
. -
.
, , -
.
Copyright © 2001 by Ron Jeffries. All rights reserved.
, . -первых,
, ,
, -
. , , ,
. -вторых, -
, , -
. : «
!» .
,
(Ken Auer)
, -
. -
,
.
.
,
. , , -
, . -
,
, , ,
. ,
. ,
. ,
.
,
264 17
^ . . ,
. , -
, .
, -
, . .
, , , ,
, -
. ,
, -
.
.
,
.
,
, (
). -
. , -
. -
:
(Simple Design);
(Collective Code Ownership);
(On-Site Customer);
(Acceptance Testing);
(Coding Standards);
(Metaphor);
D0-hour week).
, - -
(coach) (tracker).
, , -
. -
, ,
, . -
( , -
, , 40- ) -
. ( ,
, ) -
. . ,
, .
, . , -
, -
.
266
, . , -
, . , -
,
,
.
,
,
( 2) . ,
.
-
.
(Winston Churchill)
. ,
.
, . .
, . -
.
. , , -
, , , -
, , , ,
, , ,
.
. -
. -
.
, -
. -
-
.
, ,
, -
, , ,
- .
, , -
, ,
,
, .
. ,
, . -
268 18
, -
, .
?
:
;
;
;
.
, -
.
, .
.
(Tom Kubit)
(Don Wells) - -
Ford, : «
, - -
». : « , -
, , ,
, ?» -
.
, , - , - ,
. -
, , . -
. ,
. ,
: « !»
Copyright © 2001 by Tom Kubit. All rights reserved.
,
, .
, -
.
, ,
. , -
, .
(Steve Hayes) :
, « »
, -
, . , -
. , -
,
269
. .
-презентации, , -
« ». , -
, .
, . , ,
.
, « »
, -
( -
); ; -
.
}
, , -
. . (Jim
Highsmith) :
, ,
, , -
, . , -
!2
,
.
,
. , , , , .
, . ?
-
. , -
. ,
. -
: . -
(Martin Fowler) :
,
.3
, , -
, .
, -
. ,
, ,
1 С. (S. Hayes). . 2001.
2 Дж. (J. Highsmith). , .
3 М. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. -
: . . .: -Плюс, 2002.
. .
270 18
.
YAGNI. , -
, -
-
.
YAGNI .
, -
. , .
, , -
.
, :
;
, ;
, -
.
, . ,
,
.
?
. , -
, . -
. -
, .
. :
, .
. -
. .
, ,
. ,
, ,
, ... ,
, .
, ,
... , .
, 1.
, -
. ,
.
. Fowler Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. 6-7, 15. -
: . . . .: -Плюс,
2002. . .
271
, . -
. ,
.
. -
. -
, .
,
, -
. .
8. -
, .
RoleModel.
, -
. , 30
, . ? , -
, . «
», .
, -ни-
- , . , -
. , -
, .
. ,
-
.
(Jeff McKenna)
.
.
, -
, ,
. -
, , , -
. , «
» .
. , -
. ,
.
, ,
, -
. , -
. -
, -
, .
. : -
, -
272 18
. :
-
? , -
? -
, ? -
.
. ,
,
, OOPSLA 2000.
,
. -
! , «
» . , -
. , -
, , -
.
YAGNI.
,
.
.
, .
.
.
(Law of DemeterI.
«правильном» .
( -
), . , -
, .
. -
(Rebecca Wirfs-Brock) -
. .
2. (Controller),
(Data Store), (Interface) (Dis-
(Dispatcher). -
,
.
CRC- . ,
«сыграть». , «играете» ,
.
Copyright © 2001 by Jeff McKenna. All rights reserved.
K. Lieberherr, I. Holland, A. Ricl. Object-Oriented Programming: An Objective Sense of Style. OOPS-
OOPSLA '88. ACM Press. 1988. 23. 11. . 323-334. ,
(юнит) (юнитах):
(юниты), . -
http://www.ccs.neu.edii/home/lieber/LoD.html. . .
R. Wirfs-Brock. Characterizing Your Objects. Smalltalk. Report. 1992. T. 2. 5. R. Wirfs-Brock,
Adding to Your Conceptual Toolkit. Report on Object Analysis and Design. 1992. T. 1. 2.
www.wirfs-brock.com/pages/resources.
? 273
?
. , -
. , -
:
;
, ;
, ;
;
.
,
. -
. :
(Robert Martin). -
,
. ,
.
, }
, ,
. ,
, -
.
, GoF2.
,
,
.
, . -
, State
(состояние) , -
. YAGNI. .
, State. , -
, , .
, , ,
. -
, -
. :
. Fowler. Is Design Dead. http://martinfowler.com/articles/
designDead.html. « ?» -
http://www.maxkir.com/sd/designDeadRUS.html. . .
, GoF Gang of Four ( ).
. (Е. Gamma), P. (R. Helm), P. (R.Johnson) . (J. Vlis-
sides) «Design Patterns: Elements of Reusable Object-Oriented Software». Addison-
Wesley, 1995. : - .
. .: , 2001. . .
274 18
«YAGNI». , . -
,
( , -
). , ,
. -
, . -
, .
-
(Ken Auer)
, -
, , , -приори-
-приоритетах, . , , ,
, .
, . -
: , , -
. ,
.
, -
( ). -
, , -
. -
,
. , -
. -
:
: 'кей, .
?
: X ...
(прерывая): , . -
, , , ,
- .
: - X , -
-
.
: . .
: ?
: .
: , ,
, -
.
: , .
: , .
: , .
: , -
, -
. ^
? 275
> : ?
: , , ,
. , -
,
. ,
( -
).
:
, «активаторы» (enablers).
, . -
. , ,
,
. -
, (enabler)
( ) -
. , «ре-
« ».
(enabler), -
.
, -
. (например,
), -
.
. , -
, -
. , -
. Smalltalk, ,
. , Java , -
.
: ?
: , -
.
. , , ,
, -
- ,
. , .
,
.
:
1
: , -
. ,
, , , -
. ^
276 18
2
: , ,
. ,
, -
?
: - . , -
. , -
,
.
: , -
, Remove ?
, -
-
.
: . . -
. , -
.
, -
.
: . .
.
-
. -
, ,
(сце-
( 1).
, . -
, -
. ,
, -
: « , ».
.
,
. ,
.
,
.
. , :
, -
? .
, , , -
, , . -решение. -
,
- .
, , -
, .
277
,
, ,
.
, YAGNI -
. , -
.
( ),
. . -
, ,
,
. ,
.
. -
, , -
,
.
CRC- . . -
. 18.1.
. 18.1.
278 18
, -
. , , -
, .
.
.
, , , , . -
- . ,
.
,
.
, . -
,
. , .
. ,
. , -
. -
. , -
.
-
.
, , -
. -
,
,
. -
, , , -
, ,
.
(collective code ownership)
.
. , ,
, . -
, ,
. -
, .
, , .
Extreme Programming Explained'.
, , .
, , ,
. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000. 59. .
. : . . . .: , 2002. . 85.
. .
280 19
. -
. , -
. , ,
, -
. .
, . -
. -
, .
,
.
, -
. , .
,
. , -
-
, .
.
, , -
. -
, .
. ,
.
«Я» «Мы»
-
, , . ,
, ,
. , ,
. . -
: ,
«своему» .
. .
.
.
. , -
, .
, ,
, .
, .
, -
.
,
.
.
. -
, -
? 281
, . ,
. , -
, -
, .
, .
?
. -
, ,
.
, , -
.
,
-
. , -
. «своем» . ,
.
( ) -
, . , -
-
. , ,
, -
. -
. -
, .
. , -
. .
. -
, -
.
.
, .
.
. ,
, . -
, -
: ,
.
.
, , , -
, .
,
282 19
, . , -
,
, ,
.
,
.
, -
:
1. . .
2. ,
.
3. ,
-
.
, .
, ,
, . -
, -
. . ,
.
, .
, . -
. Java IBM
VisualAge for Java, -
Envy, -
. Envy -
. , ,
.
. , -
, -
. -
.
?
, , ,
.
? 283
, -
,
, ,
. , -
, ? , ,
. -
-совещания. -
- -
.
?
-
, -
. .
( Peters), Reinventing Work
,
. , -
, ,
. , ,
.
. -
. ,
,
. , -
, -
, .
?
, , -
-решения.
. -
-решений. ,
-
, .
,
. , -
.
, ( -
, ), , -
, .
, ,
. , -
? 285
-
, . -
.
, -
.
, .
,
.
-
,
. , -
. -
.
, . -
, -
-
.
, , , ,
1.
:
, -
;
, , ;
, -
.
(Steve Hayes)
, , .
, Wall Street Bank.
,
,
, -решения.
, ( )
- ,
. . ,
.
-
, - -решения,
.
Copyright © 2001 by Steve Hayes, Khatovar Technology. All rights reserved.
K. Beck. Extreme Programming Explained: Embrace Change, Addison-Wesley, 2000. C. 61. -
: . . .: , 2002. . 87. . .
286 20 ?
,
, -
.
.
, .
, , . ,
, -
.
,
. , , -
, .
, -
.
. .
, ,
. , ,
.
.
, , -
. .
. -
, , -
.
(Uros Grajfoner)
Pocraxep(Matevz Rostaher)
. -
, -
.
« »,
?
: « ». -
, 25 -
. ,
. , , -
.
-
.
, -
. ,
287
, ,
,
. -
. , -
. , ,
, . -
(Planning Game), .
.
-
.
, ( «незначитель-
« », ,
, ).
«заплатку» (patch),
.
: , -
. . -
. «
». , , -
, .
,
. , ,
«заплатки» , , .
, , , ,
.
, : « , -
, ». -
,
.
.
. ,
,
, -
. , , -
.
-
, , , -
. , -
.
Copyright © 2001 by Uros Grajfoner and Matevz Rostaher. All rights reserved.
,
, , -
, .
- , -
288 20 ?
. ,
, -
.
, ,
. , -
, , : -
, ,
.
,
, .
. ,
.
. .
, ,
.
, , -
, , -
. .
, .
?
, -
. ,
. , , -
, . -
,
.
,
?
, ,
. , -
. , -
. , -
,
.
(acceptance tests) -
, .
, , ,
. -
, , .
, . -
, .
(green bar) . -
, JUnit.
.
,
.
, .
13, , .
, , -
- . -
. , , , -
, .
.
10 . 509
290 21 , ?
. -
, -
, ,
. ,
, , -
.
-
, . -
.
?
(Ken Auer)
-
, , -
. .
, -
.
.
,
-служащим. -
.
, .
, , .
.
.
,
. , -
, , -
.
-
. , -
, ,
.
- ? , .
.
, , ,
. , -
.
,
. , ,
,
. ,
, -
.
.
,
291
. -
.
, .
-
.
, .
, ,
, , . ,
, , .
. , . -
, , ,
.
, , -
. -
, .
.
, , , -
, , . -
, -
.
(user story) « -
», , -
. , -
-
, , , -
,
.
, -
. , -
, ,
, , -
.
.
, . -
, ,
. ,
, -
. - ? -
, -
, -
.
292 21 , ?
, -
, .
JUnit .
-
. -
, ,
.
,
. -
, .
.
,
,
. , -
. , , -
-
. , , -
.
, , -
,
, , : «То,
, » « . -
, ». -
, .
, , -
, -
. , , -
. . ,
, -
.
, -
. , -
-
. ,
.
,
20 .
, , .
Testing Fun? Really? (Jeff Canna)
, (
):
293
, -
. , .
, ,
-либо, (например,
). , -
.
,
.
, , -
.
, ,
.
.
-
. -
. ,
, ,
-
.'
, -
, , -
, , .
. , -
,
.
: -
? , .
-проектом, -
:
-
;
;
,
.
' (Duff O'Melia)
, ,
, . -
, -
.
. (J. Canna). Testing Fun? Really? «IBM developer Works Java Technology
Zone», 2001.
294 21 , ?
, , -
, -
, ,
.
, -
, . -
.
, ,
, -
. , . -
. -
, -
.
Copyright © 2001 by Duff O'Melia. All rights reserved.
, , .
. . -
.
,
. ,
, -
. .
, -
,
. -
. -
(табл. 21.1).
21
.1.
1/3 1/4
92 95
42 48
1/5
95
62
1/8
95
63
1/9
96
64
1/10
96
43
1/11
96
58
1/12
95
76
1/15
97
80
1/16
97
83
. -
-
. , -
, - . , ,
. , , -
, -
295
. ,
, , . -
, , .
. -
, -
.
, . -
- , -
.
(Roy Miller)
, -
, -
. , , -
. , -
,
. .
, -
-
. , -
. , -
.
,
.
, -про-
, ( ) -
. -
Microsoft Word. , -
. ,
, -
. . Java
( Word HTML-фай-
HTML-файлы, )
.
HTML-файла.
, -
XML. -
, -
, . ,
, -
-
FDA. ,
.
296 21 , ?
, -
. , -
,
, ,
.
.
, -
. , , . -
- , , -
. ,
, . , -
, ,
.
, , -
. , -
, , -
, (
, , -
). -
, .
. -
, -
.
13,
. ,
.
:
. -тран-
-транзакции: .
, . -
, , , -
. -
, , -
.
( ) -
, . -
,
. -
, , .
(Rob )
, ,
, . - ^
297
, -
. ,
-
.
, , -
, ,
: 20 $500
40 $750.
, -
. , -
Java? .
, ? -
.
. -
, -
. , Smalltalk
T-gen, web- -
. Java,
JavaCC, Sun Microsystems. -
.
,
. ,
. ,
Dragon Book1, .
, -
, . -
.
.
,
. -
.
,
,
, . -
, ,
. Evant, ,
ESP (Evant Script Programming),
, , -
. . , ESP, -
XML, , ,
. ESP XML -
. XML
, . , -
.
Copyright © 2001 by Rob . All rights reserved.
A. V. Aho.J. D. Ullman. Principles of Compiler Design. Addison-Wesley, 1977. : .,
., . : , . : . 2001.
. .
298 21 , ?
,
, . -
(Jeff Canna) Testing Fun? Really?
, -
:
, -
. ,
. , -
, .
:
, , -
;
, ,
;
(
, , -
),
, ;
, , , -
, .
, «возможно». -
, -
. -
, , .
, -
, , .*
, -
, . -
, -
. -
, -
. , .
,
,
.
, :
1. -
, .
. (J. Canna). Testing Fun? Really? «IBM developer Works Java Technology
Zone», 2001.
299
2. .
3. ( -
).
. -
.
.
, , , . -
, .
, , - -
. -
,
, .
, -
, . -
,
. -
, -
, .
, , -
.
, , , -
. ,
,
.
, -
. .
. -
, , -
(QA).
, ,
. ,
-
(например, ) (например, ),
.
, , .
, .
-
. , , -
,
, .
-тестах, -
. -
, -
.
300 21 , ?
-
. - . -
- , -
. , , -
. ,
, . -
, ,
, - -
. . ,
,
, ,
, .
-
, -
. , -
. ,
Microsoft Excel, -
Java-клас-
Java-классов. ,
Microsoft Word,
HTML -
, Java. , -
, ,
Word.
?
, , -
, . -
, -
.
, . .
. -
.
, -
, ,
, ,
. , .
, -
.
, -
. -
, . -
? 301
, .
-
. , -
. , -
, , ,
.
, .
-
, , -
. .
*
,
.
-
.
-
. , -
. -
, - . ,
.
. -
, , ,
. ,
.
?
:
1. ,
, .
2. .
, , -
- , , -
:
,
, , -
. ,
303
, -
}
,
, . -
, , -
. -
, .
,
, ,
. Refactoring ,
, , -
, 2.
, ,
.
, . , -
, . ,
.
.
-
.
, -
. , , .
,
. -
ANSI.
.
(Kyle Larson)
, -
.
Web , . -
-
( )
( ). -
. Beck. Coding Conventions ( ) http://www.c2.com/cgi/wi-
ki?CodingConventions.
. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
, -
. , , , -
, , ,
. : . : -
. .: -Плюс. 2002. . .
304 22
:
, 100% . ,
!
, -дня. ,
,
Java. ,
. -
-
,
. , , -
.
?
, .
, .
, .
, ,
( -
{[<или>]}).
, -
, , , , -
- . (код,
, ), -
( ) ,
(
, ).
(Ken Auer)
Wild. -
,
.
(
2001 ), ,
. Coding-
Conventions, 27 1999 .
:
«NamingConventions»
NamingConventions ( ) -
:
«NameClassesBasedOnWhatTheyDo»
NameClassesBasedOnWhatTheyDo «
, ». -
? 305
, , -
, , , .
, .
,
. , -
:
( 10 , -
);
, (убедив-
(убедившись, )
;
;
, , -
return ( )
.
, , -
,
«ленивой» . .,
. -
.
.
:
, ,
.
. -
. - , -
.
, -
.
,
, -
. , -
- ,
. -
, .
.
, .
, , .
.
,
, -
.
, .
,
.
11 . 509
,
. -
, -
, -
.
,
.
, «40- »
D0-hour week). .
: « »
(sustainable pace). , «нор-
«нормальной» -
. .
.
. ,
, .
. -
, , ,
.
, ,
. .
? 307
?
, :
- ,
;
;
,
( );
( ), -то,
, ,
.
, ,
,
.
?
, -
. . ,
.
- -
, , .
, . , ,
, -
.
, -
, . , -
, . -
. ,
, . ,
. ,
.
,
, .
, , ,
. , , ,
. , -
, , . -
. , -
, .
, .
. , -
, .
, -
.
308 23
. (Stephen R. Covey) The 7 Habits of Highly Effective
People G ) -
( Production) (PC Production Capacity).
-
(PC).
, -
. , -
, ( )
.
, , ,
. ,
, , -
. ,
, , .
.
, -
.
, -
. , , -
. , .
(Steve Freeman)
. ,
, (
, ). -
.
« ».
Copyright © 2001 by Steve Freeman. All rights reserved.
, -
, . -
, - . -
. ,
. , ,
, , -
.
, . ,
, - . -
, , -
«нет». -
.
, . -
, -
. , -
. .
40- 309
, - .
, , , .
, -
, 40- -
. , -
.
-первых, , .
. -
: , .
40 , .
, -
. , -
.
-вторых,
. , -
. , . .
, , -
.
-третьих, . -
, , , -
, . -
. -
.
-четвертых, . - ,
, , , -
.
, «нет».
,
. .
.
40-
. -
. ,
, -
.
. , ,
, , . -
, -
, .
, .
, ,
. ,
.
: « *1. ,
, ,
, .
, -
,
. . -
. -
, -
, .
. ,
. , -
.
-
.
, .
, -
. , -
. -
. ,
. ,
. (Rodney Rayan)
:
,
, , -
( -
, ) -
.
: « , ». . .
? 311
« » , « -
Builder,
, -
, -
, -
»}
,
, , .
. -
«что?», «как?».
, -
.
.
.
, .
, ,
, «контракт» «заказчик». -
, , .
, :
1. ,
. -
Chrysler C3. Chrysler ,
: ,
.
.
2. -
. .
, . -
, , .
3. , . ,
. - -
, , -
, .
?
-
. -
.
,
R. Rayan. System Metaphor http://c2.com/cgi/wiki7SystemMetaphor.
312 24
. -
, .
. -
. -
.
, , , -
. , -
, , - -
. , ! ,
. , -
.
-
-
.
.
, -
(coach). ,
, .
, , -
. -
, . ,
,
.
, -
, . -
, ,
. , , -
, .
(Ron Jeffries)
, -
, -
. , , -
(« »).
, -
. ,
, .
, , -
web-узлов. , -
.
Copyright © 2001 by Ron Jeffries. All right reserved.
314 25
, . -
, . , -
, ,
, ,
. , -
. . -
, : «Все, , ,
».
(Don Roberts)
. -
, .
, -
. . -
.
,
,
. ,
, ,
.
, , ,
, .
«Да, ,
». «Да, , ,
, ». «Да, ,
, , -
, ». .
. . ,
- , , .
Copyright © 2001 by Don Roberts. All rights reserved.
, -
,
, .
, , -
. .
, ,
, .
. ,
, ,
.
. -
,
, ? 315
, . ,
,
. , -
. ,
. -совещания. -
, -
. -
, , .
, ?
, ,
, -
. , , :
: , , ?
: .
. . -
, - . -
. - .
- , , !
! , ,
, . -
. -
!
. , .
, .
( , )
, -
.
. , ,
. - -
, ,
, , -
, . ? -
, .
, . -
, ,
, .
.
.
- . ,
, ,
. , ,
. , -
, , -
, .
, -
,
316 25
. ,
. , -
.
, .
-
. , -
. , -
, ,
. . -
. -
. - -
, ,
«небольшие» .
, . -
,
. - -
, . , ,
.
.
-
. ,
, , -
.
,
, , -
. -
. ,
, .
-иовичок?
,
, -эксперта. -
:
. -
- . ,
.
,
.
.
. -
, , .
.
,
, -
.
317
, .
.
. -
, .
, , .
. ,
, ,
, . ,
,
, . -
.
, -
( 2). , -
,
.
, -
. - ,
, 3.
.
, . -
, -
. ,
. -
, .
!
(Make Krzyzewski),
NCAA Basketball Champion Duke Blue Devils, ,
22 , : «
. ». 15 -
. -
. , ,
.
. ,
.
, , -
. , -
, . -
, ,
. - -
:
318 25
,
, , -
,
.
. -
,
.
-
, , -
, .
?
.
. -
, -
.
.
. ,
.
, .
, , -
. , -
,
. .
, ,
, . -
,
. ,
.
.
, -
, .
.
, -
. -
. -
. ,
. -
.
/
(Ken Auer)
, ,
RoleModel Software ,
? 319
, ,
Java. -
, -
RoleModel Software.
. « » .
Java,
. -
,
- -
. RoleModel 19-
(Натаниел),
.
. (Джефф) -
. , , ,
, , -
: , -
.
( ) ,
,
, , -
. ,
.
. -
. -
, , , ,
. , -
. -
, ,
.
-
- . -
, .
. . -
, -
,
. , .
(persisting
objects). -
, -
. .
.
, ,
, -
. ,
.
,
-
320 25
. , -
, .
( -
, ):
,
.
-
, . ,
,
, .
,
, .
,
,
, . -
, -
.
-
, . , -
, -
, . -
, .
, , -
,
(например, , , -
RoleModel). , -
. -
, , . -
.
. ,
, -
. ,
.
? . ,
, -
,
? ,
,
.
.
?
, .
,
. , - -
. ,
, .
.
, -
.
.
. , ,
, ,
.
, -
, -
, , .
, ,
. , -
, , , -
. ,
:
;
, ,
;
.
.
( )
:
;
.
, -
,
322 26
. -
, ,
.
, , .
,
. ,
, .
(tracker) , -
.
Wiki:
, , -
, - . -
, CRC,
,
}
Extreme Programming Explained , -
, «
, ». , «
, »2.
, -
. , , -
, . , -
,
.
, , , -
.
, . -
, , -
.
,
.
, , -
. , ,
.
, -
,
http://c2.com/cgi/wiki7ExtremeRoles.
. Beck. Extreme Programming Explained: Embrace Change, Addison-Wesley, 2000. 145. -
: . . . .: , 2002. . 178. . .
' 323
. , , -
. , , -
, ,
. -
, , -
,
. , -
, ,
.
-
. -
.
,
. -
, -
, . ,
, -
.
(Ken Auer)
, -
,
« » «сделано». -
, -
. ,
,
. ,
, -
.
. , -
, . -
.
, -
, :
1. , .
2. .
3. , .
, , (компания, -
), -
,
. ,
.
, - , ,
324 26
.
, , ,
-
, -
. ,
, ,
,
, , .
,
Web,
. -
/задачами.
,
.
, , Wild1,
, -
,
. Wild
, , ,
.
, Wild, -
(Ward Cunningham).
, , -
, Wild. -
RoleModel Online
Extreme Project Tracking.
.
, Wild.
Wild
. -
, .
Wild .
. , -
, -
(рис. 26.1).
. -
, ,
, (рис. 26.2).
, ,
. -
( Task). ,
, -
(рис. 26.3).
W. Cunningham. The Wild Way: Quick Collaboration on the Web. ( Wiki: -
Web) Addison-Wesley, 2001.
325
Role
soft
more
RoleModel
sofjiuflre
Iteration Six
For up to date tracking status, try http:rollup.CQi
The goal of this iteration is ...
The following tasks/stories are part of this Iteration:
AddGraohReadinasToNavlaatorStorv
AdlustlconsTask
. AddQueriesForUserDeflnedFieldsStorv
Last edited September 12.2000
Reiurn to WelcomeVisitois
. 26.1.
Add Graph Readings to Navigator Story
http:rolluD.cql
The goal of this story is to show the readings in graph form
whenever something holding a collection of readings Is
selected in the navigator window.
The following tasks/stories are part of this story:
AddGraphReadinqsNodeTosk
AddGraphReadlnpsToExistinqPerspectivesTask
AddGraphReadlngsPerspectiveTask
Last edited September 12,2000
Return to WelcomeVisitors
. 26.2.
. -
( ; ; ,
; ; ;
, ).
, .
-
.
EstimatedTime ( , -
) RemainingTime ( ). - ^
326 26
, , . -
( , ) ,
ActualTime ( ) RemainingTime (
) , . ,
ActualTime RemainingTime
EstimatedTime.
Model
softiiiare
Add Graph Readings Node Task
Risk: Low
EstimatedTime: 1.5
ActualTime: 0.75
RemainingTime: 0.5
Developer: KenAuer
Pairs: DuffOmelia.JeffCanna
Currently, nodes In the tree stop at Results. We'd like to add a
node under the Results node to Include Readings. When the
Readings are selected, show a Graph that displays those
readings... It should be the same graph we currently see
when we press the "Graph" burton when a Result is selected
Last edited September 12,2000
Return to WelcomeVbltors
. 26.3.
, ,
Wiki , , -
. http:rollup.cgi, -
. ,
, ,
( -
, ). -
(рис. 26.4).
, http://rollup.cgi ,
:
;
-
;
- /
, ;
, , -
, .
( )
- (например, .
327
tracker), -совещания.
:
, -
Wild (
, , , -
, )?
, XYZ
. ? -
?
, , -
. ,
? , , ,
?
. , -
.
Wild . -
, , ,
Edit -
- , .
-
: ActualTime RemainingTime. -
.
- - Wild, -
, ,
- . - ,
.
,
, -
. Web,
.
( ). -
, , ,
, .
. ,
, -
, .
Wild .
(
, , -
Wild). - ,
-
Wiki.
Wiki -
. , -
328 26
Wild, ,
, . , Wild
. , -
, -
, Wild,
.
Role
sof
lodel
Rollup of IterationSlx
. .Add Graph Readings Node Task
.. Add Graph Readings To Existing
Perspectives Task
.. Add Graph Rendings Perspective Task
. Add Graph Reoainqs To Navigator Story
fold
.Adjust Icons Task
.. Add Queries for User Defined Dote Fleids
Task
.. Add Queries For User Defined String Fields
Task
.. Add Queries For User Defined Number
Actual
Time
0.75
075
0
1.5
0.5
.Add Queries For User Defined Reids Story
total
Estimated
Time
1.5
1.6
1
4
0.25
1.5
1
1.5
4
8.25
Remaning
Time
0.5
0.5
1
2
0
0
0
1.5
1.6
3.5
pages examined starting with IterattonSlx.
Return to WelcomeVlsltors
. 26.4.
Wild , -
. ,
, -
. Wild, , -
Wild. Wild , -
. -
,
. , -
, -
Wild .
. -
, Wild. -
,
329
. Wild , , -
, , - -
.
Wiki,
.
, -
. .
, , , ,
.
, , .
Wiki
. ,
, -
, . , -
.
,
( ) -
- .
. , -
.
, ,
,
, , -
. -
. ,
. ,
, -
, , .
.
, . -
, , -
, ,
, , , . -
,
,
- . -
, ,
, .
, -
.
-
. ,
,
. -
.
330 26
-
, ?
, , -
. , -
, -
, - .
, , , , -
.
?
,
, .
, ,. , , -
, , -
. -
,
.
,
. ? -
? .
. -
, -
.
. -
, , -
, .
, , -
, (agile)
.
, , , -
, .
, -
. -
.
,
. , -
, . , -
, -
.
, -
. , -
. , -
, .
-
-либо, ,
, , .
(David Ogilvy)
. ,
. , ,
, .
, . «про-
« », « , , / -
».
, (agile) -
.
. , ,
. , -
. .
, -
.
RoleModel Software ,
: « .
,
, . -
,
. -
(agile) -
. , -
,
. -
. ,
. ,
, ». -
, .
333
, -
, . -
,
.
, .
, .
.
RoleModel Software
, - .
- . ,
. . ,
,
, . .
, , -
.
.
,
. -
,
.
, -
, , , -
. , ,
. ,
. «заказчик» , -
, -
. -
, .
, ,
. , ,
, .
,
.
, , ,
, . -
, ( ) .
« » -
, «строгают»
. , -
. , , -
, .
, - , -
, .
,
, . -
334 27
( -
) -
. .
-
: « , ».
30 .
. ,
-
. . -
.
, -
. - , -
,
. , ,
.
,
.
, , , -
( ) -
, :
. -
.
-
, -
. :
(
);
;
;
, -
.
, .
. , -
. .
,
. , -
, , ,
.
335
-
. , .
, . -
, , -
. .
.
?
.
.
.
.
. -
. .
,
, . -
.
.
.
.
, -
, .
, , ,
,
.
,
, :
1. , , -
.
2. , , -
.
3. , , -
.
(Roy Miller)
(Initial
Planning Game),
(The Planning Workshop).
. ,
336 27
, ,
.
, , ,
. ,
, .
,
, .
. -
(Initial Planning Game).
-
.
: « ?» -
, , -
-
. -
, ,
.
« ».
, -
. , -
, . -
,
, . -
, .
,
. -
. « »
(exploration period). ,
,
.
, . -
, -
. -
, -
.
, .
. -
:
1. ,
, -
.
2. ( ).
3. ,
, ( ) -
.
337
4. -
, .
5. , -
,
.
,
Optional Scope Contracts* (
). -
:
« , N $N
.
. -
, , -
30 ( ).
, -
. , -
,
, . -
-
».
.
. ,
, ,
.
-
,
, . , ,
, , , -
, . -
,
.
-
, . -
100% ,
.
, ,
. 26 .
, .
, : « -
, ,
, ,
. !»
. Beck, D. Clcal. Optional Scope Contracts. http://www.programmiiig.com/
xpublications.htm.
12 509
338 27
, .
,
,
. , ,
. , .
, .
, .
.
. -
. , , -
.
, . -
, 1:
, ?
?
, ?
, -
, , . -
, , -
.
,
. . ,
. , , -
-
. ,
. , ,
. -
. .
,
.
, , -
.
,
, . -
, .
, .
(Mack Hanan) «Consultative Selling: The Hanan
Formula for High-Margin Sales at High Levels s> ( :
). , 1999.
339
, . -
, - -
, . ,
. , , -
, . -
.
,
. -
. ,
. -
, -
.
. , -
, ,
.
, -
, -
. -
.
, -
.
, :
? -
, ,
.
-
:
;
;
, , ;
.
-
. , , -
, :
,
;
;
-
;
, -
.
341
,
.
, -
. .
,
. . ,
-
.
,
. ,
, . -
-
. , , ,
( ). -
, . -
,
. .
, ?
, -
. , (
, ), (
) ( -
, ).
,
, ,
, .
. ,
, :
;
;
-
;
.
, -
, -
. -
. . -
: «
, ».
342 28
, -
, . ,
, . -
,
.
, ,
: ( -
), , , -
. . -
, ,
, .
.
.
, - .
-
, . -
.
.
. , -
, , -
, ,
. -
, , , -
. , , . -
.
:
1. , -
.
2. ,
( ).
,
. -
, -
. -
, ,
. , -
.
343
, .
, -
, , .
.
.
-стратегию,
. ,
, . ,
. -
-
, .
, -
. , -
. -
. , -
. , ,
-
. , ,
.
, ,
.
. .
-
, :
1. , (на-
(например, ).
2. .
3. .
-
, .
, -
. ,
.
,
, .
.
, -
. , , -
. ,
, -
. ,
.
344 28
, . -
. -
, , -
.
-разному. , ,
. -
. . -
. -
.
. , .
, -
, -
.
, -
, .
, -
. , -
. , -
.
, . -
. -
.
:
,
. ,
, -
. , , -
, , -
, , .
« (intrapreneurs)
,
. Intrapreneuring -
HI (Gifford Pinchot III) : «Люди,
, ,
.
, »1. .
, ,
, .
' G. Pinchot III. Intrapreneuring. Harper & Row, 1985.
345
, ,
-культурой.
,
,
.
, . ,
, .
. ,
, . -
, , ,
.
, -
, , .
. ,
, . , .
, , -
, . -
, .
, ,
. -
, RoleModel Software? -
, Extreme Programming Explained (если, -
, ). , ,
, .
, -
,
. -
.
,
,
.
, .
, ,
.'
(Geoffrey Chaucer)
, ,
. , ,
,
.
. . -
, , .
.
: « , -
». - , -
. , -
, , .
, -
,
, , . -
, , : «Мето-
« ».
, .
-
, ,
, .
G. Chaucer. Troilus and Criseyde, 1385.
- ? 347
- ?
, ,
:
, -
. , -
.
,
(Department of Defense, DoD). -
, -
.
, , -
DoD. , DoD -
DoD ,
-
, , -
.
RUP (Rational Unified Process
)? -
RUP, 18 ,
,
. -
, RUP . , -
,
, , -
. , -
.
- , ,
, .
, , . -
, .
, , ,
. -
, -
, - ,
. . ,
, -
, . ,
, . ,
, .
, -
, -
. ( ,
348 29
.) -
, - ,
, - .
?
, 10-12 -
, ,
. : -
? , «
»? , 10 -
, ? , 10
?
-
. (Frederick Brooks) , -
, , 1.
?
, :
,
;
, -
;
, -
.
, ,
- . -
.
. -
. ,
.
. -
,
(tracker). , , -
, , ,
-
. , -
. , -
. ,
F. Brooks. The Mythical Man Month. Addison-Weslcy, 1995. C. 25. : «
». : . -месяц,
. .: -Плюс, 2000. . .
? 349
, -
. , , -
. ,
, .
,
,
. , .
, .
,
. , ,
. ,
, -
. ?
, , -
. . «экстремальное»
« » ,
:
. , -
, -
, -
.
. , , -
. ,
. ,
- . ,
, .
?
, ,
10-12 . -
,
. -
, ,
, -
.
. , -
, , -
.
10-12 ( ). -
.
?
-
. -совещание, 50 -
350 29
. , , 40 -
.
, -
, .
, , -
. . -
.
,
.
-ХР-проектах, , -
. , , -
, -
, , .
50 , -
10 . .
. -
, -
(например, ).
.
(coaching team). -
1:
, ;
, -
;
(Release Planning).
-
, . ,
, -
.
, - . -
,
.
, -команд. ,
, ,
, .
. - -
.
. -
(Ron Crocker) «The 5 Reasons XP
Can't Scale and What to Do About Them» ( , ,
),
(Second
International Conference on Extreme Programming and Flexible Processes in Software Engineering),
XP2001.
351
. -
, . ,
. ,
-
. , -
.
. , ,
. ,
(см. 10).
.
-решений, , . -
, ,
.
,
,
. -
-
, -
(Release Planning).
,
, . -
, -
.
/ , -
, -
.
.
-
, 50 , , -
« » -
,
50 , , ,
. -
, , , -
. -
, : « ?» -
, , ,
, .
.
(Ron Jeffries)
,
.
?
-
, ?
, , -
. . -
, -
, , , -
- . , -
.
-
, , ,
, -
.
,
,
, -
. , -
,
, .
. -
.
? 353
, , VNC PC Anywhere (
), -
, . ,
, , -
,
, , VNC.
.
, ,
.
, .
,
.
. -
.
-
, ,
-
. , , , ,
- , -
. :
. -
, -
, ,
. ,
-
. ,
, - , -
.
.
?
, . ,
, ,
? -
RoleModel Software , -
, . ,
, .
,
. -
.
, , ,
, . -
,
354 30
,
, , -
. .
, , ,
, . ,
, -
, ,
. , , -
,
.
?
, ,
( ). -
, (уча-
( ) .
?
. . -
.
, , -
.
.
(Susan Johnson)
, -
.
. -
, -
.
: ,
. -
.
-
. -
. , -
-
.
, -
.
.
:
, -
,
? 355
. , -
. -первых, (на-
( , )
, , . -
, ,
. ,
, .
.
,
. ,
-
.
,
.
, -
, ,
, .
FTP-узла. -
-
FTP-узел. ,
-
. .
- -
. , -
. ,
,
. , -
. -
.
, , -
,
, .
, -команда, , -
, . -
,
.
Copyright © 2001 by Susan R.Johnson. All rights reserved.
,
, .
, -
, , , -
. ,
-либо, . , -
,
« ». ,
356 30
, (agile), ,
, .
-
. ,
.
, -
,
.
. -
.
. -
.
, ,
, -
.
.
? ,
. , ,
, -
. , -
, -новому.
(Gary Hamel) Leading the Revolution ( -
) ,
. , , -
, .
, , -
.
.
(Jim Highsmith)
(agile) ,
.
, . ,
,
.
, , -
.
358 31
, .
, , .
, -
, , ,
. , ,
-
, , -
, . ,
, -
. .
, : «
124 , 147 ,
, 89% ».
, ,
.
Copyright © 2001 by Jim Highsmith. All rights reserved.
,
, -
(agility) . ,
-
, .
,
, , -
. , -
, -
, .
, -
1.
,
, -
. ,
,
, -
. , -
,
- , .
,
:
? ? ?
2001 (Jim Highsinith) ,
(Alan McCormack) MIT (Rob Austin)
(Richard Nolan) . « »
. (A. McCormack. Product Development Practices that Work: How
Internet Companies Build Software. MIT Sloan Management Review, 2001. T. 42. 2. 75-84. R. Austin,
R. Nolan. Manage ERP Initiatives as New Ventures, Not IT Projects. 1998 ).
359
, ? ?
?
? ? ?
? ? ?
-
? ? ?
?
?
. -
, -
«тяжелым» .
,
.
, -
.
?
(Ken Auer)
15
,
. , -
. .
: .
, ?
: ?
: ,
?
: ,
. -
,
Chrysler .
: , -
, - ? -
RUP1, .
: ? -
?
: - , ...
: RUP?
: .
, -
.
RUP, Rational Unified Process -
. . .
360 31
. -
. -
?
, -
. -первых,
- . -вторых,
, - .
RoleModel , -
« ». , -
. .
, .
,
. , - -
, «тяже-
«тяжелых» , -41.
, .
-проблемой. -
. -
, -
.
-
.
: -
, . , , -
, , .
(Laurie Williams) ,
.
«до» «после»
.
, (Giancarlo Succi)
(Канада)
. :
X . -
, , -
. , ,
.
1 , Capability Maturity Model , , -
. -
Software Engineering Institute.
? 361
, -
.
.
« », -
« » (research in typical). -
.
« » (research in
large). -
. -
(группа,
X ) -
(группа, ), -
, . -
^.
, -
, , .
« ». -
,
, -
.
?
, -
,
. , -
. :
1.
, .
2. , , ,
.
, , -
, , , . ,
, , -
, , .
. , -
,
.
,
, , , -
. ,
, ,
.
1 N. . Fenton, S. L Pfleeger. Software Metrics: A Rigorous and Practical Approach. Brooks/Cole Publishing
Company, 1998.
?
, -
, , ,
. , . -
.
. , -
, . -
, . -
. -
,
. .
, .
, ?
. « », -
« » ,
(Clayton ChristensenI. , -
, -
.
, , -
. ,
.
. ,
, , -
, .
,
.
.
( ), :
1. ,
, .
2. , , .
, -
. . , ,
. Christensen. The Innovator's Dilemma. Harvard Business School Press, 1997.
? 363
.
. , . . -
, .
. .
. . ,
, -
.
, -
, ,
. ,
, . .
, -
. , . -
, , «гиб-
«гибкость» (agility) , , ,
10 .
, , -
.
, . ?
40-hour week, 40- , 306
, 309
acceptance test, , 53, 289
assertion, , 53
CASE, Card-Assisted Software Engineering, 156
coach, , 313
coaching team, , 350
code review, , 222
code smell, , 249
Coding Standards, , 59
Collective Code Ownership,
, 56,279
Communication, , 49
Continuous Integration,
, 57
Courage, , 49
craft unit, , 166, 179, 204
customer, , 152
customer-on-site, , 284
developer, , 152
DoD, Department of Defense, 347
Drawlets, , 72
driving a spike, 71
enabler, , 275
estimate, , 178
Exploration Phase, , 189
Extreme Hour, , 167
Feedback, , 49
gold donor, , 154
gold owner, , 154
green bar, , 53
HotDraw, , 72
ideal day, , 203
ideal programming day,
, 179
Initial Planning Game,
, 188
integration machine,
, 256
intrapreneurs, , 344
J2ME Unit, , 218
JavaCC, 297
JUnit,
-компыотеров, 218
load factor, , 169
load factor, , 203
metaphore, , 310
MIDP, Mobile Information Device Profile, 218
On-Site Customer, , 57
Pair Programming,
, 54
parallel programming,
, 68
parallelism, , 235
pessimistic locking,
, 257
Planning Game, , 51, 175
Project Planning Workshop, 176
red bar, , 53
refactoring, , 55, 244
reflective articulation, 233
Release Planning Game,
, 188
RolcModel Online Extreme Project
Tracking, 324
RUP, Rational Unified Process
, 347
Simple Design, , 55
Simplicity, , 49
Small Releases, , 58
stand-up meeting, -совещание, 137
story point, , 203
story, , 177
sustainable pace, , 306
System Metaphor, , 59
T-gen, 297
Testing, , 52
tracker, , 322
UI, User Interface, 216
unit test, , 52
user story, , 129
VisualAge for Java, 136, 258
, 282
waterfall, , 33
Wiki, , 324
xUnit, , 215
xUnit, , 53
YAGNI, You Ain't Going To Need It, 270
YAGNI, You Ain't Going to Need It, 56
YAGNI, You Aren't Going to Need It, 245
-
, 323
, 275
, 222
, 314
, 173
365
, 56
, 64
, 33
, 306
, 26
, 254
, 55, 267
, 277
, 274
, 268
, 270
, 271
, 100, 134
, 291
, 209
, 145, 277
, 166, 179, 204
, 225
, 199
, 152
, 57
, 177
, 161
, 274
, 28
, 286
, 205
, 289
, 284
, 284
, 288
, 286
, 85
, 249
, 165
, 51, 175
, 161
, 177
, 192
, 176
, 178
, 176
, 183
(продолжение)
, 186
, 187
, 162
, 203
, 179
, 244
, 357
, 360
, 360
, 280, 281
, 34, 70
, 256
, 57, 253
, 256
, 255
, 254
, 258
, 344
, 126
, 194
, 189
, 191
, 186
, 155
, 187
, 56, 279
, 282
, 281
, 282
, 60
, 124, 133
, 134
-совещание, 137
, 297
, 169
, 32
, 37
, 33
, 36
, 32
, 173
, 346
?, 349
?, 349
, 348
, 130
, 131
, 80
, 310
, 310
, 311
, 59
366
, 206
, 219
, 209
, 214
, 211
, 212, 220
, 322
, 322
, 330
, 313
, 314
, 317
, 320
, 317
, 316
, 315
, 350
, 308
, 81
;о;
, 88
, 123, 321
, 248
, 259
, 262
, 263
, 235
, 178, 185, 202
, 179
, 179
, 131
, 235
, 54, 221
, 225
, 225
, 134
, 232
, 225
, 239
, 234
, 127
, 235
, 235
, 241
, 233
, 243
, 128
, 229
, 227
, 237
, 83, 95, 231, 233
, 131
, 222
, 257
, 148, 172, 192
, 176, 188
, 191
, 140
, 176, 188
, 258
, 177
, 129
, 193
, 183
, 186
, 49
40- , 306
, 306
, 284
, 175
, 279
, 310
, 206
, 221
, 267
, 244
, 289
, 115
, 302
, 294
, 291
, 298
, 293
, 300
, 292
, 296
, 53, 289
, 129
, , 27
, 332
, 342
, 344
, 340
, 334
, 342
, 55
, 55
, 122
, 82
, 268
, 141
, 338
, 203
, 141, 229
, 241
, 33
, 33
, 152, 154
, 286
, 27
367
(продолжение)
, 318
, 92
, 352
, 334
, 55, 244
, 248
, 247
, 251
, 249
, 250
, 212
, 248
, 152
, 322
, 313
, 152
, 152, 154
, 154
, 154
, 307
, 307
, 253
, 202
,
,
, 176
, 76
, 85
, 80
, 87
, 81
, 100
, 83, 95, 233
, 77
, 82, 93
, 92
, 97
, 154
, 59, 302
, 302
, 303
, 97
, 245
, 333
(продолжение)
, 211
, 53, 289
, 212
, 52, 206
Motorola iDEN, 218
Reflection API, 218
, 294
, 209
, 297
, 211
, 289
, 216
web-приложения, 218
-компьютеры, 217
, 216
, 208, 248
, 208
, 208
, 207
, 214
, 30
, 151
, 208
, 289
Java, 142
, 189
, 203
, 125, 208
, 154
, 49, 122
, 49, 124, 133
, 49, 123
, 49, 122
, 49, 125
, 58
, 108
, 187
, 246
, 207
, 72
, 73
, 73
, 74
-совещание, 137
, 167
, 335
, 228, 311
, 52, 206
, 211
:
.
.
.
.
.
.
. , .
.
05784 07.09.01
19.01.04. 70x100 Id. . . . 29,67.
. 3000. 509
« », 196105, -Петербург, , . 67в.
005-93, 2; 95 3005 .
« »
,
190005, -Петербург, ., 29
,
(ХР)
,
, ,
.
,
,
,
.
.
.
,
. ,
.
, ,
. , .
web-*
idviH- www.pBor.conm.
Addison-Wesley
(Planning Game)
(Testing)
(Pair Programming)
(Refactoring)
(Simple Design)
(Collective Code
Ownership)
(Continuous Integration)
(On-Site
Customer)
(Small Releases)
40-
D0-hour Week)
(Coding Standards)
(System Metaphor)
:
/
:
ISBN 5-318-00132-7
9 785318 001321