Чтение онлайн

на главную

Жанры

Человеческий фактор в программировании
Шрифт:
Способные коллеги

Не во всех компаниях структура напоминает Transamerica Building. [45] В современных сплюснутых иерархиях, в которых есть много открытых, неформальных групп с высоким уровнем сотрудничества, корпоративные мандаты уже не имеют такого значения. Разработчики, привыкшие принимать совместные решения в сплоченных проектных командах, хотят инициировать, планировать и вводить улучшения самостоятельно. В таких условиях самыми эффективными агентами изменения зачастую являются наиболее уважаемые сотрудники, которые могут выступать в роли неформального внутреннего консультанта для людей из своей или другой проектной команды. Они обладают влиянием благодаря своему опыту и способностям,

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

45

Небоскреб в Сан-Франциско.

Энергичные выдумщики

Руководители-выдумщики играют очень заметную и важную роль во многих компаниях, присутствующих в отрасли программного обеспечения, однако не все группы поддаются харизматической привлекательности таких руководителей. Тем не менее в некоторых компаниях основная руководящая сила — это общее видение, которое выстраивает людей нужным образом и задает общее направление. Члены таких команд, обладающие необходимыми знаниями для превращения видения в реальность, способны работать слаженно и с ровной эффективностью.

В тех организациях, где соответствие общему видению является важным фактором в повседневной работе, самые эффективные агенты изменения чаще всего являются выдумщиками, миссионерами, способными увлечь компанию программистов своим представлением о более совершенных методах или о программном обеспечении, не содержащем ошибок. Они выступают в роли технических евангелистов, которые вызывают у людей личное одобрение новой миссии или нового образа организации. Одобрив или согласившись с новым видением, разработчики сами осуществляют переход — в той же самой тихой и эффективной манере, в какой они обычно создают программное обеспечение.

I и деры моды

Если говорить об индустрии программного обеспечения, то громкая техническая шумиха — это, пожалуй, более типичное явление, чем монастырская команда разработчиков, смиренно кодирующих в своих кельях. В свободных группах, состоящих из индивидуалистов-новаторов, техническая харизма нескольких центральных разработчиков может быть важным фактором во внедрении новых методов и их адаптации. В каждой компании есть несколько технических суперзвезд, которые всегда стараются быть первыми в применении любых новых технологий. Эффективность этих лидеров технической моды в роли агентов изменения главным образом зависит от типа организации, в которой они работают. В царстве творческого хаоса неформальное лидерство, основанное на признании лидером самого лучшего и блестящего среди равных, зачастую более эффективно, чем административное руководство или самая лучшая обучающая программа. Если вы окружены упрямыми и независимыми кодирующими ковбоями и все же хотите вводить новые методы и технологии проектирования, то посмотрите, кто устанавливает техническую моду. На кого все равняются в выборе инструментов и технологий? Эти люди являются естественными лидерами, которых вам следует привлечь в качестве агентов изменения.

Секретные агенты

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

Из журнала Software Development, том 3, № 1, январь 1995 г.

55

Встроено самое лучшее

Утренняя сцена: электронные радиочасы будят в 6.30 утра, и вы тащите себя вниз по кратчайшей траектории до кофеварки. Вы сливаете гущу со дна в кружку, а потом минуту нагреваете это в микроволновке. При этом вы стараетесь найти вечно теряющийся пульт вашего телевизора. Пока вы пьете свой кофе, вам удается пару минут посмотреть основные новости CNN, после чего вы направляетесь к машине, чтобы испытать на себе трудности обычной утренней поездки на работу. К тому времени как вы добираетесь до офиса и щелкаете по кнопке включения своего настольного компьютера, вы, вероятно, уже воспользовались десятком или более компьютеров, в которые загружены миллионы строк кода.

Непризнанные герои, разрабатывающие программное обеспечение, не пишут код ни для мэйнфреймов, ни для PC, ни для рабочих станций. Программное обеспечение, созданное ими, нельзя найти в архивах Staples, CompUSA или Dick Smith. И все же вы пользуетесь их кодом каждый день.

Вездесущие чипы

Конечно, я говорю о повсеместных вычислительных устройствах — о процессорах и программах, скрытых внутри наших радиочасов, в микроволновых печах, в телефонах, в магнитофонах. Они внимательно прислушиваются к нашим капризам и желаниям, выражаемым с помощью кнопок, и переводят их в инфракрасные сигналы управления тем или иным устройством. Если ваш автомобиль представляет собой одну из последних моделей, то только в нем можно обнаружить целую дюжину программных процессоров, не говоря уже о мобильном телефоне, которым вы пользова-лись по пути на работу. Вы нажимаете на кнопку «Разговор» и соединяетесь через длинную цепь скрытых компьютеров, начиная с вышки сотовой связи и заканчивая цифровым телефонным коммутатором, стоящим в офисе вашего клиента. Это мир встроенных системных приложений, в котором компьютеры скрываются под разными масками и, похоже, делают все что угодно, кроме вычислений. В сравнении со встроенными приложениями остальной мир разработки программного обеспечения иногда кажется «низшей лигой».

Компьютеры, на которых работают встроенные приложения, могут выглядеть маленькими и незначительными, будучи скрытыми внутри CD-плейеров или детских игрушек. Другое дело программы. Цветной лазерный копир может содержать миллионы строк на С, а в лабораторном осциллографе тысячи классов, написанных на Smalltalk, ждут своей инициализации. Большинство этих приложений предъявляют высокие требования к точности, безошибочности, повторяемости и надежности. Ошибки могут проявляться самым очевидным образом. Они могут сбивать с толку и даже быть опасными, например в программном обеспечении рентгенологического аппарата, промышленного робота или автомобиля. Добавьте к этому необходимость работы в реальном масштабе времени, что характерно для многих приложений, и планка поднимается еще выше.

Несмотря на эти трудности или даже благодаря им огромное количество встроенных программ имеет впечатляющее качество. Встроенная система, созданная одной компанией для высококлассного офисного продукта, содержала более полутора миллионов строк кода. Во всем этом коде было обнаружено только четыре ошибки. Да, да, именно так, за два с лишним года существования этого продукта было выявлено только четыре ошибки. Почему и как им это удалось?

Стоимость апгрейда

На этот вопрос ответить довольно легко. Например, одна-единственная ошибка во встроенном обеспечении одного из принтеров Hewlett-Packard может помешать этой компании достичь новых успехов. Если достаточно серьезная ошибка обнаруживается после выпуска продукта, то расходы на апгрейд ПЗУ будут больше, чем прибыль, полученная за весь период существования данной серии. Это серьезный стимул не допускать ошибок с самого начала. Так они и делают. Ни одна большая программа не бывает идеальной, однако некоторые программисты встроенных систем создают огромные программы с качеством, настолько близким к безупречному, насколько это вообще возможно. Дальнейшее снижение количества ошибок просто-напросто потребовало бы слишком больших затрат.

Поделиться:
Популярные книги

Эйгор. В потёмках

Кронос Александр
1. Эйгор
Фантастика:
боевая фантастика
7.00
рейтинг книги
Эйгор. В потёмках

Темный Патриарх Светлого Рода 5

Лисицин Евгений
5. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 5

Всплеск в тишине

Распопов Дмитрий Викторович
5. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Всплеск в тишине

Дикая фиалка Юга

Шах Ольга
Фантастика:
фэнтези
5.00
рейтинг книги
Дикая фиалка Юга

Неудержимый. Книга IV

Боярский Андрей
4. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга IV

Великий перелом

Ланцов Михаил Алексеевич
2. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Великий перелом

Барон меняет правила

Ренгач Евгений
2. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон меняет правила

Титан империи 2

Артемов Александр Александрович
2. Титан Империи
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Титан империи 2

Я – Орк. Том 2

Лисицин Евгений
2. Я — Орк
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 2

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Системный Нуб 2

Тактарин Ринат
2. Ловец душ
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Системный Нуб 2

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Лорд Системы 12

Токсик Саша
12. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 12

Воин

Бубела Олег Николаевич
2. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.25
рейтинг книги
Воин