• Культуры программных проектов: глава 4

    Posted on February 17th, 2010 Александр Орлов 1 comment

    Глава 4: Заводская Культура

    Метафора о Заводском Конвейере

    Управление проектами разработки приложений может быть довольно пугающим бизнесом. Всё что угодно может пойти не так. Слишком много проектов превысили бюджет, не уложились в сроки или произвели нечто низкого качества, что никому особо и не нужно. Это делает менеджеров проектов дёргаными.

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

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

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

    Шоколадная Фабрика

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

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

    Теперь представьте, что вы менеджер такого заводского производства. Уявите себя проходящим вдоль конвейера с блакнотом в руках. Вы чувствуете удовлетворение от того, как гладко, слаженно и циклично работает конвейер. Час за часом, день за днём. Всё работает как часы.

    Оппа! Внимание! Один из станков конвейера сломался. Полуготовые конфеты скапливаются на ленте. Рабочие паникуют: жидкий шоколад, апельсиновая начинка и шоколадные раковины разливаются по конвейерной ленте на заводской пол. Ваше сердцебиение ускоряется. Вы чувствуете начало паники. Это ваша ответственность! Вы должны разобраться с поломкой! Что вы собираетесь делать? Ну же, нам нужно решение! Немедленно!

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

    Люксовая Часть Рынка

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

    Представьте себе дюжину художников, сидящих вокруг стола, занятых изготовлением люксовых шоколадных конфет. На полу и на столе следы брызг шоколада и апельсиновой начинки. Художники обмениваются семейными историями. Они улыбаются. Они смеются. Казалось бы весёлое место для работы. Услышьте звуки, запахи, почувствуйте атмосферу.

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

    Задержитесь на секунду, чтобы осмотреть сцену. Как менеджер производства вы отвечаете за то, как работает это заведение. Сравните эту сцену с производственным конвейером, который был под вашим руководством на предыдущей работе. Каковы ваши ощущения? О чём вы думаете?

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

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

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

    К концу дня двенадцать художников седелали восемьсот семьдесят три конфеты. Меньше, чем дневная норма в тысячу конфет. Теперь вы отвечаете за производство, и с вас спросят за невыполненные нормы. Пока ещё рано делать выводы. Может завтра художники наверстают упущенное.

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

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

    Вам надледит с этим справиться в роли менеджера производства. Старший менеджмент возлагает на ввас надежды. Им нужен ответ! Вы либо справитесь с работой, либо вылетите с работы! Что вы предпримете?

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

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

    Вы знаете, что нужно сделать, и вы делаете это. За три месяца вы полностью переводите производство на конвейер. Через ещё три месяца оно начинает приносить прибыль, а ещё через три ваша компания доминирует на рынке.

    Фабрика по Выпуску Программ

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

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

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

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

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

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

    От ручной работы к массовому производству

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

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

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

    Рационализм Конвейера

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

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

    Управление Проектом

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

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

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

    Вот база, основанная на проверенном рационализме конвейерного производства:

    Спланируйте наперёд:

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

    Начните Производство согласно плану:

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

    Мониторинг и Контроль:

    • Непрерывно проверяйте:
    • Рабочих на местах, чтобы убедиться, что они выполняют действия согласно плану
    • Темпы производства, чтобы укладываться в расписание
    • Потребление экономических ресурсов, чтобы проект укладывался в бюджет
    • Конечную продукцию на предмет соответствия стандартам качества
    • Там, где инспекция находит проблемы, справьтесь с ними:
    • Остановите производство
    • Исправьте причину проблемы, где возможно, путём:
    • Починки сломанного оборудования
    • Крика и запугивания рабочих
    • Перезапустите производство
    • Там, где причина проблемы не может быть устранена, попробуйте следующие методы:
    • Увеличьте бюджет
    • Предложите экономические льготы рабочим
    • Добавьте рабочих к конвейеру
    • Добавьте ещё один конвейер
    • Увеличьте сроки проекта
    • Измените спецификации продукта
    • Отмените проект

    Разработка Приложений – это Конвейерное Производство

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

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

    • Менеджеры создают план проекта, разбивающий необходимую работу на несколько стадий с чёткими временными и стоимостными рамками для каждой стадии, а, значит, и для всего проекта вцелом.
    • Рабочие берутся из имеющегося персонала и назначаются последовательно на различные стадии проекта:
    • Стадия требований: Спецификации продукта заранее записываются заказчиком или другим авторизованным человеком, тем самым переводя их бизнес потребности в спецификационный документ.
    • Стадия анализа: Аналитик переводит спецификации продукта в полные фиксированные функциональные требования к программному приложению, производя документ с функциональными требованиями.
    • Стадия дизайна: Дизайнер переводит функциональные требования в чёткую и ясную архитектуру приложения, формируя технический дизайн.
    • Стадия кодирования: Программист, следуя техническому дизайну, пишет программный код.
    • Стадия контроля качества: Тестеры проверяют функционал программного кода, чтобы удостовериться в том, что он соответствует всем требованиям из вышеупомянутых документов.
    • На каждой стадии рабочие периодически пишут статус репорт, чтобы менеджеры могли следить за прогрессом.

    Обзор Следственных Метафор

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

    Программы жёсткие

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

    Дальше, производственным конвейерам необходимы физические предметы, которые будут передаваться от стадии к стадии. Разумеется, в разработке программ такого физического предмета не существует; таковым объектом будет сама программа, но она не существует до поры до времени. Поэтому, до начала стадии кодирования её заменяет документация.

    Как только завершается стадия кодирования, программа не должна меняться, разве что осуществляется периодическая поддержка.

    Дизайн – это Проект

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

    Требования Записываются

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

    Менеджеры – это Командиры и Надзиратели

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

    Команды – это Рабочие

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

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

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

    Заказчики – это Покупатели

    Изготовитель программ – это поставщик продукции, а заказчик – это покупатель этой продукции. Документ с требованиями образует контракт между заказчиком (чтобы они знали, что они получат) и поставщиком продукции (чтобы у них была чёткая цель). Как только этот документ подписан обеими сторонами, каждая сторона обязана соблюдать условия контракта. Поставщик обязан сделать программы точно по спецификациям в контракте и к дате, согласованной в контракте. А заказчик в свою очередь обязан заплатить по контракту за эту программу.

    Содержание Фиксировано

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

    Время – это Деньги

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

    Качество Проверяется

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

    Деньги – это Стоимость

    Компании существуют, чтобы приносить прибыль. Прибыль – это цена минус себестоимость. Как только цена оговорена с заказчиком, любая экономия на производственных расходах увеличивает прибыль. Деньги, потраченные на производство, должны правильно учитываться и распределяться заранее в плане проекта. Также за ними нужно пристально следить в течение производственного цикла с помощью чётко установленных бухгалтерских правил.

    Успех – это Соблюдение Норм

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

    Неудачи Наказуемы

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

    Растрата – это Небрежность

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

    Прогресс – это Завершённые Задачи

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

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

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

     

    One response to “Культуры программных проектов: глава 4”

    1. [...] Глава 4 [...]

    Leave a reply

    You must be logged in to post a comment.