Frederik P.Bruks. Mificheskij cheloveko-mesyac ili kak sozdatsya programmnye sistemy
---------------------------------------------------------------
THE MYTHICAL MAN-MONTH
(Essays on Software Engineering)
ADDISON-WESLEY PUBLISHING COMPANY READING 1975
Copyright (c) 1975 by Acldison-Wesley Publishing Company, Inc.
Philippines; Copyright 1975 by Addison-Wesley Publishing Company, Inc.
Copvrisht (c) 1972 by Frederick P. Brooks, Jr.
OCR, formating: Jek , Alex Buloichik
---------------------------------------------------------------
Posvyashchenie izdaniya 1975 goda
Posvyashchaetsya dvoim lyudyam, blagodarya kotorym moi gody v IBM byli
osobenno nasyshchennymi: Tomasu Dzh. Uotsonu Mladshemu, ch'e glubokoe vnimanie k
lyudyam po-prezhnemu oshchushchaetsya v ego firme, i Bobu O. |vansu, ch'e smeloe
rukovodstvo prevratilo rabotu v priklyuchenie.
Posvyashchenie izdaniya 1995 goda
Posvyashchaetsya Nensi, Bozh'emu daru dlya menya.
Predislovie k izdaniyu 1995 goda
K moemu udivleniyu i udovol'stviyu, "Mificheskij cheloveko-mesyac" ostaetsya
populyarnym cherez 20 let posle vyhoda. Tirazh prevysil 250 000 ekzemplyarov.
Menya chasto sprashivayut, kakie iz ocenok i rekomendacij, izlozhennyh v 1975
godu, ya po- prezhnemu schitayu vernymi, a kakie preterpeli izmeneniya, i v chem
imenno. Nesmotrya na to, chto v moih lekciyah etot vopros vremya ot vremeni
zatragivaetsya, ya davno zhdu vozmozhnosti izlozhit' ego v pechatnom vide.
Piter Gordon (Peter Gordon), yavlyayushchijsya sejchas sovladel'cem
izdatel'stva Addison-Wesley, terpelivo i s pol'zoj sotrudnichaet so mnoj s
1980 goda. On predlozhil podgotovit' yubilejnoe izdanie. My reshili ne
ispravlyat' original, a perepechatat' ego v neprikosnovennosti, za isklyucheniem
obychnyh opechatok, i dopolnit' myslyami, voznikshimi v bolee pozdnee vremya.
V glave 16 perepechatyvaetsya stat'ya "Serebryanoj puli net: sushchnost' i
akcidenciya v programmnoj inzhenerii", opublikovannaya IFIPS (Mezhdunarodnaya
federaciya obshchestv po obrabotke informacii) v 1986 godu i yavivshayasya
rezul'tatom opyta, poluchennogo mnoyu vo vremya rukovodstva issledovaniem
ispol'zovaniya programmnogo obespecheniya v voennyh oblastyah, provodivshegosya
Voennym komitetom po nauke. Moi soavtory po etomu issledovaniyu, a takzhe nash
ispolnitel'nyj sekretar' Robert L. Patrik, okazali mne neocenimoe sodejstvie
v moem vozvrashchenii k krupnym prakticheskim programmnym proektam. Stat'ya byla
perepechatana v izdanii IEEE "Computer" v 1987 godu, blagodarya kotoromu
poluchila shirokuyu izvestnost'.
Stat'ya "Serebryanoj puli net" byla derzkoj. V nej predrekalos', chto v
techenie blizhajshego desyatiletiya ne vozniknet metodov programmirovaniya,
ispol'zovanie kotoryh pozvolit na poryadok velichin povysit'
proizvoditel'nost' razrabotki programmnogo obespecheniya pri prochih ravnyh
usloviyah. Do konca etogo desyatiletiya ostalsya god, i, pohozhe, moe
predskazanie sbylos'. Stat'ya vyzvala bolee ozhivlennuyu diskussiyu v pechati,
chem "Mificheskij cheloveko-mesyac", poetomu v glave 17 soderzhatsya otvety na
nekotorye iz opublikovannyh kriticheskih zamechanij, a takzhe utochnyayutsya
vzglyady, izlozhennye v 1986 godu.
Pri podgotovke retrospektivnogo analiza i utochneniya knigi "Mificheskij
cheloveko-mesyac" ya byl udivlen tem, kak malo soderzhavshihsya v nej zayavlenij
podverglos' kritike - kak iz chisla dokazannyh, tak i oprovergnutyh
posleduyushchim opytom i issledovaniyami v oblasti razrabotki programmnogo
obespecheniya. Mne pokazalos' poleznym sistematizirovat' eti zayavleniya v
chistom vide, bez soputstvuyushchih dokazatel'stv i dannyh. YA vklyuchil v knigu
etot ocherk v kachestve glavy 18, nadeyas', chto eti chistye utverzhdeniya vyzovut
poisk argumentov i faktov dlya dokazatel'stva, oproverzheniya, peresmotra ili
utochneniya.
Glava 19 sobstvenno i predstavlyaet soboj popytku peresmotret'
iznachal'nye utverzhdeniya. Sleduet predupredit' chitatelya, chto izlagaemye novye
vzglyady daleko ne v toj mere podkrepleny "boevym opytom", kak eto bylo v
pervoj chasti knigi. Delo v tom, chto v poslednee vremya ya rabotal v
universitetskoj srede, a ne v promyshlennosti, i nad nebol'shimi, a ne
krupnomasshtabnymi proektami. S 1986 goda ya zanimayus' tol'ko
prepodavatel'skoj deyatel'nost'yu v oblasti razrabotki programmnogo
obespecheniya, no ne issledovaniyami v nej. Moya issledovatel'skaya rabota bol'she
kasaetsya virtual'nyh sred i ih primenenij.
Pri podgotovke dannoj retrospektivy ya pointeresovalsya sovremennymi
vzglyadami svoih druzej, kotorye prakticheski zanimayutsya razrabotkoj
programmnogo obespecheniya. V chislo teh, pered kem ya v dolgu za gotovnost'
podelit'sya svoimi vzglyadami, sdelat' poleznye zamechaniya k pervonachal'nomu
tekstu i usovershenstvovat' moe obrazovanie, vhodyat Barri Bem (Barry Boehm),
Ken Bruks (Ken Brooks), Dik Kejs (Dick Case), Dzhejms Koggins (James
Coggins), Tom Demarko (Tom DeMarco), Dzhim Makkarti (Jim McCarthy), Devid
Parnas (David Parnas), |rl Uiler (Earl Wheeler) i |dvard Jordon (Edward
Yordon). Fej Uard (Fay Ward) prekrasno vypolnila tehnicheskuyu rabotu,
svyazannuyu s izdaniem novyh glav.
YA blagodaren moim kollegam iz Gruppy po programmnomu obespecheniyu dlya
voennyh celej Voennogo komiteta po nauke Gordonu Bellu (Gordon Bell), Bryusu
B'yukenenu (Bruce Buchanan), Riku Hejz-Rotu (Rick Hayes-Roth) i osobenno
Devidu Parnasu - za ih plodotvornye idei, a Rebeke Birli (Rebekah Bierly) -
za podgotovku k pechati stat'i, opublikovannoj v dannoj knige v kachestve
glavy 16. Analiz problem programmirovaniya v kategoriyah "sushchnost'" (essence)
i "akcidenciya" (accident) vozniklo blagodarya Nensi Grinvud Bruks,
ispol'zovavshej takoj analiz v stat'e ob obuchenii igre na skripke metodom
Suzuki.
Obychai izdatel'stva Addison-Wesley ne pozvolili mne v predislovii k
izdaniyu 1975 goda vyrazit' blagodarnost' ego sotrudnikam za sygrannuyu imi
vazhnuyu rol'. Sleduet osobenno otmetit' vklad dvuh chelovek: Normana Stentona
(Norman Stenton), yavlyavshegosya otvetstvennym redaktorom, i Gerberta Bouza
(Herbert Boes), byvshego hudozhestvennym redaktorom. Bouz sozdal izyashchnyj
stil', osobo otmechennyj odnim iz recenzentov: "shirokie polya i tvorcheskoe
ispol'zovanie shriftov i komponovki materiala". CHto eshche vazhnee, on dal vazhnyj
sovet pomestit' v nachale kazhdoj glavy svoyu kartinku. (V to vremya u menya byli
tol'ko kartinki Smolyanyh yam i Rejmskogo sobora.) CHtoby najti vse kartinki,
mne potrebovalsya celyj god, no ya beskonechno blagodaren za sovet.
Soli Deo gloria - Bogu edinomu slava! F. P. B., Jr. CHapel Hill,
Severnaya Karolina
Mart 1995
Predislovie k pervomu izdaniyu
Vo mnogih otnosheniyah upravlenie bol'shim proektom razrabotki
programmnogo obespecheniya analogichno lyubomu drugomu krupnomu nachinaniyu - v
bol'shej mere, chem obychno schitayut programmisty. Odnako vo mnogih otnosheniyah
imeet otlichiya - v bol'shej mere, chem obychno predpolagayut professional'nye
menedzhery. Idet process nakopleniya professional'nyh znanij v etoj oblasti.
Sostoyalos' neskol'ko konferencij, zasedanij na konferenciyah AFIPS,
opublikovano neskol'ko knig i statej. No znaniya eshche ne oformilis' v tom
vide, kogda ih mozhno sistematicheski izlozhit' v uchebnike. Tem ne menee,
predstavlyaetsya umestnym predlozhit' etu nebol'shuyu po ob®emu knigu,
otrazhayushchuyu, v osnovnom, moi lichnye vzglyady.
Moe professional'noe stanovlenie v vychislitel'noj tehnike pervonachal'no
bylo svyazano s programmirovaniem, odnako v period 1956-1963 godov, kogda
razrabatyvalis' avtonomnye upravlyayushchie programmy i yazyki vysokogo urovnya, ya
zanimalsya, v osnovnom, arhitekturoj komp'yuterov. Kogda v 1964 godu ya stal
menedzherom proekta razrabotki Operating System/360, to obnaruzhil, chto mir
programmirovaniya sovershenno izmenilsya blagodarya uspeham, dostignutym za
neskol'ko poslednih let.
Rukovodstvo razrabotkoj OS/360 bylo ochen' pouchitel'nym, hotya i polnym
rasstrojstv. Komande razrabotchikov, v tom chisle smenivshemu menya F. M.
Trapnellu (F. M. Trapnell), mozhno mnogim gordit'sya. Sistema soderzhit mnogo
otlichnyh reshenij v konstrukcii i funkcionirovanii, i ej udalos' poluchit'
shirokoe rasprostranenie. Nekotorye idei, v pervuyu ochered', organizaciya
vvoda/vyvoda, nezavisimaya ot ustrojstv, i upravlenie vneshnimi bibliotekami
stali tehnicheskimi novinkami, nyne shiroko ispol'zuemymi. Sejchas eta sistema
vpolne nadezhna, dostatochno proizvoditel'na i ves'ma gibka.
Odnako proekt nel'zya nazvat' vpolne uspeshnym. Vsyakomu pol'zovatelyu
OS/360 bystro stanovitsya yasno, naskol'ko luchshe mogla by byt' sistema. Oshibki
proektirovaniya i realizacii osobenno zametny v upravlyayushchej programme, a ne v
kompilyatorah yazykov. Bol'shaya chast' etih proschetov otnositsya k periodu
1964-65 godov i potomu dolzhna byt' otnesena na moj schet. Bolee togo, sistema
vyshla s zaderzhkoj, potrebovala bol'she pamyati, chem predpolagalos', stoimost'
razrabotki v neskol'ko raz prevysila zaplanirovannuyu, i pervye neskol'ko
versij funkcionirovali ne slishkom udachno.
Pokinuv v 1965 godu IBM i pridya v CHepel Hill, kak eto i predpolagalos',
ya vozglavil razrabotku OS/360 i stal analizirovat' opyt etoj razrabotki,
chtoby izvlech' uroki tehnologicheskih reshenij i administrirovaniya. V
chastnosti, ya hotel ponyat', pochemu stol' razlichnym okazalsya opyt
administrirovaniya pri razrabotke apparatnoj chasti System/360, s odnoj
storony, i sozdanii operacionnoj sistemy OS/360 - s drugoj. |ta kniga
yavlyaetsya zapozdalym otvetom na voprosy Toma Uotsona otnositel'no trudnosti
upravleniya razrabotkoj programm.
V reshenii etoj zadachi ya poluchil bol'shuyu pol'zu ot dlitel'nogo obshcheniya s
R. P. Kejsom (R. P. Case), pomoshchnikom menedzhera proekta v 1964-65 godah, i
F. M. Trapnellom, menedzherom proekta v 1965-68 godah. YA obsudil svoi vyvody
s menedzherami drugih krupnyh programmnyh proektov, v tom chisle F. Dzh.
Korbato (F. J. Corbato) iz MTI, Dzhonom Harrom (John Harr) i V. Vysockim (V.
Vyssotsky) iz Bell Telephone Laboratories, CHarl'zom Portmanom (Charles
Portman) iz International Computers Limited, A. P. Ershovym iz
Vychislitel'nogo centra Sibirskogo otdeleniya Akademii nauk SSSR, a takzhe A.
M. P'etrasanta (A. M. Pietrasanta) iz IBM.
Sobstvennye moi vyvody soderzhatsya v sleduyushchih nizhe ocherkah,
prednaznachennyh professional'nym programmistam, professional'nym menedzheram
i osobenno professional'nym menedzheram v programmirovanii.
Hotya kniga napisana kak otdel'nye ocherki, u nee est' central'naya tema,
izlagaemaya v glavah 2-7. Vkratce moe mnenie zaklyuchaetsya v tom, chto
trudnosti, ispytyvaemye pri upravlenii krupnymi programmnymi proektami,
inogo roda, nezheli pri upravlenii nebol'shimi proektami, chto svyazano s
problemami razdeleniya truda. YA schitayu vazhnejshej zadachej sohranenie
konceptual'noj celostnosti samogo produkta. V etih glavah obsuzhdayutsya
trudnosti, voznikayushchie na puti k etomu edinstvu, i sposoby ih preodoleniya. V
glavah, sleduyushchih za nimi, obsuzhdayutsya drugie aspekty upravleniya razrabotkoj
programmnogo obespecheniya.
Imeyushchayasya po etoj teme literatura ne slishkom bogata, no ves'ma
raspylena. Poetomu ya postaralsya vklyuchit' ssylki na literaturu, kotorye
pomogut osvetit' otdel'nye voprosy i otoshlyut zainteresovannogo chitatelya k
drugim poleznym rabotam. Rukopis' knigi prochli mnogie moi druz'ya, i
nekotorye iz nih sdelali prostrannye i poleznye zamechaniya. V teh sluchayah,
kogda, nesmotrya na cennost', oni ne vpolne vpisyvalis' v tekst, ya vklyuchal ih
v primechaniya.
Poskol'ku eta kniga predstavlyaet soboj sbornik ocherkov, a ne edinyj
tekst, vse ssylki i primechaniya vyneseny v konec, i chitatelyu pri pervom
chtenii mozhno ih propustit'.
YA gluboko priznatelen miss Sare |lizabet Mur (Sara Elizabeth Moore),
misteru Devidu Vagneru (David Wagner) i missis Rebekke Berris (Rebecca
Burris) za pomoshch' v podgotovke dannoj rukopisi, a takzhe professoru Dzhozefu
Slounu (Joseph C. Sloane) za sovety v otnoshenii illyustracij.
F. P. B., Jr.
CHepel Hill, Severnaya Karolina
Oktyabr' 1974
Glava 1. Smolyanaya yama
Een Schip op bet strand is een baken in zee.
[Korabl' na meli - moryaku mayak.]
GOLLANDSKAYA POSLOVICA
Samaya yarkaya scena doistoricheskih vremen - bor'ba ogromnyh zhivotnyh so
smert'yu v smolyanyh yamah. Voobrazhenie predstavlyaet dinozavrov, mamontov i
sablezubyh tigrov, pytayushchihsya vysvobodit'sya iz smoly. CHem otchayannej bor'ba,
tem sil'nee zatyagivaet smola, i kak by ni byl silen ili lovok zver', v
konechnom itoge emu ugotovana gibel'.
Takoj smolyanoj yamoj v poslednee desyatiletie bylo programmirovanie
bol'shih sistem: v nej sginul ne odin bol'shoj i sil'nyj zver'. Po bol'shej
chasti eto proishodilo v oblasti sistem, gde malo komu udalos' realizovat'
specifikacii, ulozhit'sya v grafik i byudzhet. Bol'shie i malye, massivnye i
zhilistye - odna za drugoj eti komandy uvyazli v smole. Kazalos', nichto v
otdel'nosti ne vyzyvaet trudnostej - odnu lapu vsegda mozhno vytashchit'. No
nakoplenie dejstvuyushchih odnovremenno i vzaimovliyayushchih faktorov vse bolee i
bolee zamedlyaet dvizhenie. Vyzyvaet udivlenie nepriyatnost' voznikshej
problemy, i raspoznat' ee sushchnost' nelegko. No nuzhno eto sdelat', esli my
sobiraemsya reshit' ee.
Poetomu nachnem s opredeleniya togo, chto takoe sistemnoe
programmirovanie, i kakie radosti i pechali ono tait.
Sistemnyj programmnyj produkt
Vremya ot vremeni mozhno prochest' v gazete o tom, kak v
pereoborudovannom garazhe para programmistov sdelala zamechatel'nuyu programmu,
ostavivshuyu pozadi razrabotki bol'shih komand. I kazhdyj programmist ohotno
verit v eti skazki, poskol'ku znaet, chto mozhet sozdat' lyubuyu programmu so
skorost'yu, znachitel'no prevyshayushchej te 1000 operatorov v god, kotorye, po
soobshcheniyam, pishut programmisty v promyshlennyh brigadah.
Pochemu zhe do sih por vse professional'nye brigady programmistov ne
zameneny oderzhimymi duetami iz garazhej? Nuzhno posmotret' na to, chto,
sobstvenno, proizvoditsya.
V levom verhnem uglu risunka 1.1 nahoditsya programma. Ona yavlyaetsya
zavershennym produktom, prigodnym dlya zapuska svoim avtorom na sisteme, na
kotoroj byla razrabotana. V garazhah obychno proizvoditsya takoj produkt, i eto
- tot ob®ekt, posredstvom kotorogo otdel'nyj programmist ocenivaet svoyu
proizvoditel'nost'.
Est' dva sposoba, kotorymi programmu mozhno prevratit' v bolee poleznyj,
no i bolee dorogoj ob®ekt. |ti dva sposoba predstavleny po krayam risunka.
Pri peremeshchenii vniz cherez gorizontal'nuyu granicu programma
prevrashchaetsya v programmnyj produkt. |to programma, kotoruyu lyuboj chelovek
mozhet zapuskat', testirovat', ispravlyat' i razvivat'. Ona mozhet
ispol'zovat'sya v razlichnyh operacionnyh sredah i so mnogimi naborami dannyh.
CHtoby stat' obshcheupotrebitel'nym programmnym produktom, programma dolzhna byt'
napisana v obobshchennom stile. V chastnosti, diapazon i vid vhodnyh dannyh
dolzhny byt' nastol'ko obobshchennymi, naskol'ko eto dopuskaetsya bazovym
algoritmom. Zatem programmu nuzhno tshchatel'no protestirovat', chtoby byt'
uverennym v ee nadezhnosti. Dlya etogo nuzhno podgotovit' dostatochnoe
kolichestvo kontrol'nyh primerov dlya proverki diapazona dopustimyh znachenij
vhodnyh dannyh i opredeleniya ego granic, obrabotat' eti primery i
zafiksirovat' rezul'taty. Nakonec, razvitie programmy v programmnyj produkt
trebuet sozdaniya podrobnoj dokumentacii, s pomoshch'yu kotoroj kazhdyj mog by
ispol'zovat' ee, delat' ispravleniya i rasshiryat'. YA pol'zuyus' prakticheskim
pravilom, soglasno kotoromu programmnyj produkt stoit, po men'shej mere,
vtroe dorozhe, chem prosto otlazhennaya programma s takoj zhe funkcional'nost'yu.
Ris. 1.1 |volyuciya sistemnogo programmnogo produkta
Pri peresechenii vertikal'noj granicy programma stanovitsya komponentom
programmnogo kompleksa. Poslednij predstavlyaet soboj nabor vzaimodejstvuyushchih
programm, soglasovannyh po funkciyam i formatam, i vkupe sostavlyayushchih polnoe
sredstvo dlya resheniya bol'shih zadach. CHtoby stat' chast'yu programmnogo
kompleksa, sintaksis i semantika vvoda i vyvoda programmy dolzhny
udovletvoryat' tochno opredelennym interfejsam. Programma dolzhna byt' takzhe
sproektirovana takim obrazom, chtoby ispol'zovat' zaranee ogovorennyj byudzhet
resursov - ob®em pamyati, ustrojstva vvoda/vyvoda, processornoe vremya.
Nakonec, programmu nuzhno protestirovat' vmeste s prochimi sistemnymi
komponentami vo vseh sochetaniyah, kotorye mogut vstretit'sya. |to testirovanie
mozhet okazat'sya bol'shim po ob®emu, poskol'ku kolichestvo testiruemyh sluchaev
rastet eksponencial'no. Ono takzhe zanimaet mnogo vremeni, tak kak skrytye
oshibki vyyavlyayutsya pri neozhidannyh vzaimodejstviyah otlazhivaemyh komponentov.
Komponent programmnogo kompleksa stoit, po krajnej mere, vtroe dorozhe, chem
avtonomnaya programma s temi zhe funkciyami. Stoimost' mozhet uvelichit'sya, esli
v sisteme mnogo komponentov.
V pravom nizhnem uglu risunka 1.1 nahoditsya sistemnyj programmnyj
produkt. Ot obychnoj programmy on otlichaetsya vo vseh perechislennyh vyshe
otnosheniyah. I stoit, sootvetstvenno, v desyat' raz dorozhe. No eto
dejstvitel'no poleznyj ob®ekt, kotoryj yavlyaetsya cel'yu bol'shinstva sistemnyh
programmnyh proektov.
Radosti professii
Pochemu zanimat'sya programmirovaniem interesno? Kakimi radostyami
voznagrazhdayutsya te, kto im zanimaetsya?
Vo-pervyh, eto prosto radost', poluchaemaya pri sozdanii chego-libo svoimi
rukami. Kak rebenok raduetsya, delaya kulichiki iz peska, tak i vzroslyj
poluchaet udovol'stvie, sozdavaya kakie-libo veshchi, osobenno esli sam ih i
pridumal. YA dumayu, chto etot vostorg - otrazhenie vostorga Gospoda, tvoryashchego
mir, vostorga, proyavlyayushchegosya v individual'nosti i novizne kazhdogo listochka
i kazhdoj snezhinki.
Vo-vtoryh, eto udovol'stvie sozdavat' veshchi, kotorye mogut byt' polezny
drugim lyudyam. Gluboko v dushe my ispytyvaem potrebnost' v tom, chtoby drugie
ispol'zovali rezul'taty nashego truda i schitali ih poleznymi. V etom
otnoshenii programmnaya sistema po svoej suti - to zhe, chto i izgotovlennaya
rebenkom podstavka dlya karandashej "pape v podarok".
V-tret'ih, eto ocharovanie sozdaniya slozhnyh golovolomnyh ob®ektov,
sostoyashchih iz vzaimodejstvuyushchih dvizhushchihsya chastej i nablyudeniya za ih rabotoj,
krug za krugom demonstriruyushchej rezul'taty iznachal'no zalozhennyh principov.
Komp'yuter s rabotayushchej na nem programmoj obladaet dovedennym do vysshego
predela ocharovaniem igornogo ili muzykal'nogo avtomata.
V-chetvertyh, eto radost', poluchaemaya ot neizmennogo uznavaniya novogo,
proistekayushchego iz nepovtorimoj prirody zadachi. V tom ili inom otnoshenii
zadacha vsegda stavitsya po-novomu, i tot, kto ee reshaet, poluchaet novye
znaniya - libo prakticheskie, libo teoreticheskie, libo te i drugie vmeste.
Nakonec, naslazhdenie dostavlyaet rabota so stol' podatlivym materialom.
Programmist, podobno poetu, rabotaet pochti neposredstvenno s chistoj mysl'yu.
On stroit svoi zamki v vozduhe i iz vozduha, tvorya siloj voobrazheniya. Trudno
najti drugoj material, ispol'zuemyj v tvorchestve, kotoryj stol' zhe gibok,
prost dlya shlifovki ili pererabotki i dostupen dlya voploshcheniya grandioznyh
zamyslov. (Kak my pozdnee uvidim, takaya podatlivost' tait svoi problemy.)
Odnako programmnaya konstrukciya, v otlichie ot poeticheskih tvorenij,
real'na, v tom smysle, chto ona dvizhetsya i rabotaet, proizvodya vidimye
rezul'taty, kotorye otdelimy ot samoj konstrukcii. Ona pechataet rezul'taty,
risuet kartinki, proizvodit zvuki, privodit v dvizhenie rychagi. V nashe vremya
osushchestvilos' volshebstvo mifa i legendy. S klaviatury vvoditsya vernoe
zaklinanie, i ekran monitora ozhivaet, pokazyvaya to, chego nikogda ne bylo i
ne moglo byt'.
Takim obrazom, programmirovanie dostavlyaet udovol'stvie, poskol'ku
otvechaet glubokoj vnutrennej potrebnosti v tvorchestve i udovletvoryaet
chuvstvennye potrebnosti, kotorye est' u vseh nas.
Pechali professii
Ne vse, odnako, v radost', i esli predvidet' prisushchie etomu remeslu
ogorcheniya, to oni legche perenosyatsya.
Vo-pervyh, neobhodima bezoshibochnaya tochnost' dejstvij. V etom otnoshenii
komp'yuter takzhe napominaet volshebstvo. Odin nevernyj znak, odna pauza v
zaklinanii, i chudo ne sostoyalos'. CHeloveku nesvojstvenno sovershenstvo, i ono
yavlyaetsya neobhodimym lish' v nemnogih sferah ego deyatel'nosti. Mne kazhetsya,
chto pri osvoenii programmirovaniya trudnee vsego privyknut' k trebovaniyu
sovershenstva.1
Krome togo, postanovka zadach, obespechenie resursami i predostavlenie
informacii osushchestvlyaetsya drugimi lyud'mi. Redko udaetsya kontrolirovat'
usloviya raboty i dazhe ee celi. Na yazyke administrirovaniya eto oznachaet, chto
polnomochiya nizhe otvetstvennosti. Vprochem, pohozhe, chto v lyuboj rabote, gde
dolzhen byt' poluchen rezul'tat, formal'naya vlast' nikogda ne soizmerima s
otvetstvennost'yu. Na praktike fakticheskaya (v protivopolozhnost' formal'noj)
vlast' priobretaetsya v rezul'tate uspeshnogo vypolneniya zadach.
Zavisimost' ot drugih imeet osobenno nepriyatnuyu sistemnomu programmistu
storonu. On nahoditsya v zavisimosti ot programm, napisannyh drugimi lyud'mi,
i eti programmy zachastuyu ploho sproektirovany, slabo napisany, polucheny v
nepolnom vide (bez ishodnogo teksta i kontrol'nyh primerov) i ploho
dokumentirovany. Poetomu programmistu prihoditsya tratit' mnogie chasy na
izuchenie i ispravlenie veshchej, kotorye, v ideale, dolzhny byt' polnymi,
dostupnymi i godnymi k ispol'zovaniyu.
Sleduyushchij "minus" svyazan s tem, razrabotka grandioznyh idej - eto
udovol'stvie, a poisk parshivyh malen'kih "zhuchkov" - eto vsego lish' rabota. V
kazhdom tvorcheskom dele byvayut uzhasnye periody odnoobraznogo i kropotlivogo
truda, i programmirovanie ne yavlyaetsya isklyucheniem.
Dalee okazyvaetsya, chto pri otladke programmy shodimost' yavlyaetsya
linejnoj, esli ne huzhe, hotya mozhno bylo predpolagat' nekoe kvadratichnoe
priblizhenie k okonchaniyu. V itoge otladka prodolzhaetsya dolgo, prichem na poisk
poslednih bolee slozhnyh oshibok uhodit bol'she vremeni, chem na otyskanie
pervyh.
Poslednyaya gorest', a chasto i poslednyaya kaplya, - to, chto produkt, na
kotoryj bylo polozheno stol'ko truda, okazyvaetsya ustarevshim v moment ego
zaversheniya (ili dazhe ran'she). Kollegi i konkurenty uzhe s pylom rabotayut nad
novymi i luchshimi ideyami. I unichtozhenie ploda vashej mysli uzhe ne tol'ko
zadumano, no i zaplanirovano.
Na samom dele polozhenie obychno luchshe, chem kazhetsya. V to vremya kak vash
produkt uzhe zavershen, etot novyj i luchshij produkt, kak pravilo, otsutstvuet
na rynke, o nem lish' mnogo razgovorov, i dlya ego razrabotki potrebuyutsya
mesyacy. Nastoyashchij tigr ne para bumazhnomu, esli trebuetsya real'noe
ispol'zovanie. Real'noe sushchestvovanie imeet preimushchestva.
Konechno, tehnologicheskaya osnova razrabotki vsegda razvivaetsya. Kak
tol'ko razrabotka proekta zakonchena, on stanovitsya ustarevshim v smysle
zalozhennyh v nem koncepcij. No dlya osushchestvleniya real'nogo proekta
neobhodimo razbienie na stadii i urovni. Sudit' o tom, yavlyaetsya li nekaya
realizaciya ustarevshej, mozhno lish' sravnivaya ee s drugimi sushchestvuyushchimi
realizaciyami, a ne s nerealizovannymi ideyami. Trudnost' i cel' sostoyat v
tom, chtoby najti real'nye resheniya dlya real'nyh zadach v ustanovlennye sroki,
ispol'zuya imeyushchiesya resursy.
Takovo programmirovanie - i smolyanaya yama, v kotoroj uvyazli mnogie
proekty, i tvorchestvo so svoimi radostyami i pechalyami. Dlya mnogih radosti
znachat gorazdo bol'she, chem pechali. Dlya nih i napisana eta kniga v popytke
prolozhit' kakie-to mostki cherez eto boloto.
Glava 2. |tot mificheskij "cheloveko-mesyac"
CHtoby prigotovit' vkusnuyu pishchu,
trebuetsya vremya. Esli vam prishlos' zhdat', to lish' potomu, chto my hotim luchshe
obsluzhit' vas i dostavit' vam udovol'stvie.
MENYU RESTORANA "ANTUAN" VNXYU-ORLEANE
Programmnye proekty chashche provalivayutsya iz-za nehvatki kalendarnogo
vremeni, chem po vsem ostal'nym prichinam vmeste vzyatym. Pochemu eta prichina
neudach stol' rasprostranena?
Vo-pervyh, slabo razvity nashi metody ocenok. V sushchnosti, oni otrazhayut
molchalivoe i sovershenno nevernoe predpolozhenie, chto vse budet idti horosho.
Vo-vtoryh, nashi metody ocenki oshibochno putayut dostignutyj progress s
zatrachennymi usiliyami, neyavno dopuskaya, chto skorost' vypolneniya proekta
proporcional'na kolichestvu zanyatyh v nem sotrudnikov.
V-tret'ih, poskol'ku menedzhery programmnyh proektov ne uvereny v svoih
ocenkah, im chasto nedostaet vezhlivogo upryamstva, kak u shef-povara restorana
"Antuan".
V-chetvertyh, vypolnenie grafika rabot slabo kontroliruetsya. Tipovye
oprobovannye v drugih inzhenernyh disciplinah metody schitayutsya radikal'nymi
novovvedeniyami pri razrabotke programmnogo obespecheniya.
V-pyatyh, pri obnaruzhenii otstavaniya ot grafika estestvennoj i
obshcheprinyatoj reakciej yavlyaetsya uvelichenie chisla razrabotchikov. |to vse
ravno, chto tushit' plamya benzinom. V rezul'tate dela idut znachitel'no huzhe.
CHem sil'nee plamya, tem bol'she nuzhno benzina, i v itoge etot put' privodit k
katastrofe.
Kontrol' vypolneniya grafika budet predmetom otdel'nogo razgovora.
Rassmotrim bolee podrobno ostal'nye aspekty problemy.
Optimizm
Vse programmisty - optimisty. Vozmozhno, eta sovremennaya raznovidnost'
koldovstva osobenno privlekatel'na dlya teh, kto verit v heppi-endy i dobryh
fej. Vozmozhno, sotni neudach ottalkivayut vseh, krome teh, kto privyk
sosredotochivat'sya na konechnoj celi. A mozhet byt', delo vsego lish' v tom, chto
komp'yutery i programmisty molody, a molodosti svojstven optimizm. Kak by to
ni bylo, v rezul'tate odno: "Na etot raz ona tochno pojdet!" Ili : "YA tol'ko
chto vyyavil poslednyuyu oshibku!"
Itak, v osnove planirovaniya razrabotki programm lezhit lozhnoe dopushchenie,
chto vse budet horosho, t.e. kazhdaya zadacha zajmet stol'ko vremeni, skol'ko
"dolzhna" zanyat'.
Glubokij optimizm programmistov zasluzhivaet bolee ser'eznogo izucheniya.
Doroti Sejers (Dorothy Cayers) v svoej prevoshodnoj knige "Razum tvorca"
("The Mind of the Maker") vydelyaet v tvorcheskoj deyatel'nosti tri stadii:
zamysel, realizaciyu, vzaimodejstvie. Sootvetstvenno, kniga, komp'yuter ili
programma snachala voznikayut kak ideal'noe postroenie, sushchestvuyushchee ne vo
vremeni i prostranstve, a lish' v mozgu svoego sozdatelya. Realizaciya zhe vo
vremeni i prostranstve proishodit s pomoshch'yu pera, chernil, bumagi, libo -
provodov, kremniya i ferrita. Tvorenie budet zaversheno, kogda kto-libo
prochtet knigu, vospol'zuetsya komp'yuterom ili zapustit programmu, tem samym
vstupiv vo vzaimodejstvie s razumom ih sozdatelya.
|to opisanie ispol'zuemoe Sejers dlya osveshcheniya ne tol'ko tvorcheskoj
deyatel'nosti cheloveka, no i hristianskogo dogmata Troicy, pomozhet nam v
nashej tekushchej zadache. Dlya cheloveka, kotoryj chto-to sozdaet, nepolnota i
protivorechivost' idej vyyavlyayutsya tol'ko pri ih realizacii. Poetomu dlya
teoretika izlozhenie na bumage, eksperimentirovanie, izgotovlenie yavlyaetsya
neot®emlemymi chastyami tvorcheskogo processa.
Vo mnogih vidah tvorcheskoj deyatel'nost' material s trudom poddaetsya
obrabotke. Derevo koletsya, kraski pachkayutsya, elektricheskie cepi "zvenyat".
|ti fizicheskie ogranicheniya suzhayut krug idej, kotorye mogut byt' vyrazheny, a
takzhe sozdayut neozhidannye trudnosti pri realizacii.
Realizaciya, takim obrazom, trebuet sil i vremeni kak iz-za fizicheskogo
materiala, tak i vvidu neadekvatnosti osnovopolagayushchih idej. Bol'shuyu chast'
zatrudnenij pri realizacii my sklonny ob®yasnyat' nedostatkami fizicheskogo
materiala, poskol'ku on "chuzhd" nam - v otlichie ot idej, kotorymi my
gordimsya.
Pri sozdanii zhe programm my imeem delo s chrezmerno podatlivym
materialom. Programmist osushchestvlyaet svoi postroeniya na osnove chistogo
myshleniya - ponyatij i ochen' gibkih ih predstavlenij. Poskol'ku material stol'
podatliv, my ne ozhidaem trudnostej pri realizacii, otsyuda i nash glubokij
optimizm. Iz-za oshibochnosti nashih idej voznikayut oshibki v programmah.
Sledovatel'no, nash optimizm ne imeet opravdaniya.
Dlya otdel'noj zadachi dopushchenie, chto vse bude horosho, okazyvaet na
grafik rabot veroyatnostnyj effekt. Vse mozhet dejstvitel'no idti po planu,
poskol'ku est' nekotoroe raspredelenie veroyatnosti dlya vozmozhnoj zaderzhki i
sushchestvuet konechnaya veroyatnost' togo, chto zaderzhki ne budet. Odnako bol'shoj
programmnyj proekt sostoit iz mnozhestva zadach, chast' iz kotoryh mozhet byt'
nachata tol'ko posle okonchaniya drugih. Veroyatnost' togo, chto vse zadachi budut
zaversheny v srok, beskonechno mala. CHeloveko-mesyac Vtoraya oshibka rassuzhdenij
zaklyuchena v samoj edinice izmereniya, ispol'zuemoj pri ocenivanii i
planirovanii: cheloveko-mesyac. Stoimost' dejstvitel'no izmeryaetsya kak
proizvedeniya chisla zanyatyh na kolichestvo zatrachennyh mesyacev. No ne
dostignutyj rezul'tat. Poetomu ispol'zovanie cheloveko-mesyaca kak edinicy
izmereniya ob®ema raboty yavlyaetsya opasnym zabluzhdeniem.
Ris. 2.1 Zavisimost' vremeni ot chisla zanyatyh - polnost'yu razdelimaya
zadacha
CHislo zanyatyh i chislo mesyacev yavlyayutsya vzaimozamenyaemymi velichinami
lish' togda, kogda zadachu mozhno raspredelit' sredi ryada rabotnikov, kotorye
ne imeyut mezhdu soboj vzaimosvyazi (ris. 2.1). |to verno, kogda zhnut pshenicu
ili sobirayut hlopok, no v sistemnom programmirovanii eto daleko ne tak.
Ris. 2.2 Zavisimost' vremeni ot chisla zanyatyh - nerazdelimaya zadacha
Esli zadachu nel'zya razbit' na chasti, poskol'ku sushchestvuyut ogranicheniya
na posledovatel'nost' vypolneniya etapov, to uvelichenie zatrat ne okazyvaet
vliyaniya na grafik (ris. 2.2). CHtoby rodit' rebenka trebuetsya devyat' mesyacev
nezavisimo ot togo, skol'ko zhenshchin privlecheno k resheniyu dannoj zadachi.
Mnogie zadachi programmirovaniya otnosyatsya k etomu tipu, poskol'ku otladka po
svoej suti nosit posledovatel'nyj harakter.
Ris. 2.3 Zavisimost' vremeni ot chisla zanyatyh - razdelimaya zadacha,
trebuyushchaya obmena dannymi
Dlya zadach, kotorye mogut byt' razbity na chasti, no trebuyut obmena
dannymi mezhdu podzadachami, zatraty na obmen dannymi dolzhny byt' dobavleny k
obshchemu ob®emu neobhodimyh rabot. Poetomu dostizhimyj nailuchshij rezul'tat
okazyvaetsya neskol'ko huzhe, chem prostoe sootvetstvie chisla zanyatyh i
kolichestva mesyacev (ris. 2.3).
Dopolnitel'naya nagruzka sostoit iz dvuh chastej - obucheniya i obmena
dannymi. Kazhdogo rabotnika nuzhno obuchit' tehnologii, celyam proekta, obshchej
strategii i planu raboty. |to obuchenie nel'zya razbit' na chasti, poetomu
dannaya chast' zatrat izmenyaetsya linejno v zavisimosti ot chisla zanyatyh.
Ris. 2.4 Zavisimost' vremeni ot chisla zanyatyh - zadacha so slozhnymi
vzaimosvyazyami
S obmenom dannymi delo obstoit huzhe. Esli vse chasti zadaniya dolzhny byt'
otdel'no skoordinirovany mezhdu soboj, to zatraty vozrastayut kak n(n-2)/2.
Dlya treh rabotnikov trebuetsya vtroe bol'she poparnogo obshcheniya, chem dlya dvuh,
dlya chetyreh - vshestero. Esli pomimo etogo voznikaet neobhodimost' v
soveshchaniyah treh, chetyreh i t.d. rabotnikov dlya sovmestnogo resheniya voprosov,
polozhenie stanovitsya eshche huzhe. Dopolnitel'nye zatraty na obmen dannymi mogut
polnost'yu obescenit' rezul'tat drobleniya ishodnoj zadachi i privesti k
polozheniyu, opisyvaemomu risunkom 2.4.
Poskol'ku sozdanie programmnogo produkta yavlyaetsya po suti sistemnym
proektom - praktikoj slozhnyh vzaimosvyazej, zatraty na obmen dannymi veliki i
bystro nachinayut preobladat' nad sokrashcheniem srokov, dostigaemym v rezul'tate
razbieniya zadachi na bolee melkie podzadachi. V etom sluchae privlechenie
dopolnitel'nyh rabotnikov ne sokrashchaet, a udlinyaet grafik rabot.
Sistemnoe testirovanie
Iz vseh elementov grafika rabot naibol'shemu vozdejstviyu so storony
ogranichenij na posledovatel'nost' vypolneniya dejstvij podverzheny otladka
komponentov i sistemnoe testirovanie. Krome togo, zatraty vremeni zavisyat ot
kolichestva vyyavlennyh oshibok i ot togo, naskol'ko oni "skrytye".
Teoreticheski, oshibok byt' ne dolzhno. Iz-za svoego optimizma my obychno
sklonny nedoocenivat' dejstvitel'noe kolichestvo oshibok. Poetomu v
programmirovanii priderzhivat'sya grafikov rabot obychno trudnee vsego pri
otladke.
V techenie ryada let pri planirovanii razrabotki programmnogo obespecheniya
ya pol'zuyus' sleduyushchim empiricheskim pravilom:
1/3 - planirovanie,
1/6 - napisanie programm,
1/4 - testirovanie komponentov i predvaritel'noe sistemnoe
testirovanie,
1/4 - sistemnoe testirovanie pri nalichii vseh komponentov.
|to pravilo imeet neskol'ko vazhnyh razlichij s obshcheprinyatym
planirovaniem:
1. Na planirovanie otvoditsya bol'she vremeni, chem obychno. I vse ravno
etogo vremeni edva dostatochno dlya razrabotki podrobnyh i nadezhnyh
tehnicheskih uslovij i nedostatochno dlya provedeniya issledovatel'skih rabot
ili poiska novejshih tehnologij.
2. Polovina grafika rabot, otvedennaya na otladku zakonchennogo koda,
znachitel'no vyshe normy.
3. Ta chast', kotoruyu legko ocenit', t.e. napisanie koda, zanimaet vsego
odnu shestuyu obshchego vremeni.
Izuchaya proekty, grafik kotoryh byl sostavlen tradicionnym obrazom, ya
obnaruzhil, chto nemnogie iz nih otvodili po grafiku polovinu vremeni na
otladku, no na praktike v bol'shinstve sluchaev tratili na nee polovinu
fakticheskogo vremeni. Mnogie proekty ukladyvalis' v grafik na vseh etapah,
isklyuchaya sistemnoe testirovanie.2
Osobenno katastroficheskie posledstviya mozhet imet' nedostatok vremeni
dlya sistemnogo testirovaniya. Poskol'ku zaderzhka proishodit v konechnoj chasti
grafika, nikto ne podozrevaet o tom, chto grafik nahoditsya pod ugrozoj sryva
vplot' do dnya sdachi produkta. Plohie vesti, poluchennye pozdno i bez
preduprezhdeniya, obeskurazhivayut klientov i menedzherov.
Bolee togo, zaderzhka na etom etape imeet osobenno tyazhelye material'nye
i psihologicheskie posledstviya. Proekt osushchestvlyaetsya pri polnoj
ukomplektovannosti rabotnikami i maksimal'nyh finansovyh izderzhkah. CHto
vazhnee, programmnoe obespechenie dolzhno obespechit' podderzhku drugoj delovoj
aktivnosti (postavki komp'yuterov, zapuska novyh proizvodstvennyh moshchnostej i
t.p.), i svyazannye s zaderzhkoj vtorichnye izderzhki ochen' vysoki. Na praktike
eti vtorichnye izderzhki mogut byt' vyshe, chem vse prochie. Poetomu ochen' vazhno
v iznachal'nom grafike rabot otvesti dostatochno vremeni dlya sistemnogo
testirovaniya.
Robost' v ocenkah
Dlya programmista, kak i dlya povara, davlenie so storony hozyaina mozhet
opredelyat' zaplanirovannyj srok zaversheniya zadachi, no ne mozhet opredelyat'
vremya ee fakticheskogo zaversheniya. Omlet, obeshchannyj cherez dve minuty, mozhet
uspeshno zharit'sya, no esli cherez dve minuty on ne gotov, to u klienta est'
dve vozmozhnosti: zhdat' eshche ili s®est' ego syrym. Tot zhe vybor vstaet i pered
zakazchikom programmnogo obespecheniya.
U povara est' eshche odna vozmozhnost': dobavit' zharu. V rezul'tate omlet
chasto okazyvaetsya beznadezhno isporchennym: gorelym s odnogo kraya i syrym - s
drugogo.
YA ne dumayu, chto u menedzherov programmnyh produktov men'she hrabrosti ili
tverdosti, chem u povarov ili drugih menedzherov v inzhenernyh oblastyah. No
lipovye grafiki, nacelennye na zhelatel'nuyu hozyainu datu, vstrechayutsya zdes'
znachitel'no chashche, chem v lyubyh drugih inzhenernyh oblastyah. Ochen' tyazhelo,
riskuya poteryat' rabochee mesto, s energiej i lyubeznost'yu otstaivat' srok,
kotoryj opredelen bez primeneniya kakih-libo kolichestvennyh metodov pri
nedostatke dannyh i podkreplen, v osnovnom, intuiciej menedzhera.
Ochevidno, neobhodimo sdelat' dve veshchi. My dolzhny poluchit' i sdelat'
obshchedostupnymi chislennye dannye, harakterizuyushchie proizvoditel'nost', chastotu
programmnyh oshibok, metody ocenki i t.d. Vsya otrasl' mozhet tol'ko vyigrat'
ot opublikovaniya takih dannyh.
Poka metody ocenivaniya ne poluchat bolee prochnoj osnovy, menedzheram
ostaetsya tol'ko muzhat'sya i zashchishchat' svoi prognozy, utverzhdaya, chto polagat'sya
na ih slabuyu intuiciyu vse zhe luchshe, chem osnovyvat'sya na odnih zhelaniyah.
Dejstviya pri sryve grafika
CHto delayut, kogda vazhnyj programmnyj proekt nachinaet otstavat' ot
grafika? Estestvenno, dobavlyayut lyudej. Kak pokazyvayut risunki 2.1-2.4, eto
ne vsegda pomogaet.
Rassmotrim primer.3 Predpolozhim, chto trudoemkost' zadachi ocenivaetsya v
12 cheloveko-mesyacev, i tri cheloveka dolzhny vypolnit' ee za 4 mesyaca, prichem
v konce kazhdogo mesyaca imeyutsya chetyre kontrol'nye tochki A, B, C i D, v
kotoryh mozhno proizvesti izmereniya (ris. 2.5).
Ris. 2.5
Predpolozhim teper', chto pervaya kontrol'naya tochka byla dostignuta lish'
po istechenii dvuh mesyacev. Kakie al'ternativy imeyutsya u menedzhera?
1. Dopustim, chto neobhodimo soblyusti srok vypolneniya zadachi, i oshibochno
ocenena byla tol'ko pervaya chast' zadachi, t.e. risunok 2.6 verno otrazhaet
polozhenie. Znachit, ostaetsya 9 cheloveko-mesyacev trudozatrat i dva mesyaca,
poetomu ponadobitsya 4½ cheloveka, i k troim imeyushchimsya nuzhno dobavit' eshche
dvoih.
Ris. 2.6
2. Dopustim, chto neobhodimo soblyusti srok vypolneniya zadachi, i
odinakovo zanizhena byla vsya ocenka , t.e. polozhenie sootvetstvuet risunku
2.7. Znachit, ostaetsya 18 cheloveko-mesyacev trudozatrat i dva mesyaca, poetomu
ponadobitsya 9 chelovek. K troim imeyushchimsya nuzhno dobavit' eshche shesteryh.
Ris. 2.7
3. Izmenit' grafik. Mne nravitsya zamechanie, sdelannoe P. Faggom (P.
Fagg), opytnym inzhenerom po vychislitel'noj tehnike: "Malen'kih zaderzhek ne
byvaet". |to oznachaet, chto v novom grafike dolzhno byt' dostatochno vremeni,
chtoby rabota byla ispolnena tshchatel'no i polnost'yu, i ne prishlos' by vnov'
peredelyvat' grafik.
4. Sokratit' zadachu. Na praktike etim vsegda i konchaetsya, kogda komanda
obnaruzhivaet, chto ne ukladyvaetsya v grafik. Kogda ochen' vysoki vtorichnye
izderzhki, eto edinstvennoe, chto mozhno sdelat'. Menedzheru predostavlyaetsya
vozmozhnost' oficial'no i akkuratno sokratit' zadachu, izmenit' grafik, libo
nablyudat', kak zadacha molcha urezaetsya pri pospeshnom izmenenii proekta i
nepolnom testirovanii.
V pervyh dvuh sluchayah nastaivat' na tom, chtoby zadacha v neizmennom vide
byla vypolnena za chetyre mesyaca, chrevato katastrofoj. Rassmotrim, k primeru,
vosstanovitel'nyj effekt pervoj al'ternativy (ris. 2.8). Dvoe novyh
rabotnikov, kakimi by znayushchimi oni ni byli, i kak by bystro ne udalos' ih
najti, dolzhny izuchit' zadachu s pomoshch'yu odnogo iz opytnyh razrabotchikov. Esli
dlya etogo potrebuetsya mesyac, to 3 cheloveko-mesyaca budut potracheny na rabotu,
kotoraya ne uchityvaetsya v ishodnoj ocenke. Krome togo, zadacha, razbitaya
pervonachal'no na tri potoka, dolzhna byt' teper' perekroena na pyat' chastej.
Poetomu chast' uzhe sdelannoj raboty budet poteryana, a sistemnoe testirovanie
nuzhno budet prodlit'. V rezul'tate v konce tret'ego mesyaca ostanetsya raboty
sushchestvenno bol'she, chem na 7 cheloveko-mesyacev, a v rasporyazhenii budet 5
podgotovlennyh chelovek i odin mesyac. Soglasno risunku 2.8 produkt budet
zapazdyvat' tak zhe, kak esli by ni odnogo cheloveka ne bylo dobavleno (sm.
ris. 2.6).
Esli rasschityvat' upravit'sya za chetyre mesyaca s uchetom tol'ko vremeni
obucheniya, no ne pereraspredeleniya zadach i dopolnitel'nogo sistemnogo
testirovaniya, to v konce vtorogo mesyaca potrebuetsya dobavit' 4, a ne 2
cheloveka. CHtoby kompensirovat' vozdejstvie pereraspredeleniya zadach i
sistemnogo testirovaniya, potrebuyutsya eshche novye lyudi. Teper', odnako, komanda
sostoit ne iz 3, a, po krajnej mere, 7 chelovek, i takie voprosy, kak
organizaciya komandy i raspredelenie zadach priobretayut novyj kachestvennyj
uroven'.
Obratite vnimanie, chto k koncu tret'ego mesyaca delo vyglyadit ves'ma
mrachno. Nesmotrya na vse administrativnye usiliya kontrol'naya tochka,
namechennaya na 1 marta, ne dostignuta. Voznikaet sil'nyj soblazn povtorit'
cikl, dobaviv eshche lyudej. |to bezumnoe reshenie.
Ris. 2.8
V predshestvuyushchih