j 11.14 "Nezhelanie programmistov dokumentirovat' proekt proishodit ne stol'ko ot leni, skol'ko ot neuverennosti, stoit li svyazyvat' sebya otstaivaniem reshenij, kotorye, kak znaet proektirovshchik, yavlyayutsya predvaritel'nymi" (Kosgrouv). 11.15 Sozdavat' organizacionnuyu strukturu s uchetom vneseniya v budushchem izmenenij znachitel'no trudnee, chem proektirovat' sistemu s uchetom budushchih izmenenij. 11.16 Rukovoditel' proekta dolzhen stremit'sya k tomu, chtoby ego menedzhery i tehnicheskij personal byli nastol'ko vzaimozamenyaemy, naskol'ko pozvolyayut ih sposobnosti. V chastnosti, nuzhno imet' vozmozhnost' legko perevodit' lyudej s tehnicheskoj na upravlencheskuyu rabotu i obratno. 11.17 Prepyatstviya k podderzhaniyu effektivnoj organizacii s dvojnoj sluzhebnoj lestnicej yavlyayutsya sociologicheskimi. Neobhodimo postoyanno bditel'no i energichno borot'sya s nimi. 11.18 Legko ustanovit' sootvetstvuyushchie razmery zhalovan'ya dlya sootvetstvuyushchih stupenek dvojnoj lestnicy, no trebuetsya prinyat' mery, chtoby dat' im sootvetstvuyushchij prestizh: odinakovye ofisy, odinakovye sluzhby podderzhki, v znachitel'noj mere kompensiruyushchie upravlencheskuyu deyatel'nost'. 11.19 Organizaciya po tipu operacionnoj brigady pozvolyaet aktivno reshat' vse storony etoj problemy. |to dejstvitel'no dolgosrochnoe reshenie problemy gibkoj organizacii. Dva shaga vpered, shag nazad: soprovozhdenie programm 11.20 Soprovozhdenie programmy v korne otlichaetsya ot soprovozhdeniya apparatnoj chasti; ono sostoit, glavnym obrazom, iz izmenenij, ispravlyayushchih konstruktivnye defekty, vklyuchenie dopolnitel'nyh funkcij ili adaptaciyu k izmeneniyam sredy ispol'zovaniya ili konfiguracii. 11.21 Stoimost' pozhiznennogo soprovozhdeniya shiroko ispol'zuemoj programmy obychno sostavlyaet 40 i bolee procentov stoimosti ee razrabotki. 11.22 Stoimost' soprovozhdeniya sil'no zavisit ot chisla pol'zovatelej: chem bol'she pol'zovatelej, tem bol'she oshibok oni nahodyat. 11.23 Kempbel otmechaet interesnuyu krivuyu vzleta i padenij obnaruzhivaemyh oshibok v techenie zhizni produkta. 11.24 Ispravlenie odnoj oshibki s bol'shoj veroyatnost'yu (ot 20 do 50 procentov) vnosit druguyu. 11.25 Posle kazhdogo ispravleniya nuzhno prognat' ves' nabor kontrol'nyh primerov, po kotorym sistema proveryalas' ran'she, chtoby ubedit'sya, chto ona kakim-nibud' neponyatnym obrazom ne povredilas'. 11.26 Metody razrabotki programm, pozvolyayushchie isklyuchit' ili po krajnej mere vyyavit' pobochnye effekty, mogut rezko snizit' stoimost' soprovozhdeniya. 11.27 To zhe mozhno skazat' o metodah realizacii proektov men'shim chislom interfejsov i men'shim kolichestvom oshibok. SHag vpered, shag nazad: entropiya sistemy s techeniem vremeni rastet 11.28 Leman i Beladi schitayut, chto obshchee kolichestvo modulej rastet linejno s nomerom versii operacionnoj sistemy (OS/360), no chisli modulej, zatronutyh izmeneniyami, rastet eksponencial'no v zavisimosti ot nomera versii. 11.29 Vse ispravleniya imeyut tendenciyu k razrusheniyu struktury, uvelicheniyu entropii i dezorganizacii sistemy. Dazhe samoe iskusnoe soprovozhdenie programmy tol'ko otdalyaet moment poverzheniya ee v sostoyanie neispravimogo haosa, vyhodom iz kotorogo yavlyaetsya povtornoe proektirovanie s samogo nachala. (Inogda real'naya neobhodimost' obnovleniya programmy, naprimer, s cel'yu povysheniya proizvoditel'nosti, vyzyvaet neobhodimost' izmeneniya vnutrennih granic struktur. CHasto ishodnye granicy sluzhat prichinoj vyyavlyayushchihsya vposledstvii nedostatkov.) Glava 12. Ostryj instrument 12.1 Menedzher proekta dolzhen ustanovit' principy i vydelit' resursy dlya razrabotki obshcheupotreblyaemyh instrumentov, v to zhe vremya on dolzhen priznat' neobhodimost' v personalizirovannyh instrumentah. 12.2 Brigadam, razrabatyvayushchim operacionnye sistemy, neobhodima dlya otladki sobstvennaya celevaya mashina. Dlya nee trebuetsya skoree maksimum pamyati, chem maksimum skorosti, i sistemnyj programmist dlya podderzhki standartnogo programmnogo obespecheniya. 12.3 Mashina dlya otladki ili ee programmnoe obespechenie dolzhny imet' instrument dlya avtomaticheskogo podscheta i izmeneniya vseh vidov parametrov programmy. 12.4 Potrebnost' v celevoj mashine opisyvaetsya specificheskoj krivoj: posle nizkoj aktivnosti sleduet vzryvnoj rost, kotoryj potom vyravnivaetsya. 12.5 Sistemnoj otladkoj, kak astronomiej, vsegda zanimalis' preimushchestvenno po nocham. 12.6 Vopreki teorii, vydelenie vremeni celevoj mashiny odnoj brigade znachitel'nymi blokami okazalos' luchshim variantom planirovaniya vremeni, chem cheredovanie ispol'zovaniya mashiny brigadami. 12.7 |tot predpochtitel'nyj pri nehvatke komp'yuterov metod planirovaniya vremeni perezhil 20 let (s 1975 goda) tehnologicheskih izmenenij, poskol'ku yavlyaetsya naibolee produktivnym. (I ostaetsya im v 1995 godu.) 12.8 Esli celevoj komp'yuter yavlyaetsya novym, neobhodim ego logicheskij emulyator. Ego mozhno poluchit' ran'she, i on obespechivaet nadezhnuyu mashinu dlya otladki dazhe posle togo, kak postavlyaetsya nastoyashchaya mashina. 12.9 Glavnuyu biblioteku programm nuzhno razdelit' na: 1) nabor individual'nyh "igrovyh ploshchadok", 2) podbiblioteku sistemnoj integracii, prohodyashchuyu sistemnoe testirovanie i 3) versiyu-reliz. Formal'noe razdelenie i peremeshchenie obespechivayut kontrol'. 12.10 Instrument, obespechivayushchij naibol'shuyu ekonomiyu truda v programmnom proekte, - eto, navernoe, sistema redaktirovaniya tekstov. 12.11 Ob容mistost' sistemnoj dokumentacii sozdaet novyj tip nepostizhimosti (sm., naprimer Unix), no eto znachitel'no predpochtitel'nee, chem bolee rasprostranennyj krajnij nedostatok dokumentacii. 12.12 Sozdajte emulyator proizvoditel'nosti snaruzhi vnutr', sverhu vniz. Nachnite rabotu s nim kak mozhno ran'she. Prislushajtes' k tomu, chto on vam skazhet. YAzyki vysokogo urovnya 12.13 Tol'ko len' i inertnost' prepyatstvuyut povsemestnomu primeneniyu yazykov vysokogo urovnya i interaktivnogo programmirovaniya. (No segodnya oni prinyaty povsemestno.) 12.14 YAzyk vysokogo urovnya sposobstvuet ne tol'ko uvelicheniyu proizvoditel'nosti, no i otladke. Men'she oshibok i legche poisk. 12.15 Prezhnie vozrazheniya, svyazannye s funkcional'nost'yu, razmerom i skorost'yu rezul'tiruyushchej programmy ustareli blagodarya razvitiyu yazykov i tehnologii kompilyacii. 12.16 Segodnya edinstvennyj podhodyashchij kandidat dlya sistemnogo programmirovaniya - PL/I. (Bol'she ne sootvetstvuet dejstvitel'nosti.) Interaktivnoe programmirovanie 12.17 V nekotoryh prilozheniyah paketnye sistemy nikogda ne budut vytesneny interaktivnymi sistemami. (Po-prezhnemu verno.) 12.18 Otladka - eto tyazhelaya i dolgaya chast' sistemnogo programmirovaniya, i medlennaya oborachivaemost' yavlyaetsya proklyatiem otladki. 12.19 Est' svidetel'stva tomu, chto interaktivnoe programmirovanie po krajnej mere udvaivaet skorost' sistemnogo programmirovaniya. Glava 13. Celoe i chasti 13.1 Detal'naya i staratel'naya prorabotka arhitektury soglasno glavam 4, 5 i 6 ne tol'ko uproshchaet ispol'zovanie produkta, no takzhe oblegchaet ego razrabotku i delaet menee podverzhennym oshibkam. 13.2 Vysockij govorit, chto "ochen' mnogie neudachi svyazany imenno s temi aspektami, kotorye byli ne vpolne specificirovany". 13.3 Zadolgo do vsyakogo napisaniya programmy specifikaciya dolzhna byt' peredana storonnej gruppe testirovaniya dlya tshchatel'nogo rassmotreniya polnoty i yasnosti. Sami razrabotchiki sdelat' eto ne mogut. 13.4 "Nishodyashchee proektirovanie Virta (s poshagovym utochneniem) yavlyaetsya samoj vazhnoj novoj formalizaciej programmirovaniya za desyatiletie (1965- 1975)." 13.5 Virt propoveduet ispol'zovanie na kazhdom shage notacii vozmozhno bolee vysokogo poryadka. 13.6 Horoshee nishodyashchee proektirovanie pomogaet izbegat' oshibok blagodarya chetyrem obstoyatel'stvam. 13.7 Inogda prihoditsya vozvrashchat'sya nazad, otbrasyvat' samyj verhnij uroven' i nachinat' vse snachala. 13.8 Strukturnoe programmirovanie, t.e. razrabotka programm, upravlyayushchie struktury kotoryh sostoyat tol'ko iz zadannogo nabora operatorov, vozdejstvuyushchih na bloki koda (v protivopolozhnost' besporyadochnym perehodam), daet vernyj sposob izbezhat' oshibok i predstavlyaet soboj pravil'nyj sposob myshleniya. 13.9 |ksperimental'nye dannye Golda pokazyvayut, chto vo vremya pervogo dialoga kazhdogo seansa dostigaetsya vtroe bol'shij progress v interaktivnoj otladke, chem pri posleduyushchih dialogah. Vse zhe polezno tshchatel'no splanirovat' otladku, prezhde chem registrirovat'sya na mashine. (YA polagayu, chto eto polezno do sih por, v 1995 godu.) 13.10 YA schitayu, chto dlya pravil'nogo ispol'zovaniya horoshej sistemy (interaktivnoj otladki s bystroj reakciej) na kazhdye dva chasa raboty za stolom dolzhno prihodit'sya dva chasa raboty na mashine: odin chas - na podchistki i dokumentirovanie posle pervogo seansa, i odin chas - na planirovanie izmenenij i testov ocherednogo seansa. 13.11 Sistemnaya otladka (v otlichie ot otladki komponentov) zanimaet bol'she vremeni, chem ozhidaetsya. 13.12 Trudnost' sistemnoj otladki opravdyvaet tshchatel'nuyu sistematichnost' i planovost'. 13.13 Sistemnuyu otladku nuzhno nachinat', tol'ko ubedivshis' v rabotosposobnosti komponentov, (v protivopolozhnost' podhodu "svinti i poprobuj" i nachalu sistemnoj otladki pri izvestnyh, no ne ustranennyh oshibkah v komponentah). (|to osobenno spravedlivo dlya brigad.) 13.14 Rekomenduetsya sozdat' bol'shoe okruzhenie i mnogo proverochnogo koda i "lesov" dlya otladki, vozmozhno, na 50 procentov bol'she, chem sam otlazhivaemyj produkt. 13.15 Neobhodimo kontrolirovat' izmeneniya i versii, pri etom chleny komandy pust' igrayut so svoimi kopiyami na "ploshchadkah dlya igr". 13.16 Vo vremya sistemnogo testirovaniya dobavlyajte komponenty po odnomu. 13.17 Leman i Beladi svidetel'stvuyut, chto kvant izmenenij dolzhen byt' libo bol'shim i vnosit'sya redko, libo ochen' malen'kim - i chasto. Poslednij sluchaj bolee chrevat neustojchivost'yu. (V Microsoft rabotayut malen'kimi chastymi kvantami. Razrabatyvaemaya sistema sobiraetsya zanovo kazhdye sutki.) Glava 14. Nazrevanie katastrofy 14.1 "Kak okazyvaetsya, chto proekt zapazdyvaet na odin god? ...Snachala on zapazdyvaet na odin den'." 14.2 Otstavanie, rastushchee ponemnogu izo dnya v den', trudnee raspoznat', trudnee predotvratit', trudnee vypravit'. 14.3 CHtoby upravlyat' bol'shim proektom po zhestkomu grafiku, nado prezhde vsego imet' grafik, sostoyashchij iz veh i sootvetstvuyushchih im dat. 14.4 Vehi dolzhny byt' konkretnymi, specificheskimi, izmerimymi sobytiyami, opredelennymi s predel'noj tochnost'yu. 14.5 Programmist redko lzhet otnositel'no dvizheniya vehi, esli veha ocherchena rezko, on ne mozhet obmanyvat' sebya. 14.6 Issledovaniya povedeniya pravitel'stvennyh podryadchikov po provedeniyu ocenok v krupnyh proektah pokazali, chto ocenki srokov raboty, tshchatel'no peresmatrivaemye kazhdye dve nedeli, neznachitel'no menyayutsya po mere priblizheniya nachala rabot, chto vo vremya rabot pereocenki uverenno snizhayutsya i chto nedoocenki ne menyayutsya, poka do zaplanirovannogo sroka okonchaniya rabot ne ostaetsya okolo treh nedel'. 14.7 Hronicheskoe otstavanie ot grafika ubivaet moral'nyj duh. (Dzhim Makkarti iz Microsoft govorit: "Esli vy propustili odin krajnij srok, bud'te uvereny, chto propustite i vtoroj."2) 14.8 Dlya vydayushchihsya komand programmistov harakterna energiya, kak i dlya vydayushchihsya bejsbol'nyh komand. 14.9 Nichto ne zamenit grafik s kriticheskimi putyami, chtoby opredelit', kakoe otstavanie vo chto obojdetsya. 14.10 Podgotovka diagrammy kriticheskih putej est' samaya cennaya chast' ee primeneniya, poskol'ku opredelenie topologii seti, ukazanie zavisimostej v nej i ocenivanie putej vynuzhdayut osushchestvit' bol'shoj ob容m ochen' konkretnogo planirovaniya na samyh rannih stadiyah proekta. 14.11 Pervaya diagramma vsegda uzhasna, i dlya sozdaniya vtoroj prihoditsya proyavit' mnogo izobretatel'nosti. 14.12 Diagramma kriticheskih putej daet otpor demoralizuyushchej ogovorke "drugaya chast' tozhe zapazdyvaet". 14.13 Kazhdomu nachal'niku nuzhny dva vida dannyh: informaciya o sryvah plana, kotoraya trebuet vmeshatel'stva, i kartina sostoyaniya del, chtoby byt' osvedomlennym i imet' rannee preduprezhdenie. 14.14 Poluchit' pravdivuyu kartinu sostoyaniya del nelegko, poskol'ku u podchinennyh menedzherov est' osnovaniya ne delit'sya svoimi dannymi. 14.15 Nepravil'nymi dejstviyami nachal'nik mozhet obespechit' utaivanie vsej kartiny sostoyaniya del; naprotiv, tshchatel'noe rassmotrenie otchetov bez paniki i vmeshatel'stva pooshchryaet chestnyj doklad. 14.16 Neobhodimo imet' metodologiyu obzora, s pomoshch'yu kotoroj podlinnoe polozhenie veshchej stanovitsya izvestnym vsem igrokam. Glavnym dlya etoj celi yavlyaetsya grafik s vehami i dokument o zavershenii. 14.17 Vysockij: "YA nashel, chto udobno imet' v otchete o sostoyanii rabot dve daty - "planovuyu" (datu nachal'nika) i "ocenivaemuyu" (datu menedzhera nizshego zvena). Menedzher proekta dolzhen ostorozhno otnosit'sya k ocenivaemym datam." 14.18 Nebol'shaya gruppa planirovaniya i kontrolya, dayushchaya otchety o prohozhdenii veh, neocenima pri rabote nad bol'shim proektom. Glava 15. Obratnaya storona 15.1 Dlya programmnogo produkta storona, obrashchennaya k pol'zovatelyu, - dokumentaciya - stol' zhe vazhna, kak i storona, obrashchennaya k mashine. 15.2 Dazhe dlya programm, napisannyh isklyuchitel'no dlya sebya, tekstual'naya dokumentaciya neobhodima: pamyat' mozhet izmenit' avtoru-pol'zovatelyu. 15.3 V celom, prepodavatelyam i menedzheram ne udalos' vospitat' na vsyu zhizn' u programmistov uvazhenie k dokumentacii, preodolevayushchee len' i press grafika rabot. 15.4 |ta neudacha vyzvana ne stol'ko nedostatkom staraniya ili krasnorechiya, skol'ko nesposobnost'yu pokazat', kak provodit' dokumentirovanie effektivno i ekonomichno. 15.5 Dokumentaciya chasto stradaet otsutstviem obshchego obzora. Posmotrite snachala izdaleka, a potom medlenno priblizhajtes'. 15.6 Vazhnaya dokumentaciya pol'zovatelya dolzhna byt' vcherne napisana do razrabotki programmy, poskol'ku v nej soderzhatsya osnovnye planovye resheniya. V nej dolzhny byt' opisany devyat' predmetov (sm. tekst glavy). 15.7 Programmu nuzhno postavlyat' s neskol'kimi kontrol'nymi primerami: s dopustimymi vhodnymi dannymi, dopustimymi na grani vozmozhnostej, i s yavno nedopustimymi vhodnymi dannymi. 15.8 Vnutrennyaya dokumentaciya programmy, prednaznachennaya tomu, kto dolzhen ee modificirovat', takzhe dolzhna soderzhat' tekstual'nyj obzor, v kotorom dolzhny byt' opisany pyat' predmetov (sm. glavu). 15.9 Blok-shema chashche vsego naprasno vklyuchaetsya v dokumentaciyu. Podrobnaya poshagovaya blok-shema ustarela blagodarya pis'mennym yazykam vysokogo urovnya. (Blok-shema - graficheskij yazyk vysokogo urovnya.) 15.10 Redko trebuetsya blok-shema bolee chem na odnu stranicu - esli ona voobshche nuzhna. (Standart MILSPEC zdes' sovershenno ne prav.) 15.11 CHto dejstvitel'no neobhodimo - eto strukturnyj graf programmy bez soblyudeniya standartov sostavleniya blok-shem ANSI. 15.12 CHtoby obespechit' obnovlenie dokumentacii, vazhno vklyuchit' ee v ishodnyj tekst programmy, a ne derzhat' otdel'nym dokumentom. 15.13 Dlya oblegcheniya truda vedeniya dokumentacii est' tri vazhnyh pravila: - Kak mozhno bol'she ispol'zujte dlya dokumentirovaniya obyazatel'nye chasti programmy, takie kak imena i ob座avleniya. - Ispol'zujte svobodnoe prostranstvo i format, chtoby pokazat' otnosheniya podchinennosti, vlozhennosti i uluchshit' chitaemost'. - Vstavlyajte v programmu neobhodimuyu tekstovuyu dokumentaciyu v vide paragrafov kommentariev, osobenno v zagolovkah modulej. 15.14 V dokumentacii, kotoroj budut pol'zovat'sya pri modifikacii programmy, ob座asnyajte ne tol'ko "kak", no i "pochemu". Naznachenie yavlyaetsya reshayushchim dlya ponimaniya. Dazhe yazyki vysokogo urovnya sovsem ne peredayut znacheniya. 15.15 Metody samodokumentiruyushchegosya programmirovaniya naibolee polezny i moshchny pri ispol'zovanii yazykov vysokogo urovnya. |pilog k pervomu izdaniyu E.1 Programmnye sistemy yavlyayutsya, vozmozhno, samymi slozhnymi i zaputannymi (v smysle chisla razlichnyh tipov sostavlyayushchih) sozdaniyami cheloveka. E.2 Smolyanaya yama programmnoj inzhenerii eshche dolgoe vremya budet ostavat'sya vyazkoj. Glava 19 "Mificheskij cheloveko-mesyac" dvadcat' let spustyaYA ne znayu drugogo sposoba sudit' o budushchem, kak s pomoshch'yu proshlogo. PATRIK GENRI Opirayas' na proshloe, nevozmozhno planirovat' budushchee. |DMUND BERK Dlya chego ponadobilos' yubilejnoe dvadcatoe izdanie? Samolet gudel v nochi, napravlyayas' k Lagardii. Oblaka i sumrak skryli vse interesnoe dlya glaza. Dokument, kotoryj ya chital, byl neinteresnym. Odnako mne ne bylo skuchno. Sidyashchij ryadom poputchik chital "Mificheskij cheloveko-mesyac", i ya ozhidal, kogda slovom ili zhestom on vydast svoe vpechatlenie. V konce koncov, kogda my uzhe vyrulivali k vyhodu, ya ne vyderzhal: - Kak vam eta kniga? Sovetuete prochest'? - Hm, v nej net nichego, chego ya ne znal by ran'she. YA reshil ne predstavlyat'sya. Pochemu "Mificheskij cheloveko-mesyac" vyzhil? Pochemu s nim do sih por schitayutsya v sovremennoj praktike programmirovaniya? Pochemu ego chitatel'skaya auditoriya vyhodit za predely soobshchestva programmistov-razrabotchikov, a kniga porozhdaet stat'i, citaty i pis'ma ne tol'ko razrabotchikov programm, no i yuristov, vrachej, psihologov, sociologov? Kakim obrazom kniga, napisannaya 20 let nazad ob opyte razrabotki programm, imevshem mesto 30 let nazad, mozhet do sih por byt' aktual'noj i dazhe poleznoj? Soglasno odnomu iz ob座asnenij, kotorye mozhno uslyshat', razrabotka programmnogo obespecheniya kak disciplina ne poluchila normal'nogo i pravil'nogo razvitiya. V podderzhku etoj tochki zreniya chasto ukazyvayut na nesootvetstvie rosta proizvoditel'nosti truda programmistov i effektivnosti proizvodstva komp'yuterov, vyrosshej v tysyachi raz za poslednie dva desyatiletiya. Kak ob座asnyaetsya v glave 16, anomaliya sostoit ne v zamedlennom razvitii programmirovaniya, a v besprecedentnom v istorii chelovechestva vzryve komp'yuternyh tehnologij. V celom, prichina etogo v postepennom perehode proizvodstva komp'yuterov iz sborochnogo proizvodstva v obrabatyvayushchee, iz trudoemkogo proizvodstva v kapitaloemkoe. Razrabotka zhe apparatnogo i programmnogo obespecheniya, v otlichie ot proizvodstva, ostaetsya po svoej suti trudoemkoj. Vtoroe chasto vydvigaemoe ob座asnenie glasit, chto "Mificheskij cheloveko-mesyac" lish' sluchajno kasaetsya razrabotki programmnogo obespecheniya, a v osnovnom on napisan o gruppovoj razrabotke chego by to ni bylo. Dolya pravdy v etom est'. V predislovii k izdaniyu 1975 goda skazano, chto upravlenie programmnym proektom imeet bol'she shodstva s lyubym drugim upravleniem, chem iznachal'no schitaetsya bol'shinstvom programmistov. YA do sih por tak schitayu. Istoriya chelovechestva - eto p'esa, v kotoroj syuzhety postoyanny, scenarii medlenno menyayutsya s razvitiem kul'tury, a dekoracii menyayutsya nepreryvno. Poetomu v HH veke my uznaem sebya v SHekspire, Gomere i Biblii. Poetomu v toj mere, v kakoj "MCH-M" napisan o lyudyah, on ustarevaet medlenno. Kakovy by ni byli prichiny, knigu prodolzhayut pokupat' i prisylayut mne zamechaniya, kotorye ya cenyu. Menya chasto sprashivayut: "Kak vy schitaete, v chem vy togda oshiblis'? CHto ustarelo v nashi dni? CHto dejstvitel'no novoe poyavilos' v mire razrabotki programm?" |ti chetkie voprosy vpolne zakonny, i ya postarayus' otvetit' na nih. Ne v takom, pravda, poryadke, no po gruppam tem. Prezhde vsego, posmotrim, chto bylo vernym v moment napisaniya i ostalos' takovym do sih por. Central'nyj argument: konceptual'naya celostnost' i arhitektor Konceptual'naya celostnost'. CHistyj i elegantnyj programmnyj produkt dolzhen predstavit' svoim pol'zovatelyam soglasovannuyu ideal'nuyu model' prilozheniya, strategij osushchestvleniya prilozheniya i taktiki pol'zovatel'skih interfejsov, ispol'zuemoj pri zadanii dejstvij i parametrov. Konceptual'naya celostnost' produkta v vospriyatii pol'zovatelya yavlyaetsya vazhnejshim faktorom, vliyayushchim na prostotu ispol'zovaniya. (Est', konechno, i drugie faktory. Vazhnym primerom yavlyaetsya edinoobrazie pol'zovatel'skogo interfejsa v prilozheniyah dlya Macintosh. Bolee togo, mozhno sozdat' soglasovannye interfejsy, yavlyayushchiesya tem ne menee, sovershenno neuklyuzhimi. Naprimer MS-DOS.) Est' mnogochislennye primery elegantnyh programmnyh produktov, sozdannyh odnim ili dvumya lyud'mi. Tak delaetsya bol'shaya chast' chisto intellektual'nyh produktov, takih kak knigi ili muzykal'nye proizvedeniya. Odnako vo mnogih promyshlennyh oblastyah processy razrabotki produkta ne mogut osushchestvlyat'sya na osnove stol' prostogo podhoda k konceptual'noj celostnosti. Konkurenciya vynuzhdaet k speshke. Vo mnogih sovremennyh tehnologiyah konechnyj produkt obladaet bol'shoj slozhnost'yu, i proektirovanie neizbezhno trebuet mnogih cheloveko-mesyacev truda. Dlya programmnyh produktov harakterny kak slozhnost', tak i napryazhennost' grafika, obuslovlennaya konkurenciej. Takim obrazom, vsyakij dostatochno bol'shoj ili srochnyj produkt, trebuyushchij usilij mnogih lyudej, stalkivaetsya so specificheskoj trudnost'yu: rezul'tat dolzhen konceptual'no soglasovyvat'sya s razumom odinochnogo pol'zovatelya i v to zhe vremya proektirovat'sya usiliyami neskol'kih razumov. Kak organizovat' proektirovanie, chtoby dostich' takoj konceptual'noj celostnosti? |to central'nyj vopros "MCH-M". Odin iz ego tezisov glasit, chto sushchestvuyut kachestvennye razlichiya mezhdu upravleniem bol'shimi i malen'kimi programmnymi proektami - lish' v silu chisla rabotayushchih nad nimi golov. Dlya dostizheniya soglasovannosti neobhodimy obdumannye i dazhe geroicheskie dejstviya. Arhitektor. S chetvertoj po shestuyu glavu ya dokazyvayu, chto samoe vazhnoe - naznachit' odnogo cheloveka arhitektorom produkta, otvetstvennym za vse ego storony, vosprinimaemye pol'zovatelem. Arhitektor formiruet i imeet v svoem vladenii obshchedostupnuyu ideal'nuyu model' produkta, s pomoshch'yu kotoroj pol'zovatelyu budet ob座asneno ego primenenie. V ee sostav vhodit podrobnoe ukazanie vseh ego funkcij i sredstv vyzova i upravleniya. Arhitektor takzhe dejstvuet v interesah pol'zovatelya pri poiske kompromissa mezhdu funkciyami, tehnicheskim harakteristikami, razmerom, stoimost'yu i vypolneniem grafika rabot. Vypolnenie etoj zadachi trebuet polnoj zanyatosti, i tol'ko v ochen' malen'kih gruppah mozhet byt' sovmeshcheno s dolzhnost'yu rukovoditelya. Arhitektora mozhno sravnivat' s rezhisserom, a menedzhera - s prodyuserom kinokartiny. Otdelenie arhitektury ot razrabotki i realizacii. CHtoby sdelat' vozmozhnym osushchestvlenie arhitektorom svoej glavnoj zadachi, neobhodimo otdelit' arhitekturu, t.e. opredelenie produkta v vospriyatii pol'zovatelya, ot ego razrabotki. Arhitektura i razrabotka opredelyayut chetkuyu gran' mezhdu raznymi chastyami zadachi proektirovaniya, i po kazhduyu storonu etoj grani lezhit bol'shaya rabota. Rekursivnost' arhitektury. V ochen' bol'shih proektah odnomu cheloveku ne spravit'sya so vsej arhitekturoj, dazhe esli on izbavlen ot vseh zabot, svyazannyh s razrabotkoj. Poetomu glavnyj arhitektor sistemy dolzhen razbit' celoe na podsistemy. Granicy podsistem dolzhny byt' provedeny tak, chtoby interfejsy mezhdu nimi byli minimal'ny i legche vsego strogo opredelyaemy. Togda u kazhdoj chasti mozhet byt' svoj arhitektor, podchinyayushchijsya glavnomu arhitektoru sistemy v otnoshenii arhitektury. Ochevidno, pri neobhodimosti etot process mozhet byt' prodolzhen rekursivno. Segodnya ya ubezhden bolee chem kogda-libo. Konceptual'naya celostnost' yavlyaetsya vazhnejshim usloviem kachestva produkta. Nalichie sistemnogo arhitektora est' vazhnejshij shag v napravlenii konceptual'noj celostnosti. |ti principy ni v koej mere ne ogranichivayutsya razrabotkoj programmnogo obespecheniya, a spravedlivy pri proektirovanii lyuboj slozhnoj konstrukcii, bud' to komp'yuter, samolet, strategicheskaya oboronnaya iniciativa ili sistema global'noj navigacii. Posle prepodavaniya v bolee chem 20 laboratoriyah razrabotki programmnogo obespecheniya ya stal nastaivat', chtoby gruppy uchashchihsya, dazhe iz chetyreh chelovek, vybirali menedzhera i otdel'no - arhitektora. Razdelenie funkcij v takih malen'kih gruppah mozhet pokazat'sya neskol'ko chrezmernym trebovaniem, no, po moim nablyudeniyam, eto opravdano i sposobstvuet dostizheniyu uspeha. |ffekt vtoroj sistemy: funkcional'nost' i ugadyvanie chastoty Proektirovanie dlya bol'shih grupp pol'zovatelej. Odnim iz posledstvij revolyucii, proizvedennoj personal'nymi komp'yuterami, yavlyaetsya vse vozrastayushchee, po krajnej mere v oblasti obrabotki delovyh dannyh, vytesnenie zakaznyh programm korobochnymi programmnymi paketami. Bolee togo, standartnye programmnye pakety prodayutsya sotnyami tysyach i dazhe millionami ekzemplyarov. Sistemnye arhitektory programm, postavlyaemyh vmeste s mashinoj, vsegda dolzhny byli sozdavat' proekt, orientirovannyj na bol'shuyu amorfnuyu massu pol'zovatelej, a ne na otdel'noe opredelennoe prilozhenie v odnoj kompanii. Teper' takaya zadacha vstaet pered ochen' mnogimi arhitektorami. Paradoks sostoit v tom, chto sproektirovat' instrument obshchego naznacheniya, nezheli specializirovannyj, gorazdo trudnee imenno potomu, chto nuzhno pridat' ves razlichayushchimsya potrebnostyam raznyh pol'zovatelej. V pogone za funkcional'nost'yu. Arhitektor instrumenta obshchego naznacheniya, takogo, naprimer, kak elektronnaya tablica ili tekstovyj redaktor, podverzhen sil'nomu soblaznu peregruzit' produkt funkciyami predel'noj poleznosti cenoj snizheniya proizvoditel'nosti i dazhe prostoty ispol'zovaniya. Vnachale privlekatel'nost' predlagaemyh vozmozhnostej kazhetsya ochevidnoj. Rasplata proizvoditel'nost'yu stanovitsya ochevidnoj lish' pri sistemnom testirovanii. Utrata prostoty ispol'zovaniya kovarno podkradyvaetsya po mere togo, kak nebol'shimi porciyami dobavlyayutsya novye funkcii, a rukovodstva pol'zovatelya vse bolee razbuhayut.1 Soblazn osobenno velik v otnoshenii dolgozhivushchih massovyh produktov, razvivavshihsya na protyazhenii ryada pokolenij. Milliony pokupatelej trebuyut soten novyh vozmozhnostej. Vsyakaya pros'ba svidetel'stvuet o nalichii sprosa na rynke. CHasto arhitektor pervonachal'noj sistemy uzhe ushel v pohod za novoj slavoj, i arhitektura okazalas' v rukah lyudej s men'shim opytom vzveshennogo predstavleniya obshchih interesov pol'zovatelej. V nedavnej recenzii na Microsoft Word 6.0 skazano: "Perepolnen vozmozhnostyami; obnovlenie zamedleno peregruzhennost'yu... Krome togo, Word 6.0 zanimaet mnogo mesta i medlenno rabotaet." S neudovol'stviem otmechaetsya, chto Word 6.0 zanimaet 4 Mbajt pamyati i soobshchaetsya, chto iz-za bogatyh dopolnitel'nyh funkcional'nyh vozmozhnostej "dazhe Macintosh IIfx edva prigoden dlya vypolneniya Word 6".2 Opredelenie gruppy pol'zovatelej. CHem krupnee i amorfnee gruppa predpolagaemyh pol'zovatelej, tem bolee neobhodimo yavno ee opredelit', esli vy namereny dostich' konceptual'noj celostnosti. U kazhdogo chlena gruppy proektirovshchikov navernyaka est' neyavnyj myslennyj obraz pol'zovatelya, i vse obrazy budut otlichat'sya drug ot druga. Poskol'ku predstavlenie arhitektora o pol'zovatele yavno ili podsoznatel'no okazyvaet vliyanie na vse arhitekturnye resheniya, vazhno, chtoby komanda proektirovshchikov prishla k edinomu obshchemu obrazu. Dlya etogo neobhodimo sostavit' spisok priznakov predpolagaemyh pol'zovatelej, ukazav v nem: - kto oni takie, - chto im nuzhno, - chto, po ih mneniyu, im nuzhno, - chego oni hotyat. CHastoty. Dlya lyubogo programmnogo produkta kazhdaya harakteristika pol'zovatelya predstavlyaet soboj raspredelenie so mnozhestvom vozmozhnyh znachenij i sootvetstvuyushchimi chastotami. Kak arhitektoru poluchit' eti chastoty? Izuchenie etoj slabo ocherchennoj populyacii predstavlyaetsya somnitel'nym i dorogostoyashchim zanyatiem.3 S godami ya prishel k ubezhdeniyu, chto arhitektor dolzhen ugadat' ili, esli vam bol'she nravitsya, postulirovat' polnyj nabor priznakov i znachenij vmeste s chastotami dlya sozdaniya polnogo, yavnogo i obshchego dlya vseh opisaniya gruppy pol'zovatelej. Takaya neprivlekatel'naya procedura imeet ryad poleznyh posledstvij. Vo-pervyh, pri stremlenii tochno ugadat' chastoty arhitektor vynuzhden ochen' tshchatel'no obdumat', kakova vozmozhnaya gruppa pol'zovatelej. Vo-vtoryh, pri fiksacii chastot voznikaet obsuzhdenie, poleznoe dlya vseh uchastnikov i vyyavlyayushchee razlichiya v obrazah pol'zovatelya, imeyushchihsya u raznyh proektirovshchikov. V-tret'ih, yavnoe prisvoenie chastot sodejstvuyut ponimaniyu togo, kakie resheniya kakimi svojstvami gruppy pol'zovatelej obuslovleny. Dazhe takoj neformal'nyj analiz chuvstvitel'nosti prinosit pol'zu. Kogda obnaruzhivaetsya, chto ochen' vazhnye resheniya zavisyat ot nekotoryh specificheskih predpolozhenij, okazyvaetsya umestnym poluchit' bolee tochnye chislennye ocenki. (Razrabotannaya Dzheffom Konklinom (Jeff Conklin) sistema pozvolyaet formal'no i tochno proslezhivat' prinyatie proektnyh reshenij i dokumentirovat' ih osnovaniya.4 Mne ne prihodilos' eyu pol'zovat'sya, no dumayu, chto ona dolzhna byt' ochen' polezna.) Podvodya itogi: ustanovite predpolozhitel'nye priznaki gruppy pol'zovatelej. Gorazdo luchshe oshibat'sya, no vyrazhat'sya yasno, chem vyrazhat'sya tumanno. Kak naschet effekta vtoroj sistemy? Odin nablyudatel'nyj uchenyj zametil, chto "Mificheskij cheloveko-mesyac" rekomendoval na sluchaj neudachi dlya vsyakoj novoj sistemy planirovat' postavku vtoroj versii (sm. glava 11), kotoraya v glave 5 harakterizuetsya kak tayashchaya naibol'shie opasnosti. YA vynuzhden byl priznat', chto on menya "pojmal". Protivorechie skoree lingvisticheskoe, chem real'noe. "Vtoraya" sistema, opisyvaemaya v glave 5, - eto vtoraya sistema, vypuskaemaya v razvitie predydushchej s privlecheniem dopolnitel'nyh funkcij i ukrashenij. "Vtoraya" sistema v glave 11 - eto vtoraya popytka razrabotki pervoj vypuskaemoj sistemy. Ona razrabatyvaetsya v usloviyah vseh ogranichenij, nakladyvaemyh grafikom, sposobnostyami i nevedeniem, harakternymi dlya novyh proektov - ogranichenij, navyazyvayushchih disciplinu umerennosti. Triumf interfejsa WIMP Odnim iz naibolee vpechatlyayushchih yavlenij v programmirovanii za poslednie dvadcat' let byl triumf interfejsa, sostoyashchego iz okon, znachkov, menyu i ukazatelej (Windows, Icons, Menus, Pointers - WIMP). Segodnya on nastol'ko shiroko izvesten, chto ne trebuet opisaniya. Vpervye etu ideyu predstavili publike Dug |nglebart (Doug Englebart) s gruppoj kolleg iz Stendfordskogo nauchno- issledovatel'skogo instituta na Ob容dinennoj komp'yuternoj konferencii Zapada v 1968 godu.5 Ottuda idei perekochevali v issledovatel'skij centr Xerox v Palo- Al'to, gde oni realizovalis' na personal'noj rabochej stancii Alto, razrabotannoj Bobom Tejlorom (Bob Taylor) s sotrudnikami. Ih podhvatil Stiv Dzhobs dlya komp'yutera Apple Lisa - slishkom medlennogo dlya osushchestvleniya svoih voshititel'nyh koncepcij prostoty ispol'zovaniya. |ti koncepcii Dzhobs zatem voplotil v kommercheski uspeshnom Apple Macintosh v 1985 godu. Pozdnee oni byli prinyaty v Microsoft Windows dlya IBM PC i ego klonov. Moj primer budet bazirovat'sya na versii dlya Maka.6 Konceptual'naya celostnost' cherez metaforu. WIMP yavlyaetsya otlichnym primerom pol'zovatel'skogo interfejsa, obladayushchego konceptual'noj celostnost'yu, dostigaemoj prinyatiem znakomoj ideal'noj modeli - metafory rabochego stola, i ee tshchatel'nogo posledovatel'nogo razvitiya dlya ispol'zovaniya voploshcheniya v komp'yuternoj grafike. Naprimer, iz prinyatoj metafory neposredstvenno sleduet slozhno osushchestvimoe, no pravil'noe reshenie o perekrytii okon vmesto raspolozheniya ih odno ryadom s drugim. Vozmozhnost' menyat' razmer i formu okon yavlyaetsya posledovatel'nym rasshireniem, dayushchim pol'zovatelyu novye vozmozhnosti, obespechivaemye nositelem - komp'yuternoj grafikoj. U real'nyh bumag na stole nel'zya tak zhe legko menyat' razmer i formu. Buksirovka neposredstvenno vytekaet iz metafory; vybor znachkov s pomoshch'yu kursora yavlyaetsya pryamoj analogiej zahvata predmetov rukoj. Znachki i vlozhennye papki yavlyayutsya tochnymi analogami dokumentov na stole, kak i musornaya korzina. Idei vyrezaniya, kopirovaniya i vstavki tochno imitiruyut operacii, kotorye my obychno osushchestvlyaem s dokumentami na stole. Sledovanie metafore stol' bukval'no, a razvitie nastol'ko posledovatel'no, chto pol'zovatelej-novichkov reshitel'no korobit, kogda peretaskivanie znachka diskety v musornuyu korzinu privodit k izvlecheniyu diskety iz diskovoda. Esli by interfejs ne byl stol' edinoobrazno posledovatel'nym, eta (dovol'no nepriyatnaya) neposledovatel'nost' tak by ne razdrazhala. V kakih mestah interfejs WIMP vynuzhden daleko otojti ot metafory rabochego stola? Naibolee zametny dva otlichiya: menyu i rabota odnoj rukoj. Na real'nom rabochem stole s dokumentami osushchestvlyayut dejstviya, a ne prikazyvayut komu-to ili chemu-to osushchestvit' ih. A kogda komu-to daetsya ukazanie sovershit' dejstvie, komanda obychno ne vybiraetsya iz spiska, a pis'menno ili ustno podaetsya v vide glagola v povelitel'nom naklonenii: "pozhalujsta, podshejte eto v papku", "pozhalujsta, najdite predydushchie pis'ma" ili "pozhalujsta, peredajte eto Meri dlya prinyatiya mer". K sozhaleniyu, nadezhnaya interpretaciya komand v svobodnom formate na anglijskom yazyke, bud' oni v ustnom ili pis'mennom vide, nahoditsya za predelami nashih segodnyashnih vozmozhnostej. Poetomu proektirovshchiki interfejsa na dva shaga otoshli ot neposredstvennyh dejstvij pol'zovatelya s dokumentami. Oni mudro vzyali imevshijsya na obychnom rabochem stole obrazec vybora komand - otpechatannuyu "soprovodilovku", v kotoroj pol'zovatel' proizvodit vybor iz ogranichennogo menyu komand so standartnoj semantikoj. |tu ideyu oni prevratili v gorizontal'noe menyu s vertikal'no opuskayushchimisya podmenyu. Podacha komand i problema dvuh kursorov. Komandy yavlyayutsya povelitel'nymi predlozheniyami, v nih vsegda est' i obychno imeetsya pryamoe dopolnenie. Dlya lyubogo dejstviya nuzhno zadat' glagol i sushchestvitel'noe. Metafora ukazaniya govorit, chto dlya odnovremennogo zadaniya dvuh predmetov nuzhno imet' na ekrane dva raznyh kursora, upravlyaemyh svoimi myshami, odnoj - v pravoj ruke, drugoj - v levoj. V konce koncov, na fizicheskom stole my obychno rabotaem dvumya rukami. (Odnako odna ruka chasto priderzhivaet veshchi na meste, chto na komp'yuternom rabochem stole proishodit po umolchaniyu.) Mozg, konechno, prisposoblen k dejstviyam dvumya rukami: my sistematicheski ispol'zuem dve ruki pri vvode s klaviatury, ezde na avtomobile, prigotovlenii pishchi. Uvy, i odna mysh' byla bol'shim dostizheniem dlya izgotovitelej komp'yuterov. Kommercheskih sistem, podderzhivayushchih odnovremennye dejstviya s dvumya kursorami myshej, po odnomu dlya kazhdoj ruki, net.7 Razrabotchiki interfejsa smirilis' s realiyami i sdelali proekt dlya odnoj myshi, prinyav sintaksicheskoe soglashenie, chto pervym otmechaetsya (vybiraetsya) sushchestvitel'noe. Zatem ukazyvayut na glagol, punkt menyu. Pri etom v znachitel'noj mere utrachivaetsya prostota ispol'zovaniya. Kogda ya nablyudayu za pol'zovatelyami, prosmatrivayu videozapis' ih dejstvij ili zaregistrirovannye komp'yuterom peremeshcheniya kursora, to vsegda obrashchayu vnimanie na to, chto odnomu kursoru prihoditsya vypolnyat' rabotu dvuh: vybrat' ob容kt v okne na rabochem stole; vybrat' glagol v menyu; najti drugoj ob容kt ili vnov' otyskat' prezhnij; snova opustit' menyu (chasto, to zhe samoe) i vybrat' glagol. Kursor mechetsya vzad-vpered, ot prostranstva dannyh k prostranstvu menyu, vsyakij raz teryaya poleznuyu informaciyu o tom, gde on nahodilsya v etom prostranstve v proshlyj raz - v celom, neeffektivnyj process. Velikolepnoe reshenie. Dazhe esli by elektronika i programmy mogli bez truda rabotat' odnovremenno s dvumya aktivnymi kursorami, ostayutsya slozhnosti s topologiej prostranstva. Na rabochem stole v metafore WIMP v dejstvitel'nosti est' pishushchaya mashinka, i v fizicheskom prostranstve real'nogo stola neobhodimo pomestit' real'nuyu klaviaturu. Klaviatura plyus dva kovrika dlya myshej zajmut nemaluyu chast' prostranstva v predelah dosyagaemosti ruk. Tak pochemu by problemu klaviatury ne obratit' sebe na pol'zu, pochemu ne ispol'zovat' obe ruki - odnoj rukoj zadavaya na klaviature glagoly, a drugoj rukoj vybiraya sushchestvitel'nye s pomoshch'yu myshi? Teper' kursor budet ostavat'sya v prostranstve dannyh i pol'zovat'sya tem, chto posledovatel'nye sushchestvitel'nye vybirayutsya blizko odno ot drugogo. Real'naya effektivnost', real'no bol'shie vozmozhnosti pol'zovatelya. Moshchnost' funkcij ili prostota ispol'zovaniya. Odnako pri takom reshenii teryaetsya to, chto delaet ispol'zovanie menyu takim prostym dlya novichkov: menyu predstavlyaet spisok al'ternativnyh glagolov, dopustimyh v kazhdom konkretnom sostoyanii. Mozhno kupit' korobku, prinesti ee domoj i nachat' rabotat', ne chitayu instrukciyu, znaya lish', dlya chego ona kuplena i eksperimentiruya s razlichnymi glagolami v menyu. Odna iz slozhnejshih zadach, stoyashchih pered arhitektorami - eto najti sootnoshenie mezhdu moshchnost'yu funkcij i prostotoj ispol'zovaniya. Nuzhno li proektirovat' programmu v raschete na novichka i sluchajnogo pol'zovatelya ili stroit' ee s moshchnymi funkciyami dlya professionala? Ideal'noe reshenie - obespechit' i to, i drugoe konceptual'no soglasovannym obrazom, chto dostigaetsya pri pomoshchi interfejsa WIMP. U chasto ispol'zuemyh glagolov menyu est' klavishnye ekvivalenty iz odnoj klavishi + komandnoj klavishi, kotorye obychno legko vvesti levoj rukoj odnim akkordom. Naprimer, v Make komandnaya klavisha (^) nahoditsya kak raz pod klavishami Z i X, poetomu samye chastye dejstviya kodiruyutsya kak ^z, ^x, ^c, ^v, ^s. Postepennyj perehod ot novichka k opytnomu pol'zovatelyu. Takaya dvojnaya sistema zadaniya komandnyh glagolov ne tol'ko otvechaet potrebnosti novichka v legkom obuchenii i potrebnosti opytnogo pol'zovatelya v effektivnom ispol'zovanii, no i pozvolyaet kazhdomu pol'zovatelyu plavno perejti iz odnogo rezhima v drugoj. Bukvennye oboznacheniya, nazyvaemye klavishami sokrashchennogo nabora, pokazyvayutsya v menyu ryadom s glagolami, poetomu v sluchae neuverennosti pol'zovatel' mozhet raskryt' menyu, chtoby proverit' bukvennyj ekvivalent, vmesto vybora punkta menyu. Kazhdyj novichok zapominaet snachala sokrashchennyj nabor dlya svoih chastyh operacij. On mozhet poprobovat' lyuboe sokrashchenie, v kotorom ne uveren, poskol'ku ^z otmenyaet lyuboe oshibochnoe odinochnoe dejstvie. S drugoj storony, on mozhet spravit'sya v menyu otnositel'no dopustimyh komand. Novichki ochen' chasto opuskayut menyu, opytnye pol'zovateli - redko, a tem, kotorye nahodyatsya poseredine, lish' ot sluchaya k sluchayu ponadobitsya vybirat' iz menyu, poskol'ku oni uzhe znayut klavishi, kotorye vyzyvayut bol'shinstvo osushchestvlyaemyh imi operacij. My, proektirovshchiki programmnogo obespecheniya, slishkom privykli k etomu interfejsu, chtoby ocenit' ego elegantnost' i moshch'. Uspeh pryamogo vklyucheniya kak sredstva navyazyvaniya arhitektury. Interfejs Maka primechatelen eshche v odnom otnoshenii. Bez vsyakogo prinuzhdeniya razrabotchiki sdelali ego standartom dlya raznyh prilozhenij, vklyuchaya bol'shinstvo iz teh, kotorye opisany storonnimi organizaciyami. Poetomu pol'zovatel' priobretaet konceptual'nuyu soglasovannost' na urovne interfejsa ne tol'ko dlya programm, postavlyaemyh vmeste s mashinoj, no i dlya vseh drugih prilozhenij. |tot podvig sozdateli Maka osushchestvili, vstroiv interfejs v PZU, v rezul'tate chego razrabotchikam proshche i bystree pol'zovat'sya sushchestvuyushchim, chem sozdavat' svoi idiosinkrazicheskie interfejsy. |to estestvennoe stremlenie k edinoobraziyu vozobladalo nastol'ko shiroko, chto stalo standartom de-fakto. Estestvennye stremleniya byli podderzhany polnoj priverzhennost'yu so storony menedzherov i sushchestvennym prinuzhdeniem so storony Apple. Nezavisimye recenzenty v zhurnalah, ponyav ogromnoe znachenie mezhprogrammnoj konceptual'noj celostnosti, takzhe podkrepili estestvennye stremleniya, bezzhalostno