Сергей Поволяшко
Этот пользователь ничего не написал в своей биографии.
Домашняя страница: http://xpinjection.com
Записи от Сергей Поволяшко
Старт проекта. «Продажа» Управления Рисками?
11 Апрель
Продолжаю серию статей «Старт проекта». Первая статья здесь – Старт проекта. Как это делать?, а вторая здесь Старт проекта. Что такое Управление Конфигурациями?
В этой, третьей статье, приведу некоторые мысли о том, как при старте проекта снизить его рискованность, и при этом не напугать заказчика или менеджмент.
Управление рисками – это та дисциплина, которая должна обязательно применяться при старте проекта, т.к. общеизвестный факт, что решение проблем на ранних стадиях всегда дешевле, и собственно есть гораздо больше возможностей эти решения применить.
Из-за чего возникают проектные риски?
- Заказчик не может обеспечить ожидаемый уровень коммуникаций, взаимодействия
- Сложная предметная или технологическая область
- Нехватка персонала или его квалификации
- Несоответствие типов контрактов, методологий и условий проекта
- Заказчик, а зачастую и менеджмент слабо (или не) знакомы как работает управление проектами
Управление рисками зачастую предполагает некоторые инвестиции в реакции на риски, то ли в виде некоторых дополнительных работ, например – прототип, то ли в виде некоторого резерва времени или средств. Естественно, что у заказчика возникает вопрос – «зачем платить за лишнее», или –«я плачу за работу, а не за риски». После того, как упомянуто слово риск, заказчик может перестать воспринимать вас всерьез, а то и просто «съехать».
Вот здесь ключевая идея – объяснить, а точнее замаскировать реакции на риски с помощью понятного для заказчика языка. Даже может быть категорически противопоказано употреблять термины и жаргон из мира разработки ПО.
Скажу по себе, хотя и был много лет назад разработчиком, но когда сейчас мне нужно узнать на концептуальном уровне о каком-то техническом решении, и я слышу в ответ слова: ADO, MVC, Hibernate, XML и т.п. у меня отключаются чувства восприятия
. Т.е. объясняющий совершенно профессионально объясняет техническое решение, но в силу разрыва понимания технологии получается недопонимание. Такие же разрывы случаются между парами тестировщик – разработчик, разработчик – менеджер проекта и т.д. И это между людьми, работающими в одном бизнесе! А что же говорить о заказчике, который хочет, чтобы мы поняли его бизнес потребности, а мы тут к нему с рисками?
Давайте посмотрим на неудачный и приемлемый варианты общения с заказчиком на этапе инициирования проекта. Беру условие практического задания «Маскировка» из тренинга «Управление рисками: классика, agile, бизнес, заказчик».
Условие:
Новый проект, примерно на год на команду 10 человек. Срок сдачи фиксирован. Требования слабо определены. Сложная предметная область. Заказчик примерно понимает приоритеты функционала, находится в США. Нужно как можно раньше четко осознать что успеется за год, т.к. нужно делать анонс продукта, продвигать и т.п. Не хватает 4 разработчика в команде, срок найма 1-2 месяца. Архитектура неясна, ориентировочно 2 подхода с разными ожиданиями по производительности, расширяемости и срокам разработки. Заказчик хочет 1-2 раза в месяц демо и прогнозы успеваемости по срокам. Прямо сейчас заказчик выбирает между 3-я поставщиками, понятно хочется выиграть заказ. Заказчик не очень техничен и от слова «риск» может «съехать».
Неудачные фразы:
- «Мы будем работать по СКРАМу и наши разработчики вам на демо все будут рассказывать» – вы можете представить каким языком разработчики расскажут? Да и хочет ли не техничный заказчик так общаться?
- «Мы по ходу разработки будем брать задачи из бэклога и по берндауну будем понимать наше велосити, а если не будем что-то успевать, то низкоприоритетные функции делать не будем» – несмотря на развитие гибких подходов у заказчика может случиться «вынос мозга» от такого заявления. К тому же от хочет «как можно раньше четко осознать что успеется за год».
- «У нас есть риск недобора команды, поэтому мы нагоним потом либо овертаймами, либо сокращением бэклога» – во-первых, состав команды это не есть проблема заказчика, ему по существу все равно как вы будете делать проект. Во-вторых, от такого «подхода» сразу же веет непрофессионализмом.
- «У нас есть риск неправильного выбора технического решения, поэтому мы заложим 20% времени на рефакторинг или имплементацию другого решения» – в понимании заказчика вы не знаете как правильно спроектировать его продукт, да еще и будете переделывать за его же деньги. И что это за мифический резерв в 20% времени?
Приемлемые варианты:
- «Для того, чтобы лучше понять вашу предметную область мы пошлем в командировку наших ведущих специалистов, которые обсудят с вами те задачи вашего бизнеса, которые вы хотите решить с помощью этого продукта, а также в подробностях самые первоочередные из них»
- «Так как вам нужно как можно раньше знать что войдет в продукт, то мы рекомендуем, чтобы вы выделили ваше время и-или время ваших специалистов для обсуждения требований»
- «Так как важно выбрать оптимальное техническое решение, а также оценить наши возможности как компании-исполнителя, мы предлагаем по-фазный подход. На первой фазе мы сделаем прототип, в котором постараемся отразить на концептуальном уровне первоочередные функции вашего продукта. Помимо этого вы также сможете оценить наши возможности»
Как-то так, на самом деле ваши действия скорее всего не будут зависеть от варианта формулировки вашего подхода. Но применяя нечто похожее на «Приемлемые варианты» и вы добьетесь того, что хотели, т.е. сможете включить реакции на риски в план проекта, и заказчик будет чувствовать себя более уверенным.
Серия статей «Старт проекта» выходит в поддержку тренинга «Успешный старт проекта», в котором темы статей рассматриваются подробнее и с практическими заданиями.
Старт проекта. Что такое Управление Конфигурациями?
30 Март
Продолжаю серию статей «Старт проекта». Первая статья здесь – Старт проекта. Как это делать?
А в этой статье поговорим о дисциплине управления конфигурациями как таковой и о ее важности.
Сразу начну с кейса из реальной жизни:
- Заказчик прислал проект на оценку в виде нескольких документов, пусть это будут спецификации: «Spec 1 v1_1» и «Spec 2 v1_2»
- Сделали оценку работ, причем в разделе «References» указали что оценки сделаны на основе этих спецификаций
- Заказчик согласился на оценку, подписали контракт, собрали команду, начали проект
- В середине проекта выяснилось, что обещанные сроки выдержать не получается
- Поначалу «подозрение» пало на некачественный оценку работ
- Но в конечном итоге выяснилось что: А) – заказчик в начале работ «подсунул» другие спецификации (названия те же, но версии и содержание отличаются); Б) – никто не сверился, отличаются ли изначальные и новые спецификации.
А теперь еще несколько типичных проблем:
- Устраненные дефекты появляются снова
- Отсутствуют зафиксированные версии спецификаций, продукта
- Заказчику отдали старую или неполную версию продукта или его частей
- Откуда-то появился новый функционал
- Не совпадают спецификации, продукт и тестовая документация
Отсюда возникает вопрос – как этого не допустить, и как это сделать осмысленно, и без чрезмерных усилий? Как ясно из названия, такие проблемы призвана решить дисциплина Управления Конфигурациями.
Немного истории. Дисциплина, как и многие другие здравые мысли пришла от военных. Кстати еще о военных, есть статья «История проектного инструментария, нач. ХХв.» – рекомендую. Так вот, как говорит Википедия, дисциплина формализовалась в 1950-х в американских воздушных силах для контроля над компонентами сложных систем. И сейчас применяется во многих отраслях, в том числе и космической. Если говорить о более близких к ИТ вещах, то она постепенно стала компонентом CMMI, ISO 9000, ISO 10007, ITIL, PRINCE2 и т.д.
Собственно определение – Управление конфигурацией (Configuration Management, CM) – это управление наборами рабочих продуктов, их версиями, статусами и взаимосвязями.
Ключевые задачи могут немного отличаться в разных источниках, но если выделить основное, то это:
- Определение элементов конфигурации
- Учет состояний и версий
- Отслеживание запросов на изменение
- Верификация конфигураций
Причем, о первых трех в списке нужно по возможности договориться на старте проекта, лучше до подписания контракта. Давайте рассмотрим первую задачу – «Определение элементов конфигурации». На протяжении проекта производится множество разных артефактов (Work Products) – спецификации, отчеты, код, результаты инспекции кода, документация пользователя, тест кейсы, скрипты, протоколы совещаний и т.д. Некоторые из них являются Элементами Конфигурации (Configuration Items), а некоторые нет. Если по простому, то Элементы Конфигурации – это наиболее важные артефакты, это могут быть: результаты поставки заказчику; артефакты, от которых зависят другие артефакты и т.п. Например, спецификация – однозначно Элемент Конфигурации, т.к. на ее основании разрабатывается продукт, тестовая документация, делается приемка продукта и т.п. А вот отчет – вряд ли.
Соответственно к Элементам Конфигурации должен применяться структурированный контроль – со второй по четвертую ключевые задачи в списке.
В силу ограниченности объема статей и емкости материала об Управлении Конфигурациями предлагаю читателям уже самим выбрать наиболее близкий источник для ознакомления, смотрите указанный выше список стандартов.
В следующей статье рассмотрим «заезженную», но плохо применяемую на практике дисциплину Управление Рисками, а точнее некоторые моменты «продажи» Управления Рисками заказчику, что безусловно повышает успешность проекта с самого начала.
Серия статей «Старт проекта» выходит в поддержку тренинга «Успешный старт проекта», в котором темы статей рассматриваются подробнее и с практическими заданиями.
Старт проекта. Как это делать?
20 Март
Хочу предложить вашему вниманию серию статей «Старт проекта», еще это называют инициирование проекта. Инициирование проекта – переходной процесс между «продажниками» и исполнителями, который зачастую оказывается либо «ничейным» либо недостаточно качественно сделанным. Что уже с самого начала проекта вносит негативные факторы. В этой серии рассмотрим наиболее, с моей точки зрения, важные вопросы, которым далеко не всегда уделяется нужное внимание.
Вопрос. Как это делать? Т.е. Как делать ваш проект? Предположим, что заказчик понимает зачем делать, и что у вас уже есть хотя бы предварительные требования, т.е. что делать с точки зрения результата проекта.
Приведу немного перефразированные случаи из жизни:
- Стартап, заказчик имеет ограниченный бюджет, которого хватит на несколько месяцев, понимает идею продукта и полностью доступен для коммуникаций. Всем ясно, что за этот бюджет скорее всего можно получить только неплохой прототип, судьбу которого далее решает инвестор.
- Переделка довольно сложного бизнес приложения на новые технологии. Никакой документации к существующему приложению нет. Бизнес-область компании-исполнителю незнакома. Во что выльется переделка – изначально сложно даже предположить. Но скорее всего много относительно возможностей заказчика. На стороне заказчика есть специалисты по старым технологиям, которые могут в какой-то мере саботировать проект.
- Поддержка и развитие системы с множеством версий для разных заказчиков. Долгосрочное (годы) сотрудничество, важность накопления знаний внутри команды по предметной области. Наличие другой команды-конкурента, команды могут сравниваться по производительности по количественным показателям. Заказчик диктует свои стандарты кодирования и подход к архитектурным решениям продукта. Довольно большая доля бизнеса для компании-исполнителя.
Как видно, ситуации совершенно разные, и подход – «Как делать» – тоже будет разный. И лучше договориться о нем заранее. На что обратить внимание:
- Необходимость разбить проект на фазы, например: передачи знаний, выяснения требований, прототипа, проектирования, выполнения, внедрения и т.п. Соответственно в каждой фазе будут совершенно разные результаты работы, состав команды, продолжительность, тип контракта, методология.
- Когда необходимо разбивать на фазы? Когда требования неясны, новая и сложная предметная область, новая технология, требуется получить точные оценки и планы работ, внедрение или долгое или отложено во времени, заказчик или исполнитель не готов делать сразу весь проект и т.п.
- Необходимость договориться о процессах работы – это собственно процессы, поддерживающие методологии, стандарты, технологии. Обычно у компании-исполнителя есть определенные внутренние договоренности «как делать» те или иные инженерные и управленческие практики. У заказчика тоже могут быть свои соображения и по поводу процессов, и по поводу методологий, и по поводу инструментария. Сам по себе проект тоже накладывает определенные условия.
- Задача компании-исполнителя, а особенно ответственного менеджера проекта – установить процессы, которые были бы в первую очередь полезны конкретному проекту, учитывая процессные требования как заказчика, так и компании исполнителя.
- Необходимость понять политические факторы проекта. Их может быть великое множество. Давайте посмотрим. Кому проект выгоден, а кому может быть и не выгоден? Даже есть такое понятие «murder board». Невыгоден – пользователям заказчика, работу которых автоматизируют, т.е. вероятны сокращения штата; ит-шникам заказчика, которые «застряли» на устаревших технологиях или дорого обходятся заказчику; представители подразделений и других проектов заказчика, у которых ваш проект «отбирает» финансирование, т.е. те, кто напрямую не заинтересован в проекте. Со стороны компании-исполнителя тоже может быть набор политических факторов, таких как приоритетность заказчика или направления бизнеса среди других; состояние финансовых и договорных отношений; наличие и квалификация специалистов определенного направления и т.п.
- По политическим факторам скорее всего нужно уделить внимание двум аспектам: а) скажем так – психологической готовности их нейтрально воспринимать; б) выбору правильных способов коммуникации и эскалации, причем с уклоном в более формальные методы.
В следующей статье рассмотрим дисциплину Управление Конфигурациями, и почему важно уделить ей внимание на старте проекта.
Оригинал статьи здесь.
Что общего у холодильника и CMMI (ISO, PMBOK, …)
21 Февраль
Давно собирался написать рецензию на статью моей коллеги «Мифы о CMMI, или кому и зачем она нужна». Причем, основной идеей рецензии хотелось сделать известное выражение о пользовании, например, бытовыми приборами – «если ничего не помогает, то прочитайте же наконец инструкцию». Как-то долго не складывалось, но холодильник сдвинул дело.
Так вот, начну с холодильника. Буквально неделю назад у моих родителей случилась какая-то беда с холодильником – мигает лампочкой – о помощи просит, и морозилка плохо морозит. Поставили регулятор на более низкую температуру – не помогает, та же картина. Холодильник, к слову сказать, относительно новый и хороший. Позвали [горе]мастера. Пришел, посмотрел, подул щеки, поморщил лоб, и сказал со знанием дела – холодильник мол плохой, и ремонтировать его тяжело, скорее всего выбрасывать надо, и вообще негодяи производители делают технику на срок службы 5-7 лет, чтобы, значит, на потребителях наживаться.
Не буду томить перипетиями, перейду сразу к финалу. Оказывается, если почитать инструкцию, то при пониженной температуре окружающей среды (дело было в феврале, на улице минус 20-25С, отопление не справляется, в квартире плюс 16-17С), нужно поставить регулятор температуры на более высокую температуру, и все должно быть хорошо. Так и сделали, холодильник тут же отблагодарил, отключив лампочку помощи. НО, в инструкцию-то вчиталась мама, а не [горе]мастер, которому по долгу службы надо бы знать «физику процесса»!
Вот и напрашиваются параллели:
- Холодильник – хорошая, но зачастую недопонятая система, то ли CMMI, то ли PMBOK, то ли другая подобная.
- Инструкция – собственно документ, описывающий систему, который надо бы читать, и иногда больше одного раза. Но что поделаешь, мы же не в сказке, напрягаться надо для понимания и корректного применения с пользой для дела. Как и рекомендовано в статье, любую сложную систему нужно начинать понимать с прочтения более легковесных, доступных материалов. Сам так делаю, помогает
. - Производитель – орган, который придумал и поддерживает систему. Конечно он в том числе и денег хочет заработать, так же как и производитель холодильника. Но великая-то цель – применение на практике консолидированного опыта предыдущих поколений специалистов, написанного кстати пОтом и кровью. Иначе зачем нам холодильник? Давайте лед с северного полюса возить.
- Лампочка с регулятором – необходимость и способы «заточить» (по-научному – tailoring) систему под ваши нужды, чтоб она никого не напрягала, работала и была полезна.
- [Горе]мастер – без обид, это мы, делающие суждения о «работает-неработает», «плохая-хорошая» та или иная система, не разобравшись зачем она, какая к ней инструкция, и как ее правильно настроить.
- Мама – это тоже мы, но, соответственно, разобравшиеся… И заслуживающие профессионального уважения.
Да, статья и комментарии к ней здесь, рекомендую потратить 10 минут, оно того стоит.
Стоимость качества. Часть 3 – Как это посчитать?
30 Январь
Завершая серию статей о стоимости качества подходим к практической части, а именно, как это посчитать? Для того, чтобы были конкретные данные, на основании которых можно было бы принимать какие-либо управленческие решения. Напомню о предыдущих статьях и для начала рекомендую их прочесть: «Стоимость качества. Часть 1 – Что это такое?», «Стоимость качества. Часть 2.1 – Зачем это надо?», «Стоимость качества. Часть 2.2 – Кому это надо?».
Так как сбор и интерпретация данных относится к дисциплине метрик, то здесь стоит обратить внимание на классический треугольник успешности и полезности измерений:
- Люди – должны быть обучены данной дисциплине, по крайней мере понимать зачем все это. И, естественно, должны иметь возможность (санкционированное время, желание, инструментарий и т.п.)
- Процессы – должны быть. Все рабочие процессы, например: как мы готовим тестовую документацию и тестируем, жизненный цикл дефекта, жизненный цикл задач и т.п. должны быть в том или ином виде описаны-оговорены и донесены до исполнителей
- Инструментарий – собственно те технические средства, которые помогают людям делать их процессы – тайм трекеры, баг трекеры, таск трекеры и т.п. Именно они, при корректной интеграции в процессы работы и при соответствующей настройке, позволяют и собирать данные, и обрабатывать, и презентовать.
В этой статье поговорим именно об инструментарии.
Для начала обратимся к такой дисциплине как Scope Management – управление объемом работ по проекту. В первую очередь это правило 100%, т.е. список работ по проекту должен отражать абсолютно ВСЕ работы и им должно быть место в расписании работ, плановые и фактические трудозатраты по ним должны быть оценены и отрапортованы. ВСЕ – в т.ч. инспекции документов, устранение дефектов, совещания, и даже участие в интервью по набору персонала на проект…
Хорошо помогают шаблоны списков работ (WBS – work breakdown structure).
Ключевым моментом является такая декомпозиция списка работ, где были бы выделены отдельные задачи (берем для примера разработчика), и, соответственно временнАя отчетность на:
- Инспекцию спецификаций (COQ)
- Разработку архитектуры
- Юнит тесты (COQ)
- Кодирование
- Инспекцию кода (COQ)
- Устранение дефектов после тестирования (COPQ)
- Разворачивание продукта в тестовом окружении
- Устранение дефектов по гарантийным обязательствам (COPQ)
- Устранение дефектов после инспекции кода (COPQ)
- И т.п.
В скобках указаны интересующие нас категории – COQ, COPQ. На самом деле, отнесение некоторых задач в какую-то категорию – это ваше решение, например, юнит тесты можно отнести и в разработку. Общие же рекомендации что есть что приведены в первой статье «Стоимость качества. Часть 1 – Что это такое?».
Как далеко идти с декомпозицией – решать вам в зависимости от того, что нужно и что вообще имеет смысл. Например, устранение дефектов после тестирования можно отнести как в общую для всех разработчиков задачу «Устранение дефектов», так и разделять, например, по модулям – «Устранение дефектов по модулю №1» и т.д.
Таким образом, если у вас есть такие компоненты:
- Корректная декомпозиция работ
- Таск-тайм трекер, который позволяет отразить и декомпозицию, и отчетность о затраченном времени
- Обучающие меры для сотрудников – как пользоваться таск-тайм трекером
То сбор данных по соответствующим категориям у вас настроен, и что немаловажно, интегрирован в рабочие процессы. И вы легко можете получать информацию о стоимости качества.
Конечно же, возникают некоторые тонкости в организации и процессов работы, и инструментария. Давайте посмотрим на примеры.
Что такое дефект и как его учитывать? Обычно, если тестировщик находит дефект, то он (дефект) попадает в систему управления дефектами как отдельная запись с описанием, серьезностью и другими параметрами. Но ведь дефекты, найденные, например, на инспекции кода, по существу, ничем не отличаются от дефектов, найденных тестировщиком. И они обычно никак не учитываются, в лучшем случае фиксируется время, потраченное на инспекцию кода. Но возникает резонный вопрос – а зачем это надо вообще? Если уж вы решили определять стоимость качества, то нужно, как минимум фиксировать время на инспекцию кода и время на исправление дефектов, найденных при инспекции. Если вам это не нужно – то не делайте, это будет пустая трата времени и раздражающий фактор для сотрудников. Если вы хотите таки фиксировать не только время на инспекцию, то можно осторожно попробовать использовать систему управления дефектами – например на каждый факт инспекции внести одну запись, к которой приложить список дефектов в коде. По крайней мере необходимость исправить код не потеряется и у вас будут данные о результатах инспекции.
Интенсивная работа с требованиями. А что если требования обсуждаются настолько интерактивно между заказчиком, аналитиком, разработчиками, тестировщиками, что четкая разница между формализацией требований, их инспекцией (обсуждениями) и устранением дефектов (рекомендации, выданные при обсуждениях) не видна? Или же не имеет смысла это разделять. Тут, наверное, лучший вариант – без фанатизма, просто отнести такой вариант работы в задачу «Разработка требований», т.е. к COQ или COPQ не относить вообще. Если же такого интерактива нет, а есть четкое разделение на формализацию, инспекции, и исправление дефектов, и, внимание!, вам действительно надо выделять COQ и COPQ, то предлагаю такой же подход, как и в предыдущем примере – с использованием системы управления дефектами.
Завершая цикл хочу сказать, что серьезно «заводиться» со стоимостью качества и метриками стоит лишь в том случае, если у вас есть:
- Великая цель – зачем это делать и кому от этого будет лучше
- Подготовка по теме – как это работает
- Здравый смысл – в разумной реализации Великой цели
Надеюсь, что это было вам полезно.
Оригинал статьи здесь.
Стоимость качества. Часть 2.2 – Кому это надо?
23 Январь
Продолжаю серию статей о стоимости качества. Две предыдущие: «Стоимость качества. Часть 1 – Что это такое?» и «Стоимость качества. Часть 2.1 – Зачем это надо?». В этой же статье рассмотрим «Кому это надо?». Очень рекомендую обратить внимание на предыдущие статьи, т.к. они представляют собой логическую цепочку рассуждений.
Здесь рассмотрим, в каких ситуациях следует (или не следует) озаботиться стоимостью качества и относительной величиной его доли в общем объеме работ. Давайте рассмотрим несколько вариантов. Но для начала вспомним классическую диаграмму стоимости изменений (Cost of Change), но будем ее понимать в контексте стоимости устранения дефектов, т.к. график по своей сути не меняется.

Смысл в том, что чем дальше мы продвигаемся по времени, тем дороже обходится устранение дефектов. Например, если не удалось выявить несоответствие в требованиях вначале (что на самом деле очень дешево сделать), то потом скорее всего придется «перепедаливать» на значительно бОльшую сумму.
Представленный ниже список вариантов далеко не исчерпывающий, рассмотренные ситуации и выводы по ним в вашей деятельности могут отличаться от приведенных ниже. А также могут быть и комбинации этих вариантов.
Вариант 1. Проект типа Fixed Price.
Соответственно, и скорее всего, помимо бюджета четко зафиксированы объем работ и сроки. Здесь нужно в первую очередь обращать внимание на требования и критерии приемки. Оставим в стороне дискуссию о возможной неполноте и изменчивости требований, о применимости этого типа контракта, это регулируется другими механизмами. Здесь становиться очевидным, что нужно стараться минимизировать COPQ, т.к. это напрямую влияет на доход и, возможно, на штрафные санкции, и-или на расходы по гарантийным обязательствам. Но с другой стороны минимизация COPQ выражается в увеличении COQ, и тут тоже нужно не переусердствовать. На помощь приходит вышеуказанная диаграмма «Стоимость устранения дефектов». Напрашивается вывод, что имеет смысл уделить особое внимание процедурам из COQ как можно раньше. А именно – постановке процессов обеспечения качества и реализации мер контроля (инспекции спецификаций, архитектуры, кода, тестовой документации и т.п.). См. подробности в статье «Стоимость качества. Часть 1 – Что это такое?». Стоимость процедур COQ легко считается и планируется, и также легко соотносится со штрафными санкциями.
Кому это надо? Компании Исполнителю, т.к. это ее доход и репутация. Говоря о процедурах из COQ, то немного бОльший фокус должен быть на эти меры на начальных стадиях, т.к. последствия от их неприменения скорее всего аукнутся относительно бОльшими расходами на COPQ.
Вариант 2. Служба поддержки (или любая деятельность, которая по своей сути не есть проектом, а есть повседневной операционной деятельностью, или для простоты – конвейером).
Этот вариант является просто идеальной почвой для «экспериментов» по выявлению наилучшего соотношения COQ, COPQ и собственно стоимости предоставления услуг. Путем внедрения улучшений можно определить какой процесс и какое соотношение COQ и COPQ способствует наилучшему соотношению стоимости, количества и качества результатов деятельности. Под COPQ в этом случае подразумеваются переделки из-за некорректного выполнения запроса на поддержку.
Кому это надо? Компании Исполнителю для снижения расходов и увеличения удовлетворенности пользователей, клиентов. Но опять же, тогда, когда есть явные проблемы. Если все всех устраивает, то нужно ли что-то менять или считать?
Вариант 3. Проект или долгосрочное партнерство по контракту типа Cost Reimbursable.
Контракт Cost Reimbursable предполагает что Заказчик оплачивает исполнителю его расходы плюс прибыль. Есть несколько разновидностей. Не вдаваясь в подробности, это хорошо подходит для долгосрочного outstaffing, в основном по разработке, развитию или поддержке больших продуктов. Здесь особенность в том, что Исполнитель не очень заинтересован сокращать свои расходы, т.к. на каждый доллар расходов он получает некий % прибыли. И если у Заказчика нет жестких требований к процессам работы, то так или иначе это расслабляет Исполнителя. И этот «расслабон» по традиции уменьшает усилия, входящие в COQ и увеличивает COPQ. В таком типе взаимоотношений Заказчик обычно имеет гораздо бОльший контроль над процессами и в принятии решений, чем в Fixed Price. Поэтому…
Кому это надо? Я бы сказал 50-50 и Заказчику и Исполнителю. Заказчику – для снижения своих расходов и увеличения производительности Исполнителя. Исполнителю – для поддержания репутации и, как результат для сохранения взаимоотношений. Причем, в силу долгосрочности отношений, это также является благодатной почвой для улучшений и оценки их эффективности.
Вариант 4. Деятельность или продукт для систем класса life critical или mission critical.
Здесь, очевидно, доля COQ будет (и должна быть) очень высока, причем все ее аспекты, а особенно превентивная составляющая. И она может легко превышать и собственно долю разработки и долю COPQ. Обычно только достаточно зрелые компании могут обеспечить выполнение процедур, из которых состоит COQ.
Кому это надо? И Заказчику и Исполнителю, причем для обоих фокус скорее не в снижении расходов, или в скорости работы, а в качестве (надежности) таких систем.
Вариант 5. Пилотные проекты с целью развития бизнеса.
Здесь могут быть какие угодно варианты о том, что важно или нужно. От «слепить» что-то побыстрее, до демонстрации зрелости процессов работы. Также играет роль бизнес перспектива, Исполнитель легко может сработать себе в убыток, чтобы заполучить «вкусного» заказчика. Говоря о COQ и COPQ для этого варианта, и основываясь на собственном опыте скажу, что это вариант очень похож на mission critical. Но есть и отличия. К COPQ здесь можно, без преувеличения, прибавить стоимость упущенной возможности, т.е. потенциальную сумму контракта (если вы потеряли потенциального заказчика именно из-за плохого качества «пилота»).
Кому это надо? Однозначно Исполнителю. По-моему, пилотные проекты «вкусного» класса должны рассматриваться как mission critical, с особым вниманием процедурам из COQ.
Вариант 6. Качество устраивает.
В своей деятельности сталкивался с ситуациями, когда заказчик совершенно осознанно диктовал условия по занижению COQ по причине бюджетного ограничения. А именно, или исключались некоторые процедуры по контролю качества, и-или была явно недостаточная пропорция разработчиков или тестировщиков. Заказчику нужно было «напедалить» как можно больше. Причем Заказчик совершенно осознавал к чему это приведет, и его совершенно устраивало то среднее качество, которое он получал. К счастью, такие заказчики были достаточно технически развиты и адекватны.
Кому это надо? В этом случае больше Заказчику, т.к. он совершенно осознает что делает и отдает себе отчет о результатах.
В итоге, чтобы понимать, кто и в каких ситуациях заинтересован в улучшениях, затрагивающих соотношение затрат на COQ, COPQ и разработку продукта (и процедуры входящие в них), нужно проанализировать среду обитания проекта, деятельности. Надеюсь, что приведенные выше варианты прояснили как это можно сделать.
Просьба не воспринимать буквально следующие цифры, это скорее относительные взаимоотношения доли COQ и COPQ в общей стоимости проекта, деятельности. Приведу по тем вариантам, где есть опытные данные.
- Вариант 1. COQ + COPQ – 40-50% от общей стоимости
- Вариант 3. COQ + COPQ – 30-40% от общей стоимости
- Вариент 4. Опытных данных нет, но осмелюсь предположить что COQ + COPQ – 50-80% от общей стоимости
- Вариант 5. COQ + COPQ – 40-60% от общей стоимости
- Вариант 6. COQ + COPQ – 20-30% от общей стоимости, но из COQ + COPQ бОльшая доля принадлежит COPQ
В следующей статье «Стоимость качества. Часть 3 – Как это посчитать?» поговорим о практических вопросах сбора и интерпретации данных для подсчета COQ + COPQ.
Стоимость качества. Часть 2.1 – Зачем это надо?
18 Январь
Продолжаю тему «Стоимость качества», начало было в предыдущей статье «Стоимость качества. Часть 1 – Что это такое?». Здесь выскажу некоторые соображения о том, зачем и когда нам вообще нужно беспокоиться о стоимости качества и качестве как таковом, а также какая польза от того, что мы его можем определить. Под качеством здесь понимается не только качество конечного и промежуточных результатов работы, но и качество инженерных и управленческих практик, принимаемых решений.
Наиболее очевидны ситуации, когда что-то явно идет не так и нужно как-то реагировать. В общих чертах это типичные проблемы со сроками, качеством, бюджетом, а соответственно недовольные заказчик, руководство, команда проекта. Реагировать – значить что-то менять, улучшать, и в большинстве случаев это что-то – рабочие процессы или какие-то организационные моменты.
Но, возникают вопросы:
- Как доказать и убедиться, что улучшение полезно, для кого или чего именно?
- Как понять, чьим интересам улучшение соответствует, или не соответствует?
Небольшое отступление, скорее всего есть инициатор такого изменения, и скорее всего есть участники проекта, с которыми нужно согласовать (доказать целесообразность) внедрение этого изменения и/или получить их разрешение. Ну а убедиться, что изменение помогло нужно наверное всем в нем участвующим.
Основные согласующие-разрешающие участники это заказчик и руководство, они хорошо понимают язык денег и производительности, т.е. количество пригодных результатов, произведенных проектной командой за эти деньги. Соответственно на этом языке и будем стараться говорить далее.
Еще одно необходимое отступление – по поводу производительности. Это некоторое количество работы в единицу времени. Количество работы «по научному» – размер (size). Наиболее понятный пример – Velocity (Story Points per Sprint), где Story Point – одна единица размера. Это конечно не идеальный способ, но все же существенно лучше чем человеко-часы. Или же, за единицу размера могут приниматься какие-то дискретные виды работ (например, разработка стандартного баннера). Тема размера – это отдельная довольно серьезная дисциплина, по этому поводу есть небольшая ознакомительная статья, а более полный комплект доступен здесь (за подписку).
Для плавного перехода к практическому применению давайте сначала для наглядности посмотрим на следующие диаграммы, иллюстрирующие потенциальное влияние изменений. Предположим, что у нас работает стабильная по составу команда, и за последнее время в среднем соотношение затрат между видами работ такое (из спринта в спринт, из месяца в месяц и т.п.). Где «Создание продукта» – это все что не «Total Quality Costs – TQC» (см. Часть 1), т.е. кодирование, требования и т.п.
Соотношение №1
Исходная ситуация. Соотношения приводятся только в демонстрационных целях, у вас могут быть иные.

Предположим, что кого-то такая ситуация не устраивает, то ли по стоимости, то ли по производительности, то ли по качеству.
Решили что следующие улучшения могут быть наиболее полезными:
- ввести инспекцию спецификаций,
- или же добавить нагрузочное тестирование,
- или же ввести инструментарий прослеживаемости (traceability) требований
Пусть это будут Соотношения №№2-4 соответственно. И пусть они для простоты будут внедряться независимо, по-одному. Рассмотрим потенциальные варианты.
Соотношение №2
Инспекция спецификаций помогла, она, как часть COQ (+5%), помогла существенно сократить COPQ (-10%), высвободив ресурсы. Причем, высвобождение может пойти либо на увеличение производительности (Соотношение №2), либо на экономию средств (Соотношение №2.1).


Соотношение №3
Введение нагрузочного тестирования, очевидно, не помогло – производительность команды понизилась (-5%), т.к. время на него тратится, а COQ повысился (+5%). Заметим, что проверка достижения запланированной нагрузки на приложение тоже входит в TQC, а дефекты, вызванные, якобы, нагрузочными проблемами, таковыми не оказались. Значит, «копали не туда».

Соотношение №4
Внедрение инструментария traceability (+5% COQ) на первый взгляд, не сказалось ни на производительности, ни на экономии средств. Но снизило COPQ (-5%), что можно рассматривать как позитивное явление, т.к. часть дефектов всегда просачивается заказчику, а их меньшее количество вообще означает и меньшее их обнаружение заказчиком, что, как минимум, носит положительный репутационный характер.

Из этих рассуждений, а также забегая немного вперед, скажу, что нет какого-то универсального рецепта о корректном соотношении между COQ, COPQ и общей стоимостью проекта, все зависит от приоритетов по производительности проекта, стоимости, качества, интересов основных заинтересованных лиц.
Подводя итог можно сказать, что:
- Во-первых, если что-то кого-то в проекте не устраивает, то проблемы есть, и надо что-то улучшать
- Во-вторых, если проблемы есть, но непонятно что конкретно может помочь, то можно предположить несколько наиболее полезных улучшений
- НО, в-третьих, нужно понимать, чьим интересам какое улучшение соответствует, или не соответствует. Т.к. даже от самого очевидного улучшения не все участники проекта могут быть счастливы
. Об этом в следующей Части 2.2 - В-четвертых, нужно определить, каким образом будет оцениваться успешность улучшений, так чтобы было поменьше субъективных ощущений и побольше цифр и фактов. Об этом в еще одной – Части 3.
Спасибо за внимание, продолжение следует.
Оригинал статьи здесь.
Стоимость качества. Часть 1 – Что это такое?
10 Январь
Хочу предложить вашему вниманию несколько статей, посвященных стоимости качества. Эта, первая часть, приводит некоторые базовые положения на эту тему. В остальных же буду приводить свои соображения по поводу практического внедрения и применения.
Давайте подумаем, во что выливается плохое качество продукции, причем, неважно о чем речь, то ли о программном продукте, то ли о производстве автомобилей. И не только плохое качество продукции, но и плохое качество процесса производства продукции.
Давайте на примере. Допустим, разрабатываем какое-нибудь более-менее сложное приложение без достаточного внимания таким практикам как бизнес анализ и проектирование (элементы процесса). Вдобавок к этому имеем некачественный код, и для полного «счастья» не выделяем достаточного времени на тестирование.
В совокупности вся эта «радость» приводит к:
- Внутренним переделкам, устранению дефектов. Плохо
- Внешним претензиям от заказчика, опять же ведущим к переделкам, а то и к штрафным санкциям. Очень плохо
- Потере репутации и бизнес возможностей. Невыносимо плохо
Итак, существуют такие основные понятия:
- Общая стоимость качества (Total Quality Costs – TQC), что включает:
- Стоимость качества (Cost of Quality – COQ)
- Стоимость плохого качества (Cost of Poor Quality – COPQ)
В разных источниках по-разному определяют, что именно относиться к COQ или COPQ (а то и вообще не разделяют), мы же здесь посмотрим на наиболее распространенное распределение. Причем, я не претендую на абсолютную правоту, в вашей практике вы можете захотеть сделать это немного по-другому.
- Стоимость качества (Cost of Quality – COQ)
- Cтоимость превентивных мер (Prevention Costs), например
- Настройка и внедрение процессов (разработки ПО), в организации и/или на проекте
- Обучение процессам, инженерным и управленческим практикам, концепциям качества
- Подбор на этапе инициирования проекта совместимых методологий, технологий, типов контрактов, фаз, которые бы наиболее эффективно достигали бизнес целей проекта/продукта
- Идентификация и внедрение улучшений в организации и/или на проекте
- Планирование качества на проекте – виды работ, направленные на обеспечение качества на проекте
- Стоимость контроля (Appraisal Costs), например
- Инспекции спецификаций, архитектуры продукта
- Инспекции кода
- Разнообразные виды тестирования продукта, как конечного, так и промежуточных результатов
- Приемочное тестирование
- Ассоциированные затраты на разворачивание тестовых сред
- Аудиты процессов, результатов
- Cтоимость превентивных мер (Prevention Costs), например
- Стоимость плохого качества (Cost of Poor Quality – COPQ)
- Стоимость устранения внутренних дефектов (Internal failure costs), например
- Затраты на «багфикс» и переделки кода, документа, архитектуры
- Затраты на непригодные к дальнейшему использованию результаты работы
- Вынужденные ре-тестирование и ре-инспекции
- Стоимость устранения внешних дефектов (External failure costs), например
- То же, что и для внутренних, но обнаруженных заказчиком, плюс
- Обработка претензий заказчика
- Затраты по гарантийным обязательствам
- Контрактные штрафные санкции
- Стоимость непрямых убытков (Indirect poor-quality costs), сложно количественно оценить, но это
- Потеря внешней репутации, потенциально ведущая к сокращению, потере бизнеса
- Потеря внутренней репутации – демотивация, сокращение персонала
- Стоимость устранения внутренних дефектов (Internal failure costs), например
В завершении этой статьи приведу классическую фразу Philip B. Crosby, который внес значительный вклад в практики управления качеством и теорию менеджента:
- «Quality is free. It’s not a gift, but it’s free. The ‘unquality’ things are what cost money.»
Он же ввел принцип «Ноль дефектов, – сделай правильно с первого раза».
Далее, в следующих статьях, постараюсь изложить некоторые дальнейшие соображения по поводу стоимости качества, как минимум видится вот это: а – «Зачем и кому это надо?»; б – «Как это работает?».
Оригинал статьи здесь.







