Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие


НазваниеЭдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие
страница13/16
Дата публикации05.03.2013
Размер2.68 Mb.
ТипДокументы
userdocs.ru > Экономика > Документы
1   ...   8   9   10   11   12   13   14   15   16
5.3 SEI, ISO-9000. Формальные процессы против неформальных

Некоторые менеджеры, прочтя предыдущий раздел данной главы, могут высказать недовольство: «Вот здорово! Это выглядит гораздо более формальным, чем все, что мы когда-либо делали!» Когда мне приходилось сталкиваться с такой реакцией в некоторых консалтинговых проектах, это просто ставило меня в тупик. С одной стороны, я уверен, что документирование, определение приоритетов и управление требованиями просто необходимы (независимо от того, какие средства и методы для этого используются) ; с другой стороны, я опасаюсь следующего: когда проектной команде, и без того заваленной работой выше головы, навязывается совершенно новый и незнакомый процесс, то этот процесс – например, управление требованиями – может оказаться последней каплей, переполнившей чашу терпения.

В самом деле, у меня нет для этой дилеммы другого решения, кроме как надеяться, что проектная команда все же сможет справиться с одной новой идеей среди прочих своих средств и процессов. Однако, меня охватывает гораздо большее беспокойство, когда я вижу команды, которые предпринимают свой первый безнадёжный проект с решением (или, что более вероятно, с указанием, навязанным им блюстителями методологии), обязывающим их использовать формальные процессы, например, те, которые регламентируются SEI-CMM или ISO-9000. Формальные процессы – это великая вещь, если вы хорошо знаете, что делаете, и если вы уже использовали их прежде. Однако, реальность такова, что такие формальные процессы, как правило, ранее вообще не использовались в организации, и безнадёжный проект представляет собой пилотный проект для апробации структурного анализа или ISO-9000.

Какое безумие! Это действительно последняя капля, которая переполнит чашу терпения; в конце концов типичный безнадёжный проект пытается выполнить то, что раньше никогда не делалось, и (несмотря на мои предостережения в главе 4) команда нередко состоит из людей, которые никогда раньше не работали вместе. Так мало того, они ещё вынуждены осваивать использование незнакомой методологии или процесса, не будучи уверенными в том, что это им необходимо в первую очередь, и, напротив, будучи убеждёнными, что это только затормозит их работу. Чему же тогда удивляются блюстители методологии, когда они в подобных обстоятельствах сталкиваются с сопротивлением? Консультант Doug Scott недавно привёл мне пример такой ситуации:

В одном проекте, насколько мне известно, потребовался диаграммер для ERD, и они приобрели Excelerator. Обнаружив, что он поддерживает методологию SSADM, они внедрили её без какого-либо обучения персонала, после чего обнаружили, что темп работы на проектом значительно снизился (фактически, работа просто остановилась), в то время как каждый был занят чтением руководств, освоением средств и решением проблемы, что делать дальше (или переделывать то, что было сделано в «неправильном» порядке). Почти идеальный сценарий для тех, кто наблюдает за безнадёжными проектами.

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

Это означает, что менеджер безнадёжного проекта должен безоговорочно настаивать на процессах, которые он считает принципиально важными – например: «Каждый, кто посмеет внести изменения в исходный код, минуя процесс управления изменениями, будет немедленно уволен!» Или проектная команда должна сама сознательно пойти на внедрение процесса, понимая, что это позволит сократить затраты. Такое может скорее произойти в том случае, если участники команды ранее уже работали вместе и приобрели общий опыт использования различных процессов создания ПО; и наоборот, это маловероятно, если только один из участников команды встанет и скажет: «Я глубоко уверен, что структурный анализ является критически важным для успеха нашего проекта», в то время как другие и понятия не имеют, о чем это он говорит. Ещё одно утверждение, следующее из этого правила: попытка внедрить в безнадёжном проекте новый, незнакомый процесс может закончиться катастрофически, даже если команда верит, что он может помочь в работе. Проблемы с освоением, неизбежная путаница и споры по поводу деталей процесса обычно сводят на нет все выгоды.

Это означает, что такие формальные подходы, как SEI-CMM, ISO-9000 или внедрение новых методологий анализа/проектирования должны иметь место где-нибудь за пределами безнадёжного проекта. Внедрение таких процессов имеет смысл как часть долговременной корпоративной стратегии, и должно начинаться с выполнения пилотного проекта (который не должен быть безнадёжным проектом), сопровождаясь организацией необходимого обучения.

Если все это уже сделано, и если все другие разработки ПО в организации уже выполняются на третьем уровне SEI-CMM, то интересно выяснить, следует ли также использовать такие процессы в безнадёжном проекте. Как однажды заметил Watts Humprey на конференции в докладе по поводу SEI-CMM: «Если процесс нельзя использовать в критических условиях, его вообще не следует использовать».

Я не уверен, что многие согласятся с этим утверждением, особенно если безнадёжный проект рассматривать как единственное в жизни исключение из правил. Если это в самом деле так, то, возможно, имеет смысл отказаться от формальных процессов и предоставить проектной команде возможность использовать любые методы, которые она сочтёт приемлемыми. Однако не забывайте при этом моё утверждение, высказанное в главе 1: безнадёжные проекты становятся нормой, а не исключением. Если это так, то официально принятые в организации процессы следует, при необходимости, усовершенствовать, чтобы сделать их пригодными для использования в безнадёжном проекте. Тогда и только тогда утверждение Humprey будет иметь смысл.

Между прочим, если вы в самом деле столкнулись с потребностью усовершенствовать сложившуюся практику работы команды безнадёжного проекта, я рекомендую обратиться к методологии PSP (Personal Software Process), автором которой является Watts Humprey. Её основные положения изложены в моей книге «Rise and Resurrection of the American Programmer. Можно также прочесть книгу [2], хотя я честно предупреждаю: в ней 789 страниц.

5.4 «Достаточно хорошее» программное обеспечение

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

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

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

Командам безнадёжных проектов приходится сталкиваться с такой неприятной реальностью лицом к лицу, поскольку альтернатива – «совершённое» ПО, которое не будет готово даже тогда, когда пройдут все мыслимые сроки. Лучше всего, когда команда с самого начала проекта настроена прагматично на создание достаточно хорошего ПО, однако, мой опыт, к сожалению, говорит о том, что многие обычные разработчики ПО соглашаются с понятием достаточно хорошего ПО только тогда, когда упираются в тупик – например, когда оказываются в кризисном положении за месяц или два до окончания проекта.

Вплоть до этого момента времени они выражают своё недовольство: «Как вам понравится, если мы будем использовать ваш „достаточно хороший“ подход применительно к ПО ядерного реактора или системы управления воздушным движением?» Разумеется, я отвечу, что мне это совсем не нравится; и, если кто-нибудь вздумает затеять безнадёжный проект для создания такого рода высоконадёжных приложений, тогда я просто перестану летать на самолётах и буду держаться как можно дальше от предприятий с ядерными реакторами. С другой стороны, нам обычно и не приходится сталкиваться с безнадёжными проектами такого рода; скорее, это может быть кадровая система на ядерном предприятии или система резервирования авиабилетов. Это, конечно, не означает, что кадровые системы и системы резервирования авиабилетов должны работать со сбоями, однако все же непосредственные последствия этих сбоев будут не столь серьёзны.

В любом случае, совершённая надёжность, сопровождаемость, переносимость и т.д. не являются необходимыми, практичными или даже желательными в большинстве безнадёжных проектов. В самом деле, достичь такого совершенства невозможно даже в «нормальных» проектах, хотя в этом случае мы можем позволить себе установить планку своих стандартов гораздо выше, поскольку не связаны такими жёсткими ограничениями на время, бюджет и людские ресурсы. Что же касается безнадёжных проектов, то пользователям в действительности нужна система, которая достаточно дешева, достаточно производительна, обладает достаточными возможностями, достаточно устойчива и будет готова достаточно скоро – вот в чем заключается их определение «достаточно хорошего» ПО.

Почему же нам не удаётся создать «достаточно хорошее» ПО? Это обычно объясняется совокупностью следующих причин:

7) Мы стремимся определять качество только в терминах дефектов, не задумываясь о других его аспектах – которые, с точки зрения пользователя, включают, например, готовность к определённой дате.

8) Мы предполагаем, что малое количество дефектов равносильно лучшему качеству, и полагаем, что пользователь всегда предпочитает такое качество – хотя существуют обстоятельства, когда пользователь готов пойти на компромисс и примириться с некоторыми ошибками в обмен на более скорое завершение работы или возможность продукта работать на различных программных/технических платформах и др.

9) Мы стремимся определить требования к качеству (дефектам) один раз , в самом начале проекта, и зафиксировать их, хотя обстоятельства могут измениться в течение проекта не один раз.

10) Мы так долго твердили, что процессы являются критически важными, что при этом зачастую забываем об их «нейтральности» – дурак, вооружённый процессами и средствами, все равно останется дураком. Невозможно обеспечить качество, если просто слепо следовать всем деталям методологии структурного анализа или рекомендаций SEI-CMM.

11) Мы рассматриваем обеспечение качества как процесс, укладывающийся в жёсткую схему, заданную в начале проекта раз и навсегда (или, что ещё хуже, для всех проектов во всей компании).

12) Мы недооцениваем нелинейный характер зависимостей между такими ключевыми параметрами проекта, как численность персонала, плановые сроки, бюджет и количество дефектов – все эти аспекты в безнадёжных проектах являются ключевыми.

13) Мы игнорируем динамику процессов: запаздывания, циклы обратной связи и т.д. Например, большое количество сверхурочной работы в течение данной недели может выразиться в повышении продуктивности и прогрессе в работе над проектом в целом; но, с другой стороны, оно может повлечь за собой большее количество ошибок на следующей неделе (о которых конечные пользователи и высшее руководство могут ничего и не узнать), которые снизят продуктивность работы (в терминах конечных результатов) и, может быть, даже отбросят проект назад.

14) Мы игнорируем такие факторы, как моральное состояние команды, адекватные условия для работы и др.

Каким же образом мы сможем создать «достаточно хорошее» ПО? Как отмечает James Bach [3], для этого требуется несколько вещей:

15) Утилитарная стратегия – искусство количественного анализа и максимизации чистого выигрыша в неопределённых ситуациях – обобщает идеи системного анализа, управления рисками, экономики, теории принятия решений, теории игр, теории управления и нечёткой логики.

16) Эволюционная стратегия – рассматриваемая не только по отношению к жизненному циклу проекта, но также к людям, процессам и ресурсам.

17) Героические команды – не Могучие Гениальные Программисты, а обычные умелые специалисты, способные к эффективному сотрудничеству.

18) Динамическая инфраструктура – противоположность бюрократии и засилью политики. Высшее руководство уделяет необходимое внимание проектам, уделяет внимание положению на рынке, предупреждает и разрешает конфликты между проектами, и становится на сторону проекта в случае конфликта между ним и бюрократами.

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

1   ...   8   9   10   11   12   13   14   15   16

Похожие:

Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconСтефани Майер Рассвет Аннотация Четвертая книга знаменитой вампирской...
Дар бессмертия. Однако после первых же дней немеркнущего счастья ее жизнь превращается в кромешный ад. Белла и Эдвард ждут ребенка…...
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconЭдвард Станиславович Радзинский Распутин Загадки жизни и смерти 2...
Романовской империи в Петрограде на речке Малая Невка всплыл труп – покрытый ледяной коркой, с изуродованным лицом. Поражали руки...
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconЮ. Н. Вознесенская Путь Кассандры, или Приключения с макарона ми. М: «Леп та»
Действие книги происходит в недалеком будущем: главная героиня, юная девушка Кассандра, преодолевая соблазны мира, изуродованного...
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconПуть Торговли «Путь Торговли»
России его положения кажутся актуальными. Это книга для всех, кто связан с бизнесом: руководителя, продавца, снабженца… «Путь Торговли»...
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconСесил Паттерсон, Эдвард Уоткинс Теории психотерапии
Сecil Н. Patterson and С. Edward Watkins, Jr. "Theories of Psychotherapy", 5th ed., 1997
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconБольшой мастер изящной правовой словесности известный московский...
Ниже на основе книги Б. Кузнецова «Записки адвоката-камикадзе» приводятся некоторые выдержки из родившегося на свет процессуального...
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconКнига третья Дж. Эдвард Морган-мл. Мэгид С. Михаил Перевод с английского
Руководство предназначено для анестезиологов, реаниматологов и студентов медицинских учебных заведений
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconКнига первая Дж. Эдвард Морган-мл. Мэгид С. Михаил Перевод с английского
Руководство предназначено для врачей-анестезиологов, реаниматологов и студентов медицинских учеб­ных заведений
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconЧесть и публикуются мои статьи в Вашем журнале я получаю колоссальный...
Каждый раз, когда мне оказывается честь и публикуются мои статьи в Вашем журнале я получаю колоссальный творческий импульс и определённую...
Эдвард Йордон Путь камикадзе [Смертельный марш] Эдвард Йордон Путь камикадзе предисловие iconЭдвард Радзинский Николай II загадки жизни и смерти 1 николай II
Но молодые люди жили предощущением наступающего. Приходил век с особым, мистически кратным числом – «Двадцатый»
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2015
контакты
userdocs.ru
Главная страница