Человеческий фактор в программировании - [8]

Шрифт
Интервал

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

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

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

Из журнала Computer Language Magazine, том 9, № 5, май 1992 г.

4

Скромный и высокопоставленный писарь

Помните, как Боб Крэтчит (Bob Cratchit) трудился над книгами в солидной фирме Скруджа (Scrooge) и Марли (Marley), надев на руки перчатки без пальцев, чтобы они не замерзали, пока Боб перелистывал страницы? Я очень люблю «Рождественский гимн» (A Christmas Carol). Недавно мне подарили видеокассету с изумительной черно-белой экранизацией, где главную роль играет Алистэр Сим (Alistair Sim). Посмотрев этот фильм, я задумался о старом Бобе и других «клерках», которые на протяжении столетий вели учетные книги для множества предприятий. Эти писари были настоящими компьютерами своего времени. Без них предприятия пришли бы к банкротству, а целые отрасли были бы ввергнуты в хаос. Их реальная власть и влияние намного превосходили их скудные жалования или невысокий статус. Вообще говоря, продолжительный успех Скруджа и Марли был в большей мере связан с работой старого доброго Боба и его соотечественников, чем с тем, что привнес Эбенезер.

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

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

Жизненно важная статистика

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

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

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


Рекомендуем почитать
Розничный персонал от А до Я

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


Учебный центр на «Отлично». Руководство по развитию учебного центра от идеи до масштабирования

Книга будет полезна руководителям школ танцев, творческих курсов, школ актёрского мастерства и ораторского искусства, тренинговых центров, центров изучения иностранных языков, вокальных и музыкальных курсов, курсов по подготовке к ЕГЭ, спортивных кружков, а также любых других обучающих организаций.


Простите, я разрушил вашу компанию

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


Менеджмент

В книге в доступной форме излагаются основы менеджмента – науки и практики управления. Менеджмент – научно—практическая и учебная дисциплина, посвященная проблемам управления в организации (на предприятии), на государственном, муниципальном и международном уровне. Описаны вопросы к арьеры и техника трудоустройства.Для студентов и преподавателей вузов, слушателей институтов повышения квалификации, структур второго образования, курсов менеджмента и бизнес—школ. А также для широкого круга читателей, желающих познакомиться с современным менеджментом, от учащихся и учителей старших классов школ до менеджеров, экономистов, инженеров, самостоятельно повышающих квалификацию.Автор книги – Заместитель генерального директора INTERFINANCE (ООО «ИНТЕРФИНАНС МВ», www.deniskredit.ru), имеет опыт работы в банках, коммерческих и государственных структурах (в т.


Проблемы совершенствования муниципальной службы в России

В монографии рассматриваются проблемы совершенствования муниципальной службы на основе Федерального закона от 2 марта 2007 года «О муниципальной службе в Российской Федерации». Исследованы организационно-правовые основы муниципальной службы. Дано авторское определение понятия муниципальной службы как вида публичной службы. Раскрыт правовой статус муниципального служащего.Значительное место уделено изучению особенностей прохождения муниципальной службы, обусловленных ее публичным характером.


Менеджмент

Информативные ответы на все вопросы курса «Менеджмент» в соответствии с Государственным образовательным стандартом.