Те пишат правилните неща

Тъй като 120-тоновата космическа совалка се намира заобиколена от почти 4 милиона паунда ракетно гориво, издишвайки вредни изпарения, видимо нетърпеливи да се противопоставят на гравитацията, нейните бордови компютри поемат командването.

Те пишат правилните неща

Правилните неща започват при Т-минус 31 секунди.

Тъй като 120-тоновата космическа совалка се намира заобиколена от почти 4 милиона паунда ракетно гориво, издишвайки вредни изпарения, видимо нетърпеливи да се противопоставят на гравитацията, нейните бордови компютри поемат командването. Четири идентични машини, работещи с идентичен софтуер, извличат информация от хиляди сензори, вземат стотици милисекундни решения, гласуват всяко решение, проверяват помежду си 250 пъти в секунда. Пети компютър с различен софтуер е готов да поеме контрола в случай на неизправност на останалите четири.



При Т-минус 6,6 секунди, ако налягането, помпите и температурите са номинални, компютрите издават заповед да запалят главните двигатели на совалката-всеки от трите двигателя се задейства с точност 160 милисекунди, като се изливат тонове супер охладено течно гориво в горивните камери, корабът се люлее на стартовата си площадка, придържана към земята само с болтове. Тъй като основните двигатели достигат тяга от един милион паунда, техните отработили газове се затягат в сини диаманти на пламъка.

Още от Чарлз Фишман

  • Учените откриват най -старото, най -голямото съществуващо водно тяло - в космоса
  • Какво е да си архитект на Walmart
  • Пътят към устойчивостта: Как ненаучните иновации спасиха Марлин Стил

Тогава и само тогава при Т-минус нула секунди, ако компютрите се убедят, че двигателите работят вярно, те дават заповед да запалят твърдите ракетни ускорители. За по -малко от една секунда те постигат 6,6 милиона паунда тяга. И точно в същия този момент компютрите заповядват взривните болтове да избухнат и 4,5 милиона паунда космически кораби се издигат величествено от стартовата площадка.



Това е страхотен дисплей на хардуерна сила. Но никой човек не натиска бутон, за да го осъществи, нито един астронавт жокей с джойстик, който да уреди совалката в орбита.



Правилното е софтуерът. Софтуерът дава заповеди за кардана на основните двигатели, изпълнявайки драматичния коремен ход, който совалката прави скоро след като изчисти кулата. Софтуерът заглушава двигателите, за да се увери, че корабът не се ускорява твърде бързо. Той следи къде се намира совалката, разпорежда солидните ракетни ускорители да отпаднат, прави малки корекции на курса и след около 10 минути насочва совалката на орбита на повече от 100 мили нагоре. Когато софтуерът е доволен от позицията на совалката в космоса, той нарежда на основните двигатели да се изключат - започва безтегловността и всичко започва да се носи.

Но колко много работа върши софтуерът, не е това, което го прави забележителен. Това, което го прави забележително, е колко добре работи софтуерът. Този софтуер никога не се срива. Никога не трябва да се рестартира. Този софтуер е без грешки. Той е съвършен, толкова съвършен, колкото са постигнали човешките същества. Помислете за тази статистика: последните три версии на програмата-всеки 420 000 реда дълги-имаше само по една грешка. Последните 11 версии на този софтуер имаха общо 17 грешки. Търговските програми с еквивалентна сложност биха имали 5000 грешки.

Този софтуер е дело на 260 жени и мъже, базирани в анонимна офис сграда отсреща от космическия център Джонсън в Клиър Лейк, Тексас, югоизточно от Хюстън. Те работят за бордовата совалка, клон на подразделението за системи за космически мисии на Корпус Локхийд, и тяхната доблест е световно известна: софтуерната група на совалките е една от само четирите екипировки в света, които печелят желаното ниво 5 на класацията Федералното правителство Институт за софтуерно инженерство (SEI) е мярка за изтънчеността и надеждността на начина, по който вършат работата си. Всъщност SEI базира своите стандарти отчасти от наблюдение на бордовата совалка, която върши работата си.



Групата пише толкова добър софтуер, защото такъв трябва да бъде. Всеки път, когато задейства совалката, техният софтуер контролира оборудване на стойност 4 милиарда долара, живота на половин дузина астронавти и мечтите на нацията. Дори и най -малката грешка в космоса може да има огромни последици: орбиталната космическа совалка се движи със 17 500 мили в час; грешка, която причинява проблем с времето само за две трети от секундата, поставя космическата совалка на три мили от курса.

НАСА знае колко добър трябва да бъде софтуерът. Преди всеки полет Тед Келър, старши технически мениджър на бордовата совалка, лети до Флорида, където подписва документ, удостоверяващ, че софтуерът няма да застраши совалката. Ако Келер не може да отиде, официалната последователност диктува кой може да се подпише на негово място.

Бил Пейт, който е работил върху софтуера за космически полети през последните 22 години, [/url] казва, че групата разбира залозите: Ако софтуерът не е перфектен, някои от хората, с които ходим на срещи, може да умрат.

Софтуерът е всичко. (Също е гадно.)



В историята на човешките технологии нищо не е станало толкова важно, колкото софтуерът.

Практически всичко - от международната парична система и големите електроцентрали до блендери и микровълнови фурни - работи със софтуер. В офис сградите асансьорите, осветлението, водата, климатикът се контролират от софтуер. В автомобилите трансмисията, времето за запалване, въздушната възглавница, дори ключалките на вратите се контролират от софтуер. В повечето градове и светофарите. Почти всяка писмена комуникация, която е по -сложна от пощенска картичка, зависи от софтуера; всеки телефонен разговор и всяка доставка за нощувка изискват това.

Софтуерът е всичко. Също е гадно.

Това е като предшумерската цивилизация, казва Брад Кокс, който е написал софтуера за компютъра Стив Джобс NeXT и е професор в университета Джордж Мейсън. Начинът, по който изграждаме софтуер, е на етап лов-събирач.

Джон Мънсън, софтуерен инженер и професор по компютърни науки в университета в Айдахо, не е чак толкова щедър. Пещерно изкуство, казва той. Примитивно е. Предполагаме, че преподаваме компютърни науки. Тук изобщо няма наука.

Софтуерът може да захранва постиндустриалния свят, но създаването на софтуер остава прединдустриална търговия. Според проучванията на SEI, близо 70% от софтуерните организации са заседнали в първите две нива на мащаба на изтънчеността на SEI: хаос и малко по -добър от хаоса. Ситуацията е толкова тежка, че няколко пионери в софтуера от компании като Microsoft се откъснаха, за да преподават изкуството на създаването на софтуер (виж Drop and Code me Twenty!)

Марк Полк, старши член на техническата SEI, казва, че успехът на софтуера прави неговите слабости още по -драматични. Ние разработихме софтуерни продукти, които са изключително сложни и изключително мощни. Ние сме критично зависими от това, казва Полк. И все пак всички се оплакват колко лош е софтуерът с всички дефекти. Ако сте купили кола с 5000 дефекта, ще бъдете много разстроени.

В този софтуерен блат бордовата совалка се откроява като изключение. Преди десет години совалката се смяташе за световна класа. Оттогава тя намали собствения си процент грешки с 90%.

За да бъде толкова добра, бордовата совалка трябва да бъде много различна-антитезата на софтуерните кодери за хокей на пица и ролери за цяла нощ, които завладяват общественото въображение. За да бъде толкова добра, бордовата совалка трябва да бъде много обикновена-неразличима от всяко фокусирано, дисциплинирано и методично управлявано творческо предприятие.

Всъщност групата предлага набор от учебници, които се прилагат еднакво за програмистите, по -специално, и за производителите като цяло. Поглед към културата, която са изградили и процеса, който са усъвършенствали, показва какво трябва да стане писането на софтуер, за да може софтуерът да реализира обещанията си, и илюстрира какво може да направи почти всяка екипна операция, за да повиши производителността си, за да постигне почти перфектни резултати .

Софтуер за разрастващи се

Доставката на ада продължи днес. Смелете, смилайте, смилайте. Никога няма да успеем Казах ли вече това? Защо винаги подценяваме нашите графици за доставка? Просто не разбирам. В 9:30 ч .; навън в 23:30 Dominos за вечеря. И три диетични кока -кола.

Не, това не е бордовата совалка. Това е Microserf на Douglas Coupland, истински измислен разказ за живота в софтуерната бърза лента. И това е доминиращият образ на света за разработка на софтуер: Gen-Xers със спортни тениски и разсеяни погледи, притискащи твърде много героичен код за твърде малко време; ролки и планински велосипеди, прибрани в ъглите; кутии за пица и чаши Starbucks, изхвърлени в конферентни зали; дуелни мелодии от Smashing Pumpkins, Alanis Morrisette and the Fugees. Светът му стана известен, романтичен и дори неизбежен чрез истории от Sun Microsystems, Microsoft и Netscape.

имейл с въпрос за първия работен ден

Това не е историята на бордовата совалка. Техните квартири са проучване на пешеходци с бели якички. Най -забележителното е колко обикновени изглеждат. Освен от време на време сувенири, можете да сте в офисите на всяка малка компания или правителствена агенция. Всеки има свой собствен малък офис, а офисите имат бюра, компютри и оскъдни лични артефакти. Хората носят умерено облечени дрехи за работа, спретнати, но нищо крещящо, със сигурност нищо кафяво.

Това е строго място от 8 до 5-има късни нощи, но те са изключение. Програмистите са интензивни, но сдържани. Много от тях са вложили години на работа или за IBM (която притежаваше совалката до 1994 г.), или директно върху софтуера на совалката. Те са възрастни, със съпрузи и деца и живеят извън тяхната забележителна софтуерна програма.

Това е културата: бордовата совалка произвежда софтуер за възрастни и начина, по който го правят, е като възрастни. Може да не е секси, може да не е кодиращо его-пътуване-но това е бъдещето на софтуера. Когато сте готови да направите следващата стъпка - когато трябва да напишете перфектен софтуер вместо софтуер, който е достатъчно добър - тогава е време да пораснете.

48 -годишният Тед Келер, старши технически мениджър на групата, изглежда и звучи като директор на малка частна гимназия. Работата на Keller е да гарантира, че софтуерът ще бъде доставен навреме, с всичките му възможности, без да се вземат предвид битките с трева. Той е компактен, плешив мъж, малко официален и упорит, качества, които всеки астронавт би намерил за успокояващи. Той има нежно, шантаво чувство за хумор, не толкова с външни лица, колкото с тълпата си.

Излиза на среща между членове на софтуерната група и техните колеги от НАСА. Провежда се в малка конферентна зала, препълнена с 22 души и проектор. Няколко пъти, от задната част на стаята, Келер отправя груба забележка относно скоростта на доставяне на код или подробностите за някои спецификации и стаята изсветлява от смях.

Иначе едночасовата среща е трезва и разкриваща, кратък прозорец за културата. От една страна, 12 от 22 -те души в стаята са жени, много от тях висши мениджъри или висш технически персонал. Бордовата совалка със своята стабилност и професионализъм изглежда особено привлекателна за жените програмисти.

От друга страна, това е упражнение в ред, подробности и методично повторение. Срещата е класическо представление на НАСА - репетиция за почти идентична среща след няколко седмици. Той се състои в преминаване през огромен пакет от данни и графики, които описват напредъка и състоянието на софтуера ред по ред. С изключение на случайните страни на Келер, тонът е делови, почти формален, изгледът - графиките мигат толкова бързо, колкото могат да бъдат прочетени, размазване на акроними, графики и диаграми.

Това, което се случва тук, е видът работа с гайки и болтове, който определя стремежа към групово усъвършенстване-стремеж, който е агресивно нетолерантен към задвижвани от егото горещи удари. В културата на совалката няма програмисти със суперзвезди. Целият подход при разработването на софтуер е умишлено проектиран да не разчита на конкретно лице.

nba финали 2019 пряк поток безплатно

Още от този брой


  • Защо совалката е с лява ръка
  • Той превръща идеите в компании - с нетна скорост
  • Drop And Code Me Twenty
  • Какво идва след успеха?
  • Вирусът на маркетинга

Културата също е непоносима към креативността, индивидуалното кодиране процъфтява и стилове, които са подписът на софтуера за цяла нощ. Хората се питат дали този процес не задушава творчеството? Трябва да направите точно това, което се казва в ръководството, и имате някой, който гледа през рамото ви, казва Келер. Отговорът е, да, процесът задушава творчеството.

И това е точно въпросът - не можете да накарате хората да работят на свободна практика чрез софтуерен код, който лети на космически кораб, а след това, с живота на хората в зависимост от него, се опитайте да го закърпите, след като той е в орбита. Хюстън, имаме проблем, може да стане добър филм; няма начин да се пише софтуер. Хората трябва да насочат творчеството си към промяна на процеса, казва Келер, без да променя софтуера.

Тесните ограничения, които груповите практики могат да направят песента на сирената на света на софтуера за рокендрол трудна за устояване. 34 -годишният Куин Ларсън е работил върху софтуер за совалки в продължение на седем години, когато напусна миналия януари, за да отиде да работи за Micron Technology в Бойс, Айдахо, автоматизирайки производството на чипове памет Microns.

В Micron Ларсън получи задачата да автоматизира триони, които изрязват готовите пластини с чипове до правилния размер. Прецакайте програмата, вие унищожавате ценните вафли.

От мен зависи да реша какво да правя, казва Ларсън. Нямаше срещи, нямаше записване. Той имаше свобода; това беше истински удар. Но според начина на мислене на Ларсън, културата не се фокусира върху правилните неща. Скоростта там беше най -голямото нещо, казва той. Инженерите биха казали, че това са нашите основни приоритети и трябва да ги постигнем възможно най -бързо. Но впечатлението, което Ларсън направи, беше, че инженерите не изглеждаха твърде загрижени за това колко добре работи готовият софтуер. По принцип те искаха бърз софтуер - просто го извадете.

Ларсън започна обратно в совалката в средата на август. Хората тук са само от най -висок калибър, каза той още първия си ден в Чисто езеро.

Това е Процесът

Как пишат правилните неща?

Отговорът е, че това е процесът. Най -важното творение на групата не е перфектният софтуер, който те пишат - процесът, който те са измислили, пише перфектния софтуер.

Това е процесът, който им позволява да живеят нормален живот, да определят сроковете, които действително спазват, да спазват бюджета, да доставят софтуер, който изпълнява точно това, което обещава. Това е процесът, който определя какво знаят тези кодери в равнините на югоизточното предградие на Хюстън, за които всички останали в света на софтуера все още търсят. Това е процесът, който предлага шаблон за всяко творческо предприятие, което търси метод за производство на постоянно - и постоянно подобряващо се - качество.

Процесът може да се сведе до четири прости предложения:

1. Продуктът е толкова добър, колкото планът за продукта.В бордовата совалка група, около една трета от процеса на писане на софтуер се случва, преди някой да напише ред код. НАСА и групата Lockheed Martin се договарят в най -малки подробности за всичко, което новият код трябва да направи - и те предават това разбиране на хартия, с вида специфичност и прецизност, които обикновено се срещат в чертежите. Нищо в спецификациите не се променя без съгласие и разбиране от двете страни. И нито един кодер не променя нито един ред код, без спецификациите внимателно да очертаят промяната. Вземете надстройката на софтуера, за да позволите на совалката да се движи с глобални сателити за позициониране, промяна, която включва само 1,5% от програмата, или 6 366 реда код. Спецификациите за тази промяна обхващат 2500 страници, по -дебел от телефонния указател. Спецификациите за текущата програма запълват 30 тома и имат 40 000 страници.

Нашите изисквания са почти псевдокод, казва Уилям Р. Прует, който ръководи софтуерния проект за НАСА. Казват, че трябва да направите точно това, направете го точно по този начин, предвид това условие и това обстоятелство.

Само този внимателен процес на проектиране е достатъчен, за да постави организацията на совалките в клас сама по себе си, казва Джон Мънсън от университета в Айдахо. Повечето организации стартират дори големи проекти, без да планират какво трябва да направи софтуерът в подробности, подобни на план. Така че, след като кодерите вече са започнали да пишат програма, клиентът усилено променя дизайна си. Резултатът е хаотично, скъпо програмиране, при което кодът непрекъснато се променя и заразява с грешки, дори когато се проектира.

Повечето хора избират да харчат парите си в грешния край на процеса, казва Мънсън. В съвременната софтуерна среда 80% от цената на софтуера се изразходва, след като софтуерът е написан за първи път - те не се справят правилно от първия път, така че прекарват време да го бичуват. В совалката го правят правилно първия път. И те не променят софтуера, без да променят плана. Ето защо техният софтуер е толкова перфектен.

2. Най -добрата екипна работа е здраво съперничество.В рамките на софтуерната група има подгрупи и субкултури. Но това, което може да бъде разделяща офис политика в други организации, всъщност е критична част от процеса.

Централната група се разделя на два ключови екипа: кодерите - хората, които седят и пишат код - и проверяващите - хората, които се опитват да открият недостатъци в кода. Двата тоалета се отчитат пред отделни шефове и функционират под противоположни заповеди. Предполага се, че групата за разработка предоставя напълно безгрешен код, толкова перфектен, че тестерите изобщо не откриват недостатъци. Предполага се, че тестовата група ще търси кода със сценарии на полети и симулации, които разкриват възможно най -много недостатъци. Резултатът е това, което Том Питърсън нарича приятелски състезателни отношения.

Те се състезават за това кой ще открие грешките, казва Келер. Понякога се бият като котки и кучета. Разработчиците искат да уловят всички свои грешки. Проверяващите се ядосват: „Хей, откажи се! Отнемате ни времето да тестваме софтуера! & Apos;

Разработчиците дори са започнали свои собствени официални проверки на кода в внимателно модерирани сесии, строг тест за четене, който се надяват да обърка тестерите. Проверяващите от своя страна твърдят, че заслужават признание за някои грешки, открити, преди дори да започнат тестването. От гледна точка на групата за проверка, казва Пат Маклелан, старши мениджър, ние сме наясно, че ако няма независима група за проверка, разработчиците биха били склонни да бъдат по -отпуснати. Само присъствието на нашата група ги прави по -внимателни.

Резултатите от това приятелско съперничество: сега совалковата група открива 85% от грешките си преди началото на официалното тестване и 99,9% преди програмата да бъде доставена на НАСА.

шпионски плакат от епохата

3. Базата данни е софтуерната база.Има софтуер. След това има бази данни под софтуера, две огромни бази данни, енциклопедични по своята изчерпателност.

Едната е историята на самия код - с всеки анотиран ред, показващ всеки път, когато е променен, защо е променен, кога е променен, каква е целта на промяната, какви спецификации документи подробно описват промяната. Всичко, което се случва с програмата, се записва в нейната основна история. Родословието на всеки ред код - причината да е такъв - е незабавно достъпно за всички.

Другата база данни-базата данни за грешки-стои като нещо като паметник на начина, по който бордовата совалка извършва своята работа. Тук се записва всяка една грешка, допусната някога по време на писане или работа върху софтуера, с почти 20 години назад. За всяка една от тези грешки базата данни записва кога е била открита грешката; какъв набор от команди разкри грешката; кой го е открил; каква дейност се е извършвала, когато е била открита - тестване, обучение или полет. Той проследява как грешката е въведена в програмата; как грешката успя да се изплъзне покрай филтрите, настроени на всеки етап, за да улови грешки - защо не беше уловена по време на проектирането? по време на инспекциите за развитие? по време на проверката? И накрая, базата данни записва как грешката е коригирана и дали подобни грешки може да са се промъкнали през същите дупки.

Групата е натрупала толкова много данни за това как върши работата си, че е написала софтуерни програми, които моделират процеса на писане на код. Подобно на компютърните модели, предвиждащи времето, кодиращите модели предсказват колко грешки трябва да допусне групата при писането на всяка нова версия на софтуера. Вярно е, че ако кодерите и тестерите открият твърде малко грешки, всеки работи по процеса, докато реалността и прогнозите съвпаднат.

Никога не оставяме нищо, казва Пати Торнтън, старши мениджър. Ние правим точно обратното: оставяме всичко да ни притеснява.

4. Не поправяйте просто грешките - поправете всичко, което позволява грешката на първо място.

Процесът е толкова широко разпространен, че носи вината за всяка грешка - ако има пропуск в софтуера, трябва да има нещо нередно в начина, по който е написан, нещо, което може да бъде коригирано. Всяка грешка, която не е открита на етапа на планиране, е преминала през поне някои проверки. Защо? Има ли нещо нередно в процеса на проверка? Трябва ли да се добави въпрос към контролен списък?

Важното е, че групата избягва да обвинява хората за грешки. Процесът поема вината - и това е процесът, който се анализира, за да се установи защо и как е преодоляна грешка. В същото време отчетността е екипна концепция: никой човек не носи единствена отговорност за писането или проверката на кода. Няма да бъдете наказани за грешки, казва Марджори Зайтер, старши член на техническия персонал. Ако направя грешка и други са прегледали работата ми, тогава не съм сам. Не ме обвиняват за това.

Тед Келер предлага пример за изплащане на подхода, включващ рамото на дистанционното управление на совалките. Ние доставихме софтуер за обучение на екипажа, казва Келер, който позволява на астронавтите да манипулират ръката и да се справят с полезния товар. Когато ръката стигна до определена точка, тя просто спря да се движи.

Софтуерът беше объркан поради грешка в програмирането. Тъй като китката на дистанционната ръка се приближи до пълно завъртане на 360 градуса, грешките в изчисленията накараха софтуера да мисли, че ръката е преминала през пълно завъртане-което софтуерът знаеше, че е неправилно. Проблемът е свързан със закръгляване на отговора на обикновена математическа задача, но разкрива каскада от други проблеми.

Въпреки че това не беше критично, казва Келер, ние се върнахме и попитахме какви други редове код могат да имат точно същия проблем. Те откриха осем такива ситуации в кода и в седем от тях функцията за закръгляване не беше проблем. Един от тях включва рутинно насочване на антена с висока печалба, казва Келер. Това е основната антена. Ако беше развил този проблем, можеше да прекъсне комуникацията със земята в критичен момент. Това е много по -сериозно.

Начинът, по който работи процесът, той не само открива грешки в софтуера. Процесът открива грешки в процеса.

Просто софтуерен проблем

Бомбардировачът В-2 нямаше да лети на първия си полет-но това беше просто софтуерен проблем. Новото летище в Денвър закъсня с отварянето си с милиони долари над бюджета, тъй като системата му за обработка на багаж не работеше както трябва - но това беше просто софтуерен проблем. Тази пролет новата ракета Ariane 5 на Европейската космическа агенция взриви при първото си изстрелване поради малък софтуерен проблем. Големите агенции на федералното правителство - от IRS до Националната метеорологична служба - са обзети от проекти, които закъсняват с години и стотици милиони долари над бюджета, често поради прости софтуерни проблеми. Софтуерът става все по -често срещан и все по -важен, но изглежда не става все по -надежден.

Докато останалият свят се бори с основите, бордовата група совалки все повече се доближава до перфектния софтуер. Разбира се, те имат много предимства пред останалия софтуерен свят. Те имат един продукт: една програма, която лети с един космически кораб. Те разбират отблизо своя софтуер и непрекъснато се запознават с него. Групата има един клиент, един умен. И парите не са критичното ограничение: бюджетът на групите от 35 милиона долара на година е тривиална част от баницата на НАСА, но на база долари на ред това прави групата сред най-скъпите софтуерни организации в страната.

И това е точката: процесът на совалка е толкова краен, стремежът към съвършенство е толкова фокусиран, че разкрива какво е необходимо за постигане на безмилостно изпълнение. Най -важните неща, които прави совалката - внимателно планиране на софтуера предварително, писане на код, докато дизайнът не бъде завършен, не извършване на промени без поддържане на чертежи, водене на напълно точен запис на кода - не са скъпи. Процесът дори не е ракетна наука. Неговата стандартна практика в почти всяка инженерна дисциплина, с изключение на софтуерното инженерство.

Изграден върху стената на конферентна зала, неофициален лозунг на бордовата совалка група улавя същността на запазването на фокуса върху процеса: Колкото по-скоро изостанете, толкова повече време ще трябва да наваксате.

Чарлз Фишман (fish@nando.net) е писател, базиран в Роли, Северна Каролина.