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