8 Возвращение блудного ковбоя
8
Возвращение блудного ковбоя
Когда я впервые обратился к теме программного обеспечения, чтобы написать о проблеме «кодеров-ковбоев», я даже не представлял себе, какое осиное гнездо потревожу. Кодеры-ковбои — это как раз те обитатели индустрии, которые чернят дисциплину любого рода и с равным презрением отвергают методы, модели и менеджмент. Они скорее уйдут, чем станут сотрудничать. Мысль о необходимости проектирования до начала кодирования вполне может привести их к настоящей клаустрофобии. Моя идея о том, что эти ковбои (в основном, мужчины) могли бы поучиться сотрудничеству у коллег женского пола, вызвала целую бурю протестов. Почти все протестующие были мужчинами. Они обвиняли меня во всем, начиная от дискриминации по половому признаку и заканчивая коммунизмом, поэтому неудивительно, что некоторое время я воздерживался от возврата к этой теме. Но обстоятельства, похоже, вынуждают меня вновь поразмышлять о диких местах в дебрях программирования.
Для начала моя младшая дочь закончила колледж. Церемония выпуска сопровождалась бесчисленными фотовспышками. Я особенно помню, как меня распирало от отцовской гордости, когда ей вручали диплом о получении степени по психологии, а также осознание облегчения от того, что в колледж отправлен последний из целого множества мучительно больших чеков. И я помню речь на церемонии выпуска.
Рассказы о шимпанзе
Речи на выпускных церемониях редко бывают запоминающимися. Обычно они либо ханжеские, либо банальные, либо политические; некоторые особенно ужасные варианты могут обладать всеми тремя характеристиками. Однако новый президент колледжа Уитон (Wheaton) уговорил свою предшественницу Корнел (Cornell) принять его помощь в проводах ее первого выпускного класса. Замечания Карла Сагана (Carl Sagan) были немногословны и полны остроумия и прозорливости. Вдохновленный выпускным классом, лишь вторым по счету, прошедшим четыре года совместного обучения в Уитоне, Саган начал с обсуждения взаимосвязи между полом и поведением. Он сосредоточился на женщинах, мужчинах и том мире, который они создают для себя. Сперва Саган обратил всеобщее внимание на шимпанзе. Безусловно, шимпанзе являются нашими генетическими братьями и сестрами — 99,6 % активных генов шимпанзе и человека совпадают. Естественно, поведение шимпанзе и человека определяется не только генетикой, но в то же время не все решает и обучение. Подобно тому как мы способны, взглянув на своих собственных родителей, рассказать о себе, мы можем узнать что-то о homo sapiense sapiense, если посмотрим на отражение своих родственников-приматов.
Оказавшись в стрессовых условиях густонаселенности, особи шимпанзе мужского пола становятся более агрессивными. Они все больше стремятся к соперничеству, собирая камни для бросания и не подпуская к себе других самцов. Саган рассказал об одном шимпанзе, который, держа в руках камни, столкнулся на своем пути с тихой самкой. Медленно и мягко она раскрывает пальцы его сжатых кулаков, камни падают на землю, и она уходит. Для части самцов этого достаточно, чтобы они могли заняться другими делами, но некоторые этого просто не понимают. Такие самцы медленнее обучаются, поэтому их нужно несколько раз мягко разоружать для того, чтобы им все стало ясно. Это напомнило мне некоторых из знакомых мужчин.
От шимпанзе Саган перешел к людям. Он говорил о широко известных различиях между тем, как играют мальчики и девочки, и о том, что женщины стремятся к сотрудничеству, тогда как мужчины склонны к соперничеству. Он также задавал вопрос о том, стал бы мир более единым, если бы женщины действительно имели равные возможности для получения власти и влияния. Не в виде нескольких сенаторских мест или символических административных должностей, а по-честному — 50 % всего управленческого пирога.
И я подумал, где же был Карл Саган в прошлом году, когда меня осаждали банды программистов-шимпанзе мужского пола за то, что я говорил то же самое. Наверное, им было тесновато от разговоров о совместном кодировании.
Если бы все кодеры-ковбои были героями-одиночками, то они не создавали бы такого количества проблем. У многих из них есть положительные черты. В уединении они могут проявлять головокружительную производительность в работе над отдельными приложениями. Даже один или двое таких программистов, включенных в команду, могут влить в проект живую струю. Если присматривать за их работой над интерфейсами и личными контактами в команде, то ковбои могут привнести разнообразные идеи и подходы, не нарушая целостности всей системы.
К сожалению, ковбои известны тем, что собираются не только на родео и в загонах, но и в больших фирмах, разрабатывающих программные продукты. В них ковбои создают сложное системное программное обеспечение — с акцентом на слове «сложное». Вполне возможно, что срывы рабочих графиков и неработоспособные программы, заполонившие нашу отрасль, связаны с дикими методами программирования, которые практикуют недисциплинированные кодеры-ковбои и те руководители-одиноч-ки, которые их поощряют.
Несомненно, кодеры-ковбои могут обладать творческими способностями. Но это не всегда является ценным. От системного программного обеспечения зависит все остальное, поэтому мы ждем от него безупречной производительности, основывающейся на максимальной надежности. Иногда производительность может быть Достигнута с помощью ковбойской тактики, однако надежность программного обеспечения обычно достигается за счет дисциплины, к которой ковбои относятся с пренебрежением. Для создания кода, который работает не только быстро, но и безошибочно, необходимо в строгой последовательности применять самые лучшие методы разработки программного обеспечения.
Большое количество ковбоев означает большое количество строк кода, независимо от того, нужны они или нет. Это означает большое количество неструктурированного кода, который был придуман на лету и написан в одиночку. Он разный, и каждый кусок несет на себе отпечаток уникального ковбойского стиля.
Ковбои над ковбоями (trail bosses[13])
Представьте, что вы пытаетесь создать совершенно новую операционную систему, но не с помощью хорошо скоординированной команды дисциплинированных профессионалов, а с помощью пары сотен кодирующих ковбоев. Довольно трудно руководить небольшой компанией ковбоев. Нечего и говорить о целом ранчо, где ковбоев пруд пруди. Нужно сильно постараться, чтобы привлечь их внимание.
Наверное, после этого мы станем благожелательнее относиться к руководителю проекта по разработке Windows NT, который постоянно осаживал своих пастухов. Рассказывают, что для этого он даже пробил дыру в стене офиса. Возможно, как бывший программист с хорошей репутацией он понимал склад ума одиночек.
Увы, понимания бывает недостаточно. Как писала газета Wall Street Journal (от 26 мая 1993 г.), весь проект, казалось, был обречен на то, чтобы произвести колоссальный, чрезвычайно сложный и насыщенный ошибками программный продукт. Около 200 программистов неистово занимались написанием кода в соответствии с определяемыми на лету требованиями, отчего вся разработка проекта превратилась во всеобщую драку.
Программисты и тестеры, как скотоводы и овчары в давние времена, были разбиты на два конкурирующих лагеря. Эти команды натравливались друг на друга, а их участники сходились в ожесточенных схватках. Такое разделение труда может быть эффективным, если говорить о сокращении ошибок в программном обеспечении. Но в «табели о рангах» кодеры (в основном мужчины, самоуверенные мужчины) стояли первыми. Когда кодеры жаловались на то, что тестеры копают слишком глубоко, результаты тестеров признавались недействительными. Вероятно, для того, чтобы завершить проект вовремя или повысить производительность.
С нарушением всех графиков и растущим количеством слабых мест коллектив разработчиков NT перешел в «режим дополнений»… и так и оставался в нем почти два года. Обычно частота ошибок возрастает, когда люди испытывают усталость или находятся в стрессовых условиях. Многие часы интенсивной работы только увеличивают количество ошибок, вносимых в программный код. Несколько недель разработчики занимались поиском и исправлением примерно тысячи багов. Но даже самые лучшие методы регрессивного тестирования могут выявить лишь часть внесенных ошибок. Оставшиеся ошибки, порожденные в те долгие рабочие и выходные дни, еще ждут будущих пользователей.
Однако подход может быть иным. Дисциплина бывает полезной. Вот что было сказано в докладе Эла Пиитресанта (А1 Pietresanta) на конференции по разработке программного обеспечения, проходившей в 1989 году в Бостоне: если применять «чистые» («clean room») методы кодирования и непрерывного технологического улучшения, то даже в очень больших системах может быть меньше одной ошибки на 10 ООО строк кода.
Зрелость окупается. Замечено, что если большие проекты осуществляются зрелыми организациями с помощью устоявшихся технологий, то расходы на разработку сокращаются в 20–30 раз по сравнению с применением более свободных методов «на скорую руку».
«Ковбоизм» в кодировании может иметь много бастионов, но случай с ранчо Редмонд можно считать уникальным. Издание Journal приводит слова Митчела Дункана (Mitchell Duncan), главного конструктора проекта NT: «Все наши разработчики-ковбои строчат код просто как сумасшедшие».
И настрочили они 4,3 миллиона строк. Только смотрите внимательно, куда наступаете.
Из журнала Software Development, том 1, № 10, октябрь 1993 г.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
9.1.5.2. Возвращение из main()
9.1.5.2. Возвращение из main() Программа может естественно завершиться одним из двух способов: посредством использования одной из описанных далее функций или возвратившись из main(). (Третий, более радикальный способ описан далее в разделе 12.4 «Совершение самоубийства: abort()».) В
Глава 18 Возвращение AT&T
Глава 18 Возвращение AT&T В 2002 г. президент Джордж Буш подписал распоряжение о том, что Агентство национальной безопасности может следить за телефонными разговорами и интернет-активностью граждан США без санкции суда{355}. Распоряжение было секретным, как и его
Возвращение Кьеркегора
Возвращение Кьеркегора Чтобы критически оценить значение эксперимента Колдинга-Йоргенсена, нам следует обратиться к другому датчанину – Серену Кьеркегору (1813–1855), который считается основателем философии экзистенциализма. Он жил в интересное время, не так уж не
Возвращение в Беркли
Возвращение в Беркли Оно ознаменовалось тем, что в августе 1983 года была выпущена система 4.2BSD – та самая, на разработку которой собственно и был получен грант DARPA. К этому времени Билл Джой, сыгравший большую роль в разработке предыдущих версий, покинул Университет Беркли
ВОЗВРАЩЕНИЕ ЗНАЧЕНИЯ ФУНКЦИЕЙ: ОПЕРАТОР return
ВОЗВРАЩЕНИЕ ЗНАЧЕНИЯ ФУНКЦИЕЙ: ОПЕРАТОР return Создадим функцию, вычисляющую абсолютную величину числа. Абсолютная величина числа - это его значение (если отбросить знак). Следовательно, абсолютная величина 5 равна 5, а абсолютная величина -3 равна 3. Мы назовем эту
КАФЕДРА ВАННАХА: Возвращение к баранам
КАФЕДРА ВАННАХА: Возвращение к баранам Автор: Ваннах МихаилПривнесение порядка добралось и до Сети. С 1 января 2008 года платными грозят стать электронные библиотеки. Инженеры человеческих душ, в основном известные принадлежностью к телевизионной тусовке, радостно
ГОЛУБЯТНЯ: Возвращение поросячьего восторга
ГОЛУБЯТНЯ: Возвращение поросячьего восторга Продолжаем смаковать немецкую программу ContentSaver - новообретенную жемчужину в цепи Data Mining (изыскания, накопления, обработки и анализа информации). Главным козырем, обеспечивающим ContentSaver необоримый гандикап в состязании с MyBase и
Кафедра Ваннаха: Возвращение Михаил Ваннах
Кафедра Ваннаха: Возвращение Михаил Ваннах Опубликовано 19 января 2012 года Есть в Южной Америке такая страна – Бразилия. Советский человек знал её, прежде всего, по знаменитой сентенции об изобилии в лесах диких обезьян. Ну, читающая публика получала
Кафедра Ваннаха: Возвращение публиканов Ваннах Михаил
Кафедра Ваннаха: Возвращение публиканов Ваннах Михаил Опубликовано 29 октября 2010 года Есть миф, что распространение цифровых технологий делает искусство свободным от власть имущих, да и денежных мешков тоже. Ну, вот раньше Баху требовались для
1.1.6. Возвращение стива Джобса в родную компанию
1.1.6. Возвращение стива Джобса в родную компанию В сентябре 1997 года Стив Джобс возвращается в свою компанию и получает бразды правления в свои руки. Пришлось значительно сократить модельные ряды — вплоть до одного-двух образцов. Несколько заводов по производству
Долгое возвращение домой Сергей Голубицкий
Долгое возвращение домой Сергей Голубицкий Опубликовано 07 февраля 2013 Читатели наверняка уже знают о — не побоюсь этого слова — абсолютно сенсационном уходе компании Dell из публичного домена. Сенсационность этого события заключена не столько в
Возвращение ОТА
Возвращение ОТА В октябре 1972 года президент Ричард Никсон подписал документ 92-484 – «Закон о Бюро оценки технологий» [Office of Technology Assessment, OTA]. Приняв закон, конгресс признал тот факт, что многие правительственные решения принимаются под воздействием передовых технологий, но