rassuzhdeniyah predpolagalos', chto tol'ko pervaya
kontrol'naya tochka byla neverno rasschitana. Esli 1 marta sdelat'
konservativnoe predpolozhenie, chto ves' grafik byl izlishne optimistichen, kak
otrazheno na risunke 2.7, trebuetsya dobavit' 6 chelovek k ishodnoj zadache.
Raschet vozdejstviya obucheniya, pereraspredeleniya zadach i sistemnogo
testirovaniya predostavlyaetsya sdelat' chitatelyu v kachestve uprazhneniya. Net
somnenij, chto pri popytke ulozhit'sya v srok v itoge poluchitsya hudshij produkt,
chem pri izmenenii grafika i sohranenii pervonachal'nyh troih chelovek bez
usileniya.
Krajne uproshchaya, sformuliruem Zakon Bruksa:
Esli proekt ne ukladyvaetsya v sroki, to dobavlenie rabochej sily
zaderzhit ego eshche bol'she.
|to razvenchivaet mif o cheloveko-mesyace. Prodolzhitel'nost'
osushchestvleniya proekta zavisit ot ogranichenij, nakladyvaemyh
posledovatel'nost'yu rabot. Maksimal'noe kolichestvo razrabotchikov zavisit ot
chisla nezavisimyh podzadach. |ti dve velichiny pozvolyayut poluchit' grafik
rabot, v kotorom budet men'she zanyatyh razrabotchikov i bol'she mesyacev.
(Edinstvennaya opasnost' zaklyuchaetsya v vozmozhnom ustarevanii produkta.)
Nel'zya, odnako, sostavit' rabotayushchie grafiki, v kotoryh zanyato bol'she lyudej
i trebuetsya men'she vremeni. Programmnye proekty chashche provalivayutsya iz-za
nehvatki kalendarnogo vremeni, chem po vsem ostal'nym prichinam vmeste vzyatym.
Glava 3. Opracionnaya brigada
|ti issledovaniya vyyavili bol'shie
individual'nye razlichiya v proizvoditel'nosti mezhdu luchshimi i hudshimi
rabotnikami, chasto na poryadok velichin.
SAKMAN, |RIKSON I GRANT1
Na vstrechah komp'yuternyh specialistov mozhno postoyanno slyshat'
utverzhdeniya molodyh menedzherov programmnyh proektov, chto im predpochtitel'nej
nebol'shie deyatel'nye komandy pervoklassnyh specialistov, chem proekty, v
kotoryh uchastvuyut sotni programmistov, chto podrazumevaet ih srednij uroven'.
I vsem nam tozhe.
Takoe naivnoe predstavlenie al'ternativ uhodit ot resheniya slozhnoj
zadachi - kak sozdavat' bol'shie sistemy v razumnye sroki? Rassmotrim etot
vopros bolee podrobno so vseh storon.
Problema
Menedzhery programmnyh proektov davno ponyali, chto horoshie i plohie
programmisty ochen' sil'no razlichayutsya mezhdu soboj po proizvoditel'nosti.
Odnako real'no izmerennye velichiny porazitel'ny. V odnom iz issledovanij
Sakman (Sackman), |rikson (Erikson) i Grant (Grant) izmeryali
proizvoditel'nost' truda v gruppe opytnyh programmistov. Vnutri odnoj lish'
etoj gruppy sootnoshenie mezhdu luchshimi i hudshimi rezul'tatami sostavilo
primerno 10:1 po proizvoditel'nosti truda i 5:1 po skorosti raboty programm
i trebuemoj dlya nih pamyati! Koroche, programmist, zarabatyvayushchij 20 tysyach
dollarov v god, mozhet byt' v desyat' raz produktivnee programmista,
zarabatyvayushchego 10 tysyach dollarov. Pravda, vozmozhno i obratnoe. Poluchennye
dannye ne vyyavili kakoj-libo korrelyacii mezhdu stazhem raboty i
proizvoditel'nost'yu. (YA ne uveren, chto eto vsegda spravedlivo.)
Vyshe ya dokazal, chto samo chislo razrabotchikov, dejstviya kotoryh nuzhno
soglasovyvat', okazyvaet vliyanie na stoimost' proekta, poskol'ku
znachitel'naya chast' izderzhek vyzvana neobhodimost'yu obshcheniya i ustraneniya
otricatel'nyh posledstvij razobshchennosti (sistemnaya otladka). |to takzhe
navodit na mysl', chto zhelatel'no razrabatyvat' sistemy vozmozhno men'shim
chislom lyudej. Dejstvitel'no, opyt razrabotki bol'shih programmnyh sistem, kak
pravilo, pokazyvaet, chto podhod s pozicij gruboj sily vlechet udorozhanie,
zamedlennost', neeffektivnost', a sozdavaemye v rezul'tate sistemy ne
yavlyayutsya konceptual'no celostnymi. Spisok, illyustriruyushchij eto, beskonechen:
OS/360, Exec 8, Scop 6600, Multics, TSS, SAGE i drugie.
Vyvod prost: esli nad proektom rabotayut 200 chelovek, vklyuchaya
menedzherov, yavlyayushchihsya naibolee znayushchimi i opytnymi programmistami, uvol'te
175 bojcov, i pust' menedzhery snova zajmutsya programmirovaniem.
Davajte rassmotrim eto reshenie. S odnoj storony, emu ne udaetsya
priblizit'sya k idealu nebol'shoj aktivnoj komandy, v kotoroj, po obshchemu
priznaniyu, dolzhno byt' ne bolee 10 chelovek. Poetomu razmer brigady
predpolagaet nalichie kak minimum dvuh urovnej upravleniya, ili okolo pyati
menedzherov. Potrebuyutsya dopolnitel'ny finansovye rashody, sotrudniki, mesto
dlya raboty, sekretari i operatory mashin.
S drugoj storony, ishodnaya komanda iz 200 chelovek imela chislennost',
nedostatochnuyu dlya sozdaniya dejstvitel'no krupnyh sistem metodom gruboj sily.
Rassmotrim, k primeru, OS/360. Odno vremya v ee sozdanii bylo zanyato bol'she
1000 chelovek - programmistov, sostavitelej dokumentacii, operatorov,
klerkov, sekretarej, menedzherov, vspomogatel'nyh grupp i t.d. S 1963 po 1966
god na ee proektirovanie, realizaciyu i napisanie dokumentacii bylo
zatracheno, veroyatno, okolo 5000 cheloveko-let. Esli by strogo soblyudalas'
proporciya mezhdu kolichestvom zanyatyh i prodolzhitel'nost'yu rabot, nashej
predpolagaemoj komande iz dvuhsot chelovek potrebovalos' by 25 let, chtoby
dovesti produkt do segodnyashnego urovnya!
V etom i sostoit iz®yan idei malen'koj aktivnoj komandy: dlya sozdaniya
po- nastoyashchemu krupnyh sistem ej potrebuetsya slishkom mnogo vremeni.
Posmotrim, kak razrabotka OS/360 osushchestvlyalas' by malen'koj aktivnoj
komandoj, dopustim, iz 10 chelovek. Polozhim, chto oni v sem' raz bolee
produktivny srednih programmistov (chto daleko ot istiny). Dopustim, chto
umen'shenie ob®ema obshcheniya blagodarya malochislennosti komandy pozvolilo eshche v
sem' raz povysit' proizvoditel'nost'. Dopustim, chto na protyazhenii vsego
proekta rabotaet odna i ta zhe komanda. Takim obrazom, 5000/(10*7*7)=10, t.e.
rabotu v 5000 cheloveko-let oni vypolnyat za 10 let. Budet li produkt
predstavlyat' interes cherez 10 let posle nachala razrabotki ili ustareet
blagodarya stremitel'nomu razvitiyu programmnyh tehnologij?
Dilemma predstavlyaetsya zhestokoj. Dlya effektivnosti i konceptual'noj
celostnosti predpochtitel'nee, chtoby proektirovanie i sozdanie sistemy
osushchestvili neskol'ko svetlyh golov. Odnako dlya bol'shih sistem zhelatel'no
postavit' pod ruzh'e znachitel'nyj kontingent, chtoby produkt mog uvidet' svet
vovremya. Kak mozhno primirit' eti dva zhelaniya?
Predlozhenie Millza
Predlozhenie Harlana Millza daet svezhee i tvorcheskoe reshenie2,3. Millz
predlozhil, chtoby na kazhdom uchastke raboty byla komanda razrabotchikov,
organizovannaya napodobie brigady hirurgov, a ne myasnikov. Imeetsya v vidu,
chto ne kazhdyj uchastnik gruppy budet vrezat'sya v zadachu, no rezat' budet
odin, a ostal'nye okazyvat' emu vsevozmozhnuyu podderzhku, povyshaya ego
proizvoditel'nost' i plodotvornost'.
Pri nekotorom razmyshlenii yasno, chto eta ideya privedet k zhelaemomu, esli
ee udastsya osushchestvit'. Lish' neskol'ko golov zanyato proektirovaniem i
razrabotkoj, i v to zhe vremya mnogo rabotnikov nahoditsya na podhvate. Budet
li takaya organizaciya rabotat'? Kto igraet rol' anesteziologov i operacionnyh
sester v gruppe programmistov, a kak osushchestvlyaetsya razdelenie truda? CHtoby
narisovat' kartinu raboty takoj komandy s vklyucheniem vseh myslimyh vidov
podderzhki, ya pozvolyu sebe vol'noe obrashchenie k metaforam.
Hirurg. Millz nazyvaet ego glavnym programmistom. On lichno opredelyaet
tehnicheskie usloviya na funkcional'nost' i ekspluatacionnye harakteristiki
programmy, proektiruet ee, pishet kod, otlazhivaet ego i sostavlyaet
dokumentaciyu. On pishet na yazyke strukturnogo programmirovaniya, takom kak
PL/I, i imeet pryamoj dostup k komp'yuternoj sisteme, na kotoroj ne tol'ko
proizvoditsya otladka, no i sohranyayutsya razlichnye versii ego programm s
vozmozhnost'yu legkoj modifikacii fajlov, a takzhe osushchestvlyaet redaktirovanie
dokumentacii. On dolzhen obladat' bol'shim talantom, stazhem raboty svyshe
desyati let i sushchestvennymi znaniyami v sistemnyh i prikladnyh oblastyah, budto
prikladnaya matematika, obrabotka delovyh dannyh ili chto-libo inoe.
Vtoroj pilot. |to vtoroe "ya" hirurga, mozhet vypolnyat' lyubuyu ego rabotu,
no menee opyten. Ego glavnaya zadacha - uchastvovat' v proektirovanii, gde on
dolzhen dumat', obsuzhdat' i ocenivat'. Hirurg ispytyvaet na nem svoi idei, no
ne svyazan ego predlozheniyami. CHasto vtoroj pilot predstavlyaet svoyu brigadu
pri obsuzhdenii s drugimi gruppami funkcij i interfejsa. On horosho znaet ves'
kod programmy. On issleduet vozmozhnosti al'ternativnyh strategij
programmirovaniya. On, ochevidno, podstrahovyvaet na sluchaj kakoj-libo bedy s
hirurgom. On mozhet dazhe zanimat'sya napisaniem koda, no ne neset
otvetstvennosti za kakuyu-libo ego chast'.
Administrator. Hirurg - nachal'nik, i emu prinadlezhit poslednee slovo v
otnoshenii personala, pribavok k zhalovan'yu, pomeshchenij i t.p., no na eti dela
on dolzhen tratit' kak mozhno men'she vremeni. Poetomu emu neobhodim
professional'nyj administrator, zabotoj kotorogo budut den'gi, lyudi,
pomeshcheniya, mashiny, i kotoryj budet kontaktirovat' s administrativnym
mehanizmom organizacii v celom. Bejker schitaet, chto na polnyj rabochij den'
administrator dolzhen privlekat'sya lish' v sluchae, kogda otnosheniya s
zakazchikom opredelyayut sushchestvennye yuridicheskie, kontraktnye, otchetnye ili
finansovye trebovaniya k proektu. V ostal'nyh sluchayah odin administrator
mozhet obsluzhivat' dve komandy.
Redaktor. Obyazannost' razrabotki dokumentacii lezhit na hirurge. CHtoby
ona byla maksimal'no ponyatna, on dolzhen pisat' ee sam. |to otnositsya k
opisaniyam, prednaznachennyh kak dlya vneshnego, tak i dlya vnutrennego
ispol'zovaniya. Zadacha redaktora - vzyat' sozdannyj hirurgom chernovik ili
zapis' pod diktovku, kriticheski pererabotat', snabdit' ssylkami i
bibliografiej, prorabotat' neskol'ko versij i obespechit' publikaciyu.
Dva sekretarya. Administratoru i redaktoru nuzhny sekretari. Sekretar'
administratora obrabatyvaet perepisku, svyazannuyu s proektom, a takzhe
dokumenty, ne otnosyashchiesya k produktu.
Deloproizvoditel'. On otvechaet za registraciyu vseh tehnicheskih dannyh
brigady v biblioteke programmnogo produkta. On imeet sekretarskuyu podgotovku
i neset otvetstvennost' za vse fajly, prednaznachennye kak dlya mashiny, tak i
dlya chteniya.
Vse dannye dlya vvoda v komp'yuter postupayut deloproizvoditelyu, kotoryj
registriruet ih ili vvodit pri neobhodimosti s klaviatury. Listingi vyvoda
takzhe postupayut k nemu dlya registracii i hraneniya. Rezul'taty samyh svezhih
progonov vseh modelej zanosyatsya v zhurnal rezul'tatov, a predydushchie hranyatsya
v hronologicheskom poryadke v arhive.
ZHiznenno vazhnym dlya koncepcii Millza yavlyaetsya prevrashchenie
programmirovaniya "iz lichnogo iskusstva v obshchestvennuyu deyatel'nost'" putem
predostavleniya rezul'tatov vseh progonov vsem chlenam komandy i opredeleniya
vseh programm i dannyh, kak obshchej sobstvennosti komandy, a ne ch'ej-to
lichnoj.
Osobye obyazannosti, vozlagaemye na deloproizvoditelya, osvobozhdayut
aktivnyh programmistov ot rutinnyh rabot, sistematiziruyut i obespechivayut
nadlezhashchee vypolnenie teh rutinnyh operacij, kotorymi chasto prenebregayut, i
priblizhayut glavnoe, dlya chego rabotaet komanda - ee programmnyj produkt.
YAsno, chto predlozhennaya koncepciya predpolagaet progon paketnyh zadanij. Esli
ispol'zuyutsya interaktivnye terminaly, v osobennosti bez vozmozhnosti pechati,
funkcii deloproizvoditelya ne sokrashchayutsya, no preterpevayut izmeneniya. V etom
sluchae on vedet uchet vseh izmenenij, vnosimyh v obshchij ekzemplyar programmy iz
lichnyh kopij, osushchestvlyaet progon vseh paketnyh zadanij i so svoego
terminala osushchestvlyaet kontrol' celostnosti i rabotosposobnosti
uvelichivayushchegosya v razmerah produkta.
Instrumental'shchik. Blagodarya vozmozhnosti v lyuboe vremya redaktirovat'
fajly i teksty i pol'zovat'sya sluzhboj interaktivnoj otladki komande redko
trebuetsya svoya vychislitel'naya mashina i gruppa obsluzhivayushchego personala. No
dostup k etim sluzhbam dolzhen osushchestvlyat'sya s bezuslovnoj bystrotoj i
nadezhnost'yu. Tol'ko hirurg mozhet reshat', udovletvoryaet li ego rabota
imeyushchihsya sluzhb. Emu neobhodim instrumental'shchik, otvetstvennyj za
obespechenie dostupa k osnovnym sluzhbam, a takzhe za sozdanie, podderzhku i
obnovlenie special'nyh instrumentov - v osnovnom, interaktivnyh sluzhb,
kotorye trebuyutsya ego komande. U kazhdoj komandy dolzhen byt' svoj
instrumental'shchik, nezavisimo ot kachestva i nadezhnosti imeyushchihsya
centralizovannyh sluzhb, i ego delo obespechit' vsem neobhodimym ili
zhelatel'nym instrumentom svoego hirurga, a ne drugie komandy.
Instrumental'shchik obychno pishet specializirovannye utility, katalogizirovannye
procedury, makrobiblioteki.
Otladchik. Hirurgu potrebuetsya nabor podhodyashchih kontrol'nyh primerov dlya
otladki napisannyh im fragmentov koda, a zatem i vsej programmy. Otladchik
yavlyaetsya, takim obrazom, kak protivnikom, razrabatyvayushchim kontrol'nye
primery dlya sistemnogo testirovaniya, ishodya iz funkcional'nyh specifikacij,
tak i pomoshchnikom, gotovyashchim dannye dlya ezhednevnoj otladki. On takzhe obychno
planiruet posledovatel'nost' testirovaniya i sozdanie sredy dlya testirovaniya
komponentov.
YAzykoved. Vskore posle poyavleniya Algol obnaruzhilos', chto v bol'shinstve
vychislitel'nyh centrov est' odin-dva cheloveka, porazhayushchih svoim vladeniem
tonkostyami yazyka programmirovaniya. |ti eksperty okazyvayutsya ochen' poleznymi,
i s nimi chasto sovetuyutsya. Zdes' trebuetsya inoj talant, chem u hirurga,
kotoryj yavlyaetsya preimushchestvenno sistemnym proektirovshchikom i myslit
predstavleniyami. YAzykoved mozhet najti effektivnye sposoby ispol'zovaniya
yazyka dlya resheniya slozhnyh, neyasnyh i hitroumnyh zadach. Inogda emu trebuetsya
provesti nebol'shoe issledovanie (dva-tri dnya) dlya nahozhdeniya udachnoj
tehnologii. Odin yazykoved mozhet rabotat' s dvumya ili tremya hirurgami.
Vot takim obrazom 10 chelovek mogut vypolnyat' horosho differencirovannye
i specializirovannye roli v komande programmistov, organizovannoj po obrazcu
operacionnoj brigady.
Kak eto rabotaet
Sozdannaya nami brigada mozhet dostich' zhelaemoj celi neskol'kimi
sposobami. Nad zadachej trudyatsya desyat' chelovek, sem' iz kotoryh
professionaly, no sistema yavlyaetsya produktom odnogo uma, po krajnej mere
dvuh, dejstvuyushchih uno animo (kak odno celoe).
Obratite osoboe vnimanie na razlichie mezhdu gruppoj iz dvuh
programmistov s obychnoj organizaciej i gruppoj tipa "hirurg - vtoroj pilot".
Vo-pervyh, v obychnoj brigade rabotniki delyat zadachu mezhdu soboj, i kazhdyj iz
nih otvechaet za zamysel i voploshchenie nekotoroj chasti. V operacionnoj brigade
i hirurg, i vtoroj pilot nahodyatsya v vedenii vsego proekta i vsego
programmnogo koda. |to sberigaet zatraty na raspredelenie pamyati, dostup k
diskam i t.p., a takzhe obespechivaet konceptual'nuyu celostnost' produkta.
Vo-vtoryh, v obychnoj brigade partnery ravny, i neizbezhnye raznoglasiya
dolzhny razreshat'sya putem peregovorov ili kompromissov. Poskol'ku zadacha i
resursy razdeleny, raznoglasiya otnosyatsya k obshchej strategii i interfejsam, no
k nim primeshivaetsya i protivopolozhnost' interesov, naprimer, ch'yu pamyat'
ispol'zovat' dlya bufera. V hirurgicheskoj brigade razlichij interesov net, a
raznoglasiya edinolichno reshayutsya hirurgom. |ti dva razlichiya - otsutstvie
razbieniya zadachi i otnoshenie podchinennosti - pozvolyayut hirurgicheskoj brigade
dejstvovat' uno animo.
Krome togo, reshayushchee vliyanie na effektivnost' okazyvaet specializaciya
funkcij ostal'nyh chlenov brigady, tak kak v rezul'tate osushchestvima
znachitel'no bolee prostaya shema kontaktov mezhdu sotrudnikami, kotoraya
pokazana na risunke 3.1.
V stat'e Bejkera3 soobshchaetsya ob odnoj proverke takoj koncepcii brigady,
provedennoj v ogranichennom masshtabe. Kak i predskazyvalos', rezul'taty
okazalis' velikolepnymi.
Masshtabirovanie
Do sih por vse bylo horosho. Problema, odnako, sostoit v tom, kak
sozdavat' produkty, na kotorye sejchas uhodit ne 20 ili 30, a 5000
cheloveko-let. Brigada iz 10 chelovek mozhet byt' effektivna vne zavisimosti ot
svoej organizacii, esli zadacha celikom nahoditsya v ee kompetencii. No kak
ispol'zovat' ideyu operacionnoj brigady v zadachah, dlya vypolneniya kotoryh
privlekayutsya sotni lyudej?
Uspeh pri masshtabirovanii obuslovlivaetsya korennym uluchsheniem
konceptual'nogo edinstva kazhdogo uchastka, ved' kolichestvo proektirovshchikov
umen'shilos' v sem' raz. Poetomu mozhno privlech' k rabote nad zadachej 200
chelovek, i neobhodimost' koordinacii umstvennyh usilij potrebuetsya vsego dlya
20 iz nih - hirurgov.
Ris. 3.1 Shema kontaktov mezhdu sotrudnikami v brigade iz 10 chelovek
Odnako zadacha koordinacii trebuet ispol'zovaniya osobyh metodov,
obsuzhdaemyh v posleduyushchih glavah. Poka dostatochno skazat', chto vsya sistema v
celom dolzhna obladat' konceptual'nym edinstvom, i neobhodim sistemnyj
arhitektor, chtoby proektirovat' ee celikom, v nishodyashchem napravlenii. Dlya
togo chtoby etoj rabotoj mozhno bylo upravlyat', neobhodimo provesti strogoe
razgranichenie arhitektury i voploshcheniya, i sistemnyj arhitektor dolzhen
dobrosovestno posvyatit' sebya razrabotke arhitektury. Opyt pokazyvaet, chto
takoe raspredelenie rolej i takie metody osushchestvimy i okazyvayutsya ves'ma
rezul'tativnymi.
Glava 4. Aristokratiya, demokratiya i sistemnoe proektirovanie
|tot
velichestvennyj hram yavlyaetsya vydayushchimsya proizvedeniem iskusstva. V
principah, kotorye on izlagaet, net ni suhosti, ni besporyadka...
|to vershina stilya, trud hudozhnikov, kotorye ponyali i vosprinyali vse
dostizheniya svoih predshestvennikov, v sovershenstve vladeya tehnikoj svoego
veka, no pol'zovalis' ej, izbegaya neskromnogo pokaza ili neobosnovannoj
demonstracii masterstva.
Nesomnenno, zamysel obshchego plana zdaniya prinadlezhit dOrbe, i te, kto
ego smenil, priderzhivalis' etogo plana, po krajnej mere, v sushchestvennyh
chertah. |to odna iz prichin udivitel'noj garmonichnosti i edinstva zdaniya.
PUTEVODITELX PO REJMSKOMU SOBORU 1
Konceptual'noe edinstvo
U bol'shinstva evropejskih soborov chasti, postroennye raznymi
pokoleniyami stroitelej, imeyut razlichiya v planirovke i arhitekturnom stile.
Bolee pozdnie stroiteli ispytyvali soblazn "uluchshit'" proekt svoih
predshestvennikov, chtoby otrazit' novye veyaniya mody i svoi lichnye vkusy. V
itoge mirnyj normannskij transept sozdaet konflikt s primykayushchim k nemu
voznosyashchimsya v vys' goticheskim nefom, i rezul'tat stol' zhe sluzhit
voshvaleniyu slavy Gospodnej, skol' i gordyni stroitelej.
Arhitekturnoe edinstvo Rejmskogo sobora nahoditsya v pryamoj
protivopolozhnosti s takim smesheniem stilej. Istochnikom napolnyayushchej zritelya
radosti sluzhat kak cel'nost' konstrukcii, tak i otdel'nye obrazcy
sovershenstva. Kak skazano v putevoditele, cel'nost' byla dostignuta
blagodarya samootrecheniyu vos'mi pokolenij stroitelej sobora, pozhertvovavshih
svoimi ideyami radi chistoty obshchego zamysla. To chto poluchilos' v rezul'tate,
sluzhit voshvaleniyu ne tol'ko slavy Gospodnej, no i Ego mogushchestva,
sposobnogo spasti greshnyh lyudej ot ih gordyni.
Hotya na sozdanie programmnyh sistem ne uhodyat veka, v bol'shinstve svoem
oni demonstriruyut men'shuyu soglasovannost' koncepcij, chem v lyubom sobore.
Obychno eto proishodit ne ottogo, chto glavnye proektirovshchiki smenyayut drug
druga, a potomu, chto proekt rasshcheplyaetsya na ryad zadach, vypolnyaemyh raznymi
razrabotchikami.
YA ubezhden, chto konceptual'naya celostnost' yavlyaetsya vazhnejshej
harakteristikoj sistemnogo proekta. Luchshe ubrat' iz sistemy otdel'nye
neobychnye vozmozhnosti i usovershenstvovaniya i realizovat' edinyj nabor
konstruktivnyh idej, chem osnastit' ee mnogimi horoshimi, no
nevzaimosvyazannymi i nesoglasovannymi ideyami. V etoj i dvuh posleduyushchih
glavah my izuchim sledstviya etoj koncepcii dlya proektirovaniya programmnyh
sistem:
- Kak dostich' konceptual'noj celostnosti?
- Ne budet li eto trebovanie prichinoj raskola na elitu,
aristokraticheskij klass arhitektorov - s odnoj storony, i tolpy
plebeev-ispolnitelej, ch'i tvorcheskie talanty i idei podavlyayutsya, - s drugoj?
- Kak uderzhat' arhitektorov ot vitaniya v oblakah i razrabotki
nesushchestvennyh ili chrezmerno dorogih specifikacij?
- Kak dobit'sya togo, chtoby lyubaya meloch' iz sozdannoj arhitektorom
specifikacii doshla do ispolnitelya, byla im pravil'no ponyata i tochno vnedrena
v produkt?
Dostizhenie konceptual'noj celostnosti
Naznachenie sistemy programmirovaniya - oblegchit' ispol'zovanie
komp'yutera. Dlya etogo postavlyayutsya yazyki i razlichnye sredstva, yavlyayushchiesya,
po suti, programmami, vyzyvaemymi i upravlyaemymi vozmozhnostyami yazyka. No eti
sredstva stoyat deneg: ob®em vneshnego opisaniya sistemy programmirovaniya v
desyat'- dvadcat' raz bol'she opisaniya sobstvenno vychislitel'noj sistemy.
Pol'zovatelyu okazyvaetsya znachitel'no proshche zadat' lyubuyu vybrannuyu funkciyu,
no vybor ochen' velik, i nuzhno pomnit' znachitel'no bol'she variantov i
formatov.
Ispol'zovanie oblegchaetsya, tol'ko esli vyigrysh vremeni pri zadanii
funkcii prevyshaet vremya, potrachennoe na obuchenie, zapominanie i poisk
rukovodstv. Sovremennye sistemy programmirovaniya dayut takoj vyigrysh, no
pohozhe, chto v poslednie gody otnoshenie vyigrysha k zatratam umen'shilos' v
rezul'tate dobavleniya vse bolee i bolee slozhnyh funkcij. YA chasto vspominayu,
kak legko bylo ispol'zovat' IBM 650, dazhe bez assemblera ili voobshche
kakih-libo programm.
Poskol'ku cel'yu proektirovaniya yavlyaetsya prostota ispol'zovaniya,
okonchatel'nuyu ocenku proekta sistemy daet dostignutoe otnoshenie
funkcional'nosti k slozhnosti koncepcij. Ni funkcional'nost', ni prostota v
otdel'nosti ne yavlyayutsya priznakami horoshego proekta.
|to obstoyatel'stvo chasto nepravil'no ponimaetsya. Operating System/360
prevoznositsya svoimi sozdatelyami, kak luchshaya iz kogda-libo sozdannyh,
poskol'ku neosporimo, chto v nej bol'she funkcij. Funkcii, a ne prostota
vsegda sluzhili kriteriem prevoshodstva ee sozdatelej. S drugoj storony,
sozdateli sistemy s razdeleniem vremeni dlya PDP-10 prevoznosyat ee
prevoshodstvo vvidu prostoty i nemnogochislennosti polozhennyh v osnovu idej.
Odnako po vsem merkam ee funkcional'nost' nizhe po klassu, chem OS/360. Esli v
kachestve kriteriya opredelena prostota ispol'zovaniya, stanovitsya ochevidnoj
nesbalansirovannost' etih sistem, dostigayushchih celi lish' napolovinu.
Odnako dlya nekotorogo zadannogo urovnya funkcional'nosti luchshej
okazyvaetsya ta sistema, v kotoroj mozhno rabotat' s naibol'shej prostotoj i
neposredstvennost'yu. Prostota - eto eshche ne vse. YAzyk TRAC, sozdannyj Muerom,
i Algol 68 dostigayut prostoty, esli kolichestvenno izmeryat' ee chislom
otdel'nyh elementarnyh ponyatij. Neposredstvennost', odnako, ne harakterna
dlya nih. CHtoby vyrazit' svoi namereniya, chasto trebuetsya sochetat' bazovye
sredstva slozhnym i neozhidannym obrazom. Nedostatochno izuchit' bazovye
elementy i pravila ih kombinirovaniya, nuzhno izuchit' eshche idiomaticheskoe
ispol'zovanie, celuyu oblast' znanij o tom, kak na praktike kombinirovat'
elementy. Prostota i neposredstvennost' proistekayut iz konceptual'noj
celostnosti. Vo vseh chastyah dolzhny najti otrazhenie edinaya filosofiya i
edinoobraznye proporcii mezhdu zhelaemymi celyami. V kazhdoj chasti dolzhny takzhe
ispol'zovat'sya odinakovyj sintaksis i shodnye semanticheskie oboznacheniya.
Takim obrazom, prostota ispol'zovaniya trebuet edinstva proekta,
konceptual'noj celostnosti.
Aristokratiya i demokratiya
Konceptual'naya celostnost', v svoyu ochered', trebuet, chtoby proekt
ishodil ot odnogo razrabotchika, ili nebol'shogo chisla ih, dejstvuyushchih
soglasovanno i v unison.
S drugoj storony, napryazhennost' grafika trebuet privlecheniya bol'shogo
chisla rabotnikov. Est' dva metoda razresheniya etoj dilemmy. Pervyj sostoit v
tshchatel'nom razdelenii truda mezhdu arhitekturoj i ispolneniem. Vtoroj - novyj
sposob organizacii brigad programmistov-ispolnitelej, obsuzhdavshijsya v
predydushchej glave. 31 Otdelenie razrabotki arhitektury ot realizacii yavlyaetsya
effektivnym sposobom dostizheniya konceptual'noj celostnosti pri rabote nad
ochen' bol'shimi proektami. YA lichno byl svidetelem uspeshnogo ego primeneniya
pri sozdanii IBM komp'yutera Stretch i serii produktov System/360. No on ne
srabotal pri razrabotke Operating System/360, poskol'ku nedostatochno
primenyalsya.
Pod arhitekturoj sistemy ya ponimayu polnuyu i podrobnuyu specifikaciyu
interfejsa pol'zovatelya. Dlya komp'yutera eto rukovodstvo po programmirovaniyu.
Dlya kompilyatora eto rukovodstvo po yazyku. Dlya upravlyayushchej programmy eto
rukovodstvo po odnomu ili neskol'kim yazykam, ispol'zuemym dlya vyzova ee
funkcij. Dlya sistemy v celom - eto nabor vseh rukovodstv, k kotorym dolzhen
obrashchat'sya pol'zovatel' pri rabote.
Arhitektor sistemy, kak i arhitektor zdaniya, yavlyaetsya predstavitelem
pol'zovatelya. Ego zadacha - ispol'zovat' vse svoi professional'nye i
tehnicheskie znaniya isklyuchitel'no v interesah pol'zovatelya, a ne prodavca,
izgotovitelya i t.p.2
Arhitektura i razrabotka dolzhny byt' tshchatel'no razdeleny. Kak skazal
Blau (Blaauw), "arhitektura govorit, chto dolzhno proizojti, a razrabotka -
kak sdelat', chtoby eto proizoshlo".3 V kachestve prostogo primera on privodit
chasy, arhitektura kotoryh sostoit iz ciferblata, strelok i zavodnoj golovki.
Rebenok, osvoivshij eto arhitekturu, s odinakovoj legkost'yu mozhet uznat'
vremya i po ruchnym chasam, i po chasam na kolokol'ne. Ispolnenie zhe i ego
realizaciya opisyvayut, chto proishodit vnutri: peredacha usilij i upravlenie
tochnost'yu kazhdym iz mnogih mehanizmov.
K primeru, v System/360 odna i ta zhe arhitektura komp'yutera sovershenno
po- raznomu realizovana primerno v devyati modelyah. Obratnym obrazom, odna i
ta zhe realizaciya potoka dannyh, pamyati i mikroprogramm iz Model 30
ispol'zovalas' v raznoe vremya v chetyreh razlichnyh arhitekturah: System/360,
mul'tipleksnom kanale s podklyucheniem do 224 logicheski nezavisimyh
podkanalov, selektornom kanale i komp'yutere 1401.4
Takie zhe razlichiya mozhno provodit' v otnoshenii sistem programmirovaniya.
Sushchestvuet standart dlya Fortran IV. |to arhitektura, ispol'zuemaya vo mnogih
kompilyatorah. V ramkah etoj arhitektury vozmozhny raznye realizacii: tekst v
operativnoj pamyati ili kompilyator, bystraya ili optimiziruyushchaya,
sintaksicheskaya ili ad hoc. Analogichno, lyuboj yazyk assemblera ili yazyk
upravleniya zadaniyami dopuskaet mnogie realizacii assemblera ili
planirovshchika.
Teper' my mozhem zanyat'sya ves'ma chuvstvitel'nym voprosom bor'by
aristokratii i demokratii. Ne stali li arhitektory novoj aristokratiej,
intellektual'noj elitoj, prizvannoj raz®yasnit' bednym bezglasnym
ispolnitelyam, chto oni dolzhny delat'? Ne zahvatila li eta elita vsyu
tvorcheskuyu deyatel'nost', sdelav ispolnitelej lish' zubchikami v mehanizme? Ne
okazhetsya li, chto bolee sovershennyj produkt mozhno poluchit', ispol'zuya idei
vsej brigady i ispoveduya filosofiyu demokratii, a ne ogranichivaya krug
razrabotchikov neskol'kimi licami?
Proshche vsego otvetit' na poslednij vopros. YA, razumeetsya, ne stanu
utverzhdat', chto horoshie arhitekturnye idei mogut voznikat' tol'ko u
arhitektorov. CHasto svezhaya ideya ishodit ot ispolnitelya ili pol'zovatelya.
Odnako ves' lichnyj opyt ubezhdaet menya, i ya pytalsya eto pokazat', chto
prostotu pol'zovaniya sistemoj opredelyaet ee konceptual'naya celostnost'.
Dostojnye vnimaniya funkcii i idei, kotorye ne ob®edinyayutsya s osnovnymi
koncepciyami sistemy, luchshe ostavit' v storone. Esli takih vazhnyh, no
nesovmestimyh idej poyavlyaetsya slishkom mnogo, vykidyvayut vsyu sistema i
nachinayut razrabotku celostnoj sistemy snachala, osnovyvaya ee na inyh
osnovopolagayushchih koncepciyah.
CHto kasaetsya obvinenij v aristokratizme, to otvet i polozhitel'nyj, i
otricatel'nyj. Polozhitel'nyj, potomu chto dejstvitel'no dolzhno byt' neskol'ko
arhitektorov, ch'i rezul'taty zhivut dol'she, chem otdel'nye realizacii, i
arhitektor nahoditsya v fokuse sil, kotorye on v konechnom itoge dolzhen
ispol'zovat' v interesah pol'zovatelya. Esli vy hotite, chtoby sistema
obladala konceptual'noj celostnost'yu, to rukovodstvo koncepciyami dolzhen
vzyat' kto-to odin. |to aristokratizm, kotoryj ne nuzhdaetsya v izvineniyah.
Otvet otricatel'nyj, poskol'ku razrabotka proekta trebuet ne men'she
tvorchestva, chem zadanie vneshnih specifikacij. |to tozhe tvorcheskaya rabota, no
drugogo haraktera. Razrabotka proekta dlya zadannoj arhitektury trebuet i
dopuskaet stol'ko zhe tvorcheskoj deyatel'nosti, novyh idej, izobretatel'nosti,
kak i proekt vneshnih specifikacij. Prakticheski, koefficient
stoimost'/effektivnost' sozdannogo produkta bol'she zavisit ot ispolnitelya, a
prostota ego ispol'zovaniya - ot arhitektora.
Est' massa primerov, podskazannyh drugimi iskusstvami i remeslami,
kotorye podvodyat k mneniyu, chto disciplina idet na pol'zu. Dejstvitel'no,
aforizm hudozhnika glasit, chto "forma osvobozhdaet". Samye uzhasny stroeniya -
eto te, byudzhet kotoryh byl slishkom velik dlya postavlennyh celej. Tvorcheskuyu
aktivnost' Baha edva li mogla podavlyat' neobhodimost' ezhenedel'naya
neobhodimost' izgotavlivat' kantatu opredelennogo vida. YA uveren, chto
arhitektura komp'yutera Stretch stala by luchshe, esli by na nee nalozhili bolee
zhestkie ogranicheniya; tak, ogranicheniya, nalozhennye byudzhetom na System/360
Model 30, po moemu mneniyu, prinesli lish' pol'zu arhitekture Model 75.
Analogichno, ya schitayu, chto poluchenie arhitektury izvne usilivaet, a ne
podavlyaet tvorcheskuyu aktivnost' gruppy ispolnitelej. Oni srazu
sosredotochivayutsya na toj chasti zadachi, kotoroj nikto ne zanimalsya, i v
rezul'tate izobretatel'nost' b'et klyuchom. V ne ogranichivaemoj gruppe bol'shaya
chast' obdumyvaniya i obsuzhdeniya posvyashchena arhitekturnym resheniyam v ushcherb
realizacii.5
|tot mnogokratno nablyudavshijsya mnoj effekt podtverdil R. U. Konvej (R.
W. Conway), ch'ya gruppa razrabotala v Kornel'skom universitete kompilyator
PL/C dlya yazyka PL/I. On govorit: "V konechnom itoge my reshili realizovat'
yazyk bez izmenenij i usovershenstvovanij, poskol'ku obsuzhdenie yazyka otnyalo
by u nas vse sily."6
CHem zanyat'sya razrabotchiku, poka on vynuzhden zhdat'?
Ochen' nepriyatno sovershit' oshibku stoimost'yu v million dollarov, no
zato ona nadolgo zapominaetsya. YA otchetlivo pomnyu tot den', kogda my prinyali
reshenie o tom, kak prakticheski organizovat' sostavlenie vneshnih specifikacij
dlya OS/360. Menedzher po arhitekture, menedzher po realizacii upravlyayushchej
programmy i ya prorabatyvali plan, grafik i razdelenie obyazannostej.
U menedzhera po arhitekture bylo 10 horoshih specialistov. On utverzhdal,
chto oni v sostoyanii napisat' specifikacii i sdelat' eto dolzhnym obrazom. |to
dolzhno bylo zanyat' 10 mesyacev - na tri bol'she, chem otvodilos' po grafiku.
U menedzhera po realizacii upravlyayushchej programmy bylo 150 chelovek. On
zayavlyal, chto oni mogut podgotovit' specifikacii, pri etom gruppa
arhitektorov vypolnyala by koordiniruyushchie funkcii. Obeshchalos', chto eto budet
sdelano horosho i praktichno, s soblyudeniem srokov. Bolee togo, esli ostavit'
specifikacii gruppe arhitektorov, ego 150 chelovek v techenie desyati mesyacev
budut bit' baklushi.
Na eto menedzher po arhitekture vozrazil, chto esli ya sdelayu
otvetstvennoj za napisanie specifikacij gruppu upravlyayushchej programmy, to
rezul'tata v srok ne budet: on vse ravno zaderzhitsya na tri mesyaca, no po
kachestvu budet mnogo huzhe. Tak ono i okazalos' v dejstvitel'nosti. On
okazalsya prav v oboih punktah. Krome togo, iz-za otsutstviya konceptual'noj
celostnosti sozdanie i vnesenie izmenenij v sistemu okazalis' znachitel'no
bolee dorogostoyashchimi, i, po moim ocenkam, otladka udlinilas' na god.
Konechno, mnogie faktory povliyali na prinyatie etogo oshibochnogo resheniya,
no opredelyayushchimi byli zhelanie ulozhit'sya v grafik i stremlenie zanyat' rabotoj
etih 150 chelovek. Penie etih siren tait smertel'nye opasnosti, kotorye ya i
hochu sejchas pokazat'.
Kogda predlagaetsya, chtoby vse vneshnie specifikacii dlya komp'yuternoj ili
programmnoj sistemy byli sostavleny nebol'shoj komandoj arhitektorov,
ispolniteli vydvigayut tri vozrazheniya:
- Specifikacii budut peregruzheny funkciyami i ne budut uchityvat'
prakticheskih zatrat na realizaciyu.
- Arhitektory poluchat vse radosti tvorchestva i zablokiruyut
izobretatel'nost' ispolnitelej.
- Mnogochislennym ispolnitelyam pridetsya ozhidat' v prazdnosti, poka
specifikacii projdut cherez uzkoe gorlyshko komandy arhitektorov.
Pervoe vozrazhenie otrazhaet real'nuyu opasnost' i budet rassmotreno v
sleduyushchej glave. Ostal'nye dva yavlyayutsya chistym zabluzhdeniem. Kak my videli
vyshe, razrabotka takzhe yavlyaetsya v vysshej stepeni tvorcheskoj deyatel'nost'yu.
Vozmozhnost' proyavit' tvorchestvo i izobretatel'nost' pri razrabotke
neznachitel'no ogranichivaetsya neobhodimost'yu rabotat' v ramkah zadannyh
vneshnih specifikacij, i takaya disciplina mozhet dazhe usilit' stepen'
tvorchestva. |to, nesomnenno, verno dlya proekta v celom.
Poslednee vozrazhenie kasaetsya planirovaniya vremennyh ramok i etapov.
Proshche vsego vozderzhat'sya ot najma ispolnitelej do zaversheniya raboty nad
specifikaciyami. Kogda vozdvigaetsya zdanie, tak i postupayut.
Odnako pri sozdanii komp'yuternyh sistem tempy vyshe, i zhelatel'no
uplotnit' grafik rabot. V kakoj mere razrabotka specifikacij i razrabotka
mogut perekryvat'sya?
Kak otmechaet Blau, vsyu programmu sozdaniya sostavlyayut tri otdel'nye
stadii: arhitektura, razrabotka i realizaciya. Okazyvaetsya, chto na praktike
ih mozhno nachinat' parallel'no i prodolzhat' odnovremenno. Naprimer, pri
proektirovanii komp'yuterov proektirovshchik mozhet pristupat' k rabote, imeya
otnositel'no obshchie dopushcheniya v otnoshenii rukovodstva pol'zovatelya, neskol'ko
bolee yasnye idei otnositel'no tehnologii i vpolne opredelennye zadachi po
stoimosti i rabochim harakteristikam. On mozhet nachat' proektirovanie potokov
dannyh, upravlyayushchih posledovatel'nostej, obshchih idej komponovki i t.d. On
razrabatyvaet ili adaptiruet neobhodimyj instrumentarij, osobenno sistemu
vedeniya ucheta, v tom chisle sistemu avtomatizacii proektirovaniya.
V to zhe vremya na urovne realizacii nuzhno sproektirovat',
usovershenstvovat' i opisat' mikroshemy, platy, kabeli, karkasy, bloki
pitaniya i ustrojstva pamyati. |ta rabota protekaet parallel'no s arhitekturoj
i razrabotkoj.
To zhe samoe spravedlivo pri sozdanii programmnyh sistem. Zadolgo do
zaversheniya vneshnih specifikacij proektirovshchik mozhet najti sebe dostatochno
raboty. On mozhet pristupit' k delu, osnovyvayas' na grubom priblizhenii
funkcional'nosti sistemy, kotoraya v konechnom itoge budet voploshchena vo
vneshnih specifikaciyah. U nego dolzhny byt' yasno opredelennye celi v otnoshenii
pamyati i vremennyh parametrov. On dolzhen izuchit' konfiguraciyu sistemy, na
kotoroj budet vypolnyat'sya ego produkt. Zatem on mozhet nachat' opredelenie
granic modulej, struktur tablic, raschleneniya na prohody ili stadii
algoritmov i vsevozmozhnyh instrumental'nyh sredstv. Nekotoroe vremya on
dolzhen takzhe posvyatit' obshcheniyu s arhitektorom.
V to zhe vremya dostatochno raboty i na urovne realizacii. U
programmirovaniya svoya tehnologiya. Esli mashina novaya, mnogo truda trebuyut
soglasheniya po podprogrammam, tehnologiya raboty s supervizorom, algoritmy
poiska i sortirovki.7
Konceptual'naya celostnost' trebuet, chtoby sistema otrazhala edinuyu
filosofiyu, i tehnicheskie usloviya, v tom vide, v kotorom oni budut vidny
pol'zovatelyu, proistekali ot malogo chisla avtorov. |to ne oznachaet, chto
sproektirovannaya takim obrazom sistema sozdaetsya dol'she, poskol'ku
ispol'zuetsya dejstvitel'noe razdelenie truda na arhitekturu, razrabotku i
realizaciyu. Opyt pokazyvaet obratnoe: cel'naya sistema prodvigaetsya bystree i
trebuet men'she vremeni dlya otladki. V rezul'tate shiroko rasprostranennoe
gorizontal'noe razdelenie truda znachitel'no sokrashchaetsya za schet
vertikal'nogo razdeleniya, chto vlechet rezkoe umen'shenie obmena informaciej i
uluchshenie konceptual'noj celostnosti.
Glava 5. |ffekt vtoroj sistemy
Adde parvum parvo magnus acervus erit.
[Skladyvaj maloe s malym, i poluchish' bol'shuyu kuchu.]
OVIDIJ
Esli otvetstvennost' za specifikaciyu funkcij otdelit' ot
otvetstvennosti za bystroe sozdanie nedorogogo produkta, to chem sderzhat'
izobretatel'skij entuziazm arhitektora?
Principial'noe reshenie - obespechenie vsestoronnego, tshchatel'nogo i
dobrozhelatel'no obmena informaciej mezhdu arhitektorom i razrabotchikom.
Odnako imeyutsya i bolee tonkie resheniya, kotorye zasluzhivayut vnimaniya.
Disciplina vzaimodejstviya dlya arhitektora
Arhitektor, stroyashchij zdanie, dejstvuet v ramkah smety, ispol'zuya
metody ocenki, kotorye v posleduyushchem podtverzhdayutsya ili korrektiruyutsya
zayavkami podryadchikov. CHasto sluchaetsya, chto vse predlozheniya vyhodyat za ramki
smety. Togda arhitektor peresmatrivaet svoi ocenki v storonu uvelicheniya
smety, a proekt - v storonu sokrashcheniya, i cikl povtoryaetsya. Inogda on
predlagaet podryadchikam sposoby udeshevleniya realizacii ego proekta v
sravnenii s izbrannymi imi sposobami.
Shodnye processy proishodyat s arhitektorom komp'yuternyh ili programmnyh
sistem. Odnako u nego est' to preimushchestvo, chto predlozheniya podryadchika mozhno
poluchit' na rannih stadiyah proektirovaniya, chasto - v lyuboj moment.
Nedostatkom obychno yavlyaetsya to, chto rabota idet s edinstvennym podryadchikom,
kotoryj mozhet menyat' cenu v zavisimosti ot stepeni svoej udovletvorennosti
proektom. Na praktike, process obshcheniya, nachatyj na rannih etapah i
prodolzhayushchijsya nepreryvno, mozhet dat' arhitektoru vernuyu ocenku stoimosti, a
razrabotchiku - uverennost' v proekte, ne snimaya pri etom chetkogo
razgranicheniya sfer otvetstvennosti.
U arhitektora, kogda on stalkivaetsya s nepriemlemo vysokoj stoimost'yu,
est' dva vyhoda: sokratit' proekt ili vozdejstvovat' na stoimost', predlagaya
bolee deshevye sposoby realizacii. Vtoroj sposob neizbezhno vyzyvaet emocii,
ved' arhitektor osparivaet to, kak stroitel' spravlyaetsya so svoim delom.
CHtoby uspeshno spravit'sya s etim, arhitektoru neobhodimo:
- pomnit', chto otvetstvennost' za izobretatel'nost' i tvorchestvo,
proyavlyaemye pri realizacii, neset stroitel', poetomu arhitektor predlagaet,
a ne trebuet;
- vsegda byt' gotovym predlozhit' nekotoryj sposob realizacii svoih
zamyslov i byt' gotovym soglasit'sya s lyubym drugim sposobom, pozvolyayushchim
reshit' zadachu ne huzhe;
- vydvigaya takie predlozheniya, dejstvovat' bez shuma i oglaski;
- ne rasschityvat' na priznatel'nost' za sdelannye predlozheniya.
Obychno razrabotchik pariruet predlozheniem izmenenij v arhitekture. CHasto
on prav - realizaciya kakoj-nibud' malosushchestvennoj detali mozhet okazat'sya
neozhidanno dorogostoyashchej.
Samodisciplina - effekt vtoroj sistemy
Pervyj proekt arhitektora stremitsya k skromnosti i yasnosti. Arhitektor
ponimaet, chto ne znaet, chem zanimaetsya, poetomu on zanimaetsya etim so
staraniem i samoogranicheniem.
Pri rabote nad pervym proektom emu postoyanno prihodyat v golovu to odni,
to drugie "ukrasheniya". Oni otkladyvayutsya v storonu dlya ispol'zovaniya "v
sleduyushchij raz". V konce koncov, pervaya sistema zakonchena, i arhitektor, s
tverdoj uverennost'yu v sebe i prodemonstrirovannym osvoeniem etogo klassa
sistem, gotov k sozdaniyu novogo proekta.
|ta vtoraya sistema tait naibol'shie opasnosti dlya proektirovshchika. Pri
rabote nad tret'ej i posleduyushchimi sistemami zakreplyaetsya poluchennyj ranee
opyt v otnoshenii obshchih harakteristik takih sistem, a razlichiya mezhdu nimi
vyyavlyayut te chasti opyta, kotorye nosyat chastnyj harakter i ne mogut byt'
obobshcheny.
Obshchaya tendenciya zaklyuchaetsya v peregruzhennosti proekta vtoroj sistemy
ideyami i ukrashatel'stvami, blagorazumno otlozhennymi v sto