Project management (rus), Requirement management (rus)

Статья “Использование системы управления требованиями Devprom в проектах заказной разработки по ГОСТ”

На странице блога Software People опубликовано продолжение статьи на тему внедрения системы управления требованиями: перейти к прочтению второй части.

Традиционный скрин:

kiselev storonkin softwarepeople

Standard
Project management (rus)

Big Data Analytics for dummies

Прочитал “Big Data Analytics for dummies”, эту книгу позволяли бесплатно скачать участникам вебинара про Jama Contour. Книга достаточно бестолковая, но в ней всего 55 страниц и поверхностные знания она всё-таки дает (ну или позволяет сориентироваться куда копать). Например, вот пара названий продуктов:

Сама книга выглядит вот так:

Снимок

Standard
Project management (rus)

Поставка

Чем больше изучаю забугорные практики управления требованиями и проектами – тем интереснее становится. Ну, например – нельзя поручать работу по оценке длительности проекта одному человеку, поручи её и менеджеру, и тим лиду, а потом сравни результат.Кстати, deliverables у нас называют “Поставкой”, так что, весьма вероятно, что вам и читать дальше не требуется.

Итак, первым делом опеределяем:

  • Какова цель проекта?
  • Что заинтересованные лица хотят получить в конце проекта?
  • Какие различные документы должны быть приняты в течении проекта?Цели проекта достигаемы/недостигаемы (в т.ч. можно ли это оценить)?
  • Будет ли проект требовать многоуровневой предварительной работы?

Далее идём по шагам:

  1. На основании выделенных целей проекта выделяем задачи, которые необходимо выполнить, размещаем их в репозитории.
  2. Производим оценку данных задач.
  3. Создаем временную диаграмму или приоретизированный список задач так, чтобы успеть до конца проекта. Следует указывать зависимость задач друг от друга.
  4. Требуется разместить контрольные точки, которые будут своеобразными “маяками” для руководителя проекта.

Ну вот и всё, пока что я ищу дополнительные рекомендации.

Standard
Project management (rus), Requirement management (rus)

Практики продуктовой разработки, которые я хотел бы видеть в заказной

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

Если кратко, то в ней я рассказываю о:

  • Заказной разработке
  • Этапах превращения проекта в продукт, какие при этом есть нюансы
  • Типовых проблемах заказного проекта
  •  Какие практики управления требованиями из продуктовой разработки я хотел бы видетьв  заказной
  • Кратко о методологиях разработки
  • Систематизация требований
  • Благодарности и дополнительный слайд – последствия данного подхода (как вариант их можно трактовать как дополнительные работы)

Итак, вот сама презентация:

И хотелось бы сразу добавить важный комментарий от Натальи Желновой (из SlideShare):

Это какая-то очень частная картина мира. У нас, например, есть постановки задач. И тезис про ‘меньше работы’ (урезание функционала) верен только в той ситуации, когда есть серьезные ограничения проекта по срокам/финансированию. Иначе вполне можно подумать, как сделать так, чтобы заказчику было лучше/удобнее работать с системой. Хотя бы для того, чтобы сохранить клиента на будущее.  Словом, я в очередной раз повторяю уже заезженную мысль: процесс управления требованиями НЕ ЗАВИСИТ от того, заказная это разработка, продуктовая или in-house. Все определяется лишь условиями, в которых мы ведем свои проекты, требованиями к качеству конечного результата (как мы можем заметить, для некоторых продуктовых компаний, успешно впаривающих свой продукт, качество не играет особой роли – и следовательно, необходимости в налаженных процессах там нет), а также волей и профессионализмом команды и ее руководства.

Standard
Project management (rus)

Том ДеМарко. Вальсируя с Медведями

Прочитал. Вероятно, если я был бы менеджером, то впечатлился бы больше. Тем не менее, я считаю, что для аналитика есть ряд интересных моментов, а кроме того – аналитик вполне может участвовать в процессе упралвения рисками. Ведь мы, аналитики, более погружены в проект, в отличие от менеджеров. Я приведу наиболее важные и интересные выдержки, а читать ли книгу или нет – выбор исключительно ваш (пишу с планшета, так что мне тяжеловато набирать много текста), в тексте сохранены ссылки на главы книги.

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

Наиболее важные источники неопределенности:
1. Требования к системе: Что именно должна делать система?
2. Обеспечение стандартов взаимодействия: Как будет система взаимодействовать с людьми-операторами и другими системами того же уровня?
3. Влияние изменяющейся среды: Как во время разработки будут изменяться потребности и цели?
4. Ресурсы: Какие ключевые навыки и знания исполнителей возможно будет (при необходимости) привлечь по мере продвижения работы над проектом?
5. Управление: Хватит ли у руководства таланта, чтобы создать эффективные команды, поддерживать боевой дух, обеспечивать низкую текучесть кадров и координировать сложные комплексы взаимосвязанных задач?
6. Сеть поставок: Будут ли другие участники проекта действовать так, как ожидалось?
7. Политика: Каков может быть результат использования политической силы для навязывания ограничений, несовместимых с успехом проекта?
8. Конфликты: Как различные участники проекта найдут компромисс между своими, зачастую несовместимыми, целями?
9. Инновации: Как уникальные для данного проекта технологии и методы влияют на возможный результат?
10. Масштаб: Как повлияет на осуществление проекта увеличение масштаба работ, если раньше у разработчика не было соответствующего опыта?

Управление рисками по сути представляет собой осуществление следующих шагов, включаемых в проект:
1. Используйте процесс идентификации рисков (подробности в главе 14) для составления перечня рисков, которые грозят вашему проекту
2. Убедитесь, что все главные риски проектирования программного обеспечения (подробности в главе 13) представлены в вашем перечне.
3. Проведите всю указанную предварительную подготовку по каждому из рисков:
• Дайте наименование риску и присвойте ему уникальный номер.
• Проведите мозговой штурм для выявления показателей наступления события риска.
• Оцените влияние наступления риска на стоимость и расписание проекта.
• Оцените вероятность наступления риска.
• Рассчитайте подверженность риску в терминах расписания и бюджета.
• Определите заранее, какие меры придется принять, если и когда событие риска наступит.
• Определите, какие меры для ослабления риска следует принять до наступления риска, чтобы обеспечить осуществимость избранных мер реагирования.
• Включите действия по ослаблению риска в обший план проекта.
• Опишите все детали в специальной форме, шаблон которой приведен в Приложении Б.
4. Укажите возможные риски-катастрофы как исходные допущения проекта. Разработайте схему делегирования управления каждым из таких рисков вышестоящему руководству.
5. Сделайте первый подход к оценке расписания, исходя из предположения, что ни один из рисков не материализуется. Другими словами, ваш первый шаг по оценке состоит в определении «даты с вероятностью нанопроцента», то есть самой ранней из дат, к которой вы можете успеть завершить проект. Это отличается от принятой в отрасли практики тем, что мы предлагаем использовать нанопроцентную дату как входные данные процесса составления расписания, а не как его результат. Определите N, используя какой-нибудь из инструментов параметрической оценки, если у вас он есть, настроенный на самые оптимистичные сценарии.
6. Скачайте RISKOLOGY (см. http://www.pmo.ru/riskology). Введите параметры своего проекта в главную рабочую таблицу. Там же введите все индивидуальные настройки, какие сможете найти, опираясь на имеющиеся у вас записи о предшествующей деятельности вашей компании. Замените как можно больше общеотраслевых, заложенных в имитаторе, данных относительно главных рисков имеющейся у вас достоверной информацией. Добавьте индивидуально настроенные рабочие таблицы для всех второстепенных рисков, которые вы отслеживаете. Проведите моделирование для получения диаграммы риска для вашего проекта, добиваясь пересечения с вашей нанопроцентной датой.
7. Выразите, используя диаграмму риска, все обязательства по проекту, в явном виде показывая неопределенность, связанную с каждой планируемой датой и бюджетом. Вместо того чтобы объяснять концепцию диаграмм риска любому из не самых сообразительных заказчиков, отнеситесь к ней как к моделированию своего проекта, сделайте 500 прогонов, показывая все возможные результаты и сравнительную вероятность каждого.
8. Разработайте иерархическую структуру работ, показывающую все задачи, которые нужны для выполнения проекта. Оцените усилия для выполнения каждой задачи, используя любую схему, которую обычно применяете для этого. Мы собираемся использовать эти оценки несколько менее привычным способом: будут приниматься во внимание только относительные веса усилий для выполнения задач, а не их абсолютные значения. Эти относительные веса будут нужны как входные данные для вычисления показателей ООФ.
9. В начале проекта утвердите договоренности по определению входных и выходных потоков данных. Вам следует иметь полную определенность относительно всех потоков данных, вплоть до самого низкого уровня, в пределах первых 12-15% календарного времени. Рассматривайте это как важное контрольное событие проекта. Не переходите к следующим задачам, пока не пройдено это событие. Помните, что неудача с этим показателем, определяющим все потоки, может оказаться роковым предупреждением.
10. Полностью разработайте план разбиения процесса разработки на части до начала осуществления проекта. Используйте это как входные данные для процесса создания плана инкрементных поставок.
11. Когда план разбиения процесса разработки на части завершен, вернитесь к иерархической структуре работ, оцените заново веса задач и выразите задачи в процентах от работы, которую предстоит выполнить.
12. Оцените выгоды с той же точностью, что и затраты.
13. Разбейте требования, содержащиеся в спецификации, до элементарного уровня. Перечислите их в порядке приоритета. В качестве двух критериев установления приоритета выбирайте чистую выгоду для пользователя и технические риски.
14. Разработайте план инкрементных поставок, в котором весь продукт разбит на версии (множество версий, по крайней мере столько, чтобы запланировать появление новой версии примерно раз в неделю). Опишите все требования к элементам соответствующих версий, чтобы пункты с более высоким приоритетом шли раньше. Вычислите ООФ для каждой версии и запишите в план. Рассматривайте план инкрементных поставок как главный результат проекта.
15. Разработайте технологию общих приемных испытаний для данного продукта и разделите их на приемные испытания отдельных версий (ПИn), по одному на каждую версию.
16. Построите график ООФ в соответствии с ожидаемыми датами поставки каждой иерсии. По мере прохождения версиями приемочных испытаний (ПИ) проставьте на том же графике реальные результаты.
17. Отслеживайте на протяжении оставшейся части проекта все риски на предмет наступления или исчезновения и выполняйте планы реагирования всякий раз, когда риски наступают. Наблюдайте за ООФ и его исполнением в сравнении с ожидаемым. Рассматривайте отклонения как признак возможного наступления риска.
18. Поддерживайте в действии процесс идентификации рисков на всем протяжении проекта, чтобы справиться с поздно проявляющимися рисками.

Ниже представлены несколько хитростей, присущих только мозговому штурму в поисках катастроф:
1. Ставьте вопрос в явном виде в терминах ночного кошмара: почему-то это также помогает преодолеть действие неписаных правил, независимо от того, насколько присуще было корпоративной культуре позитивное мышление, ведь по-прежнему считается вполне нормальным вскочить ночью из-за жутких мыслей. Спросите людей, каковы их худшие опасения относительно проекта. Когда они просыпаются в холодном поту от ужаса за проект, что пугает их?
2. Используйте хрустальный шар: Представьте, что у вас есть доступ к хрустальному шару или способность узнавать чудом заголовки газет следующего года. Представьте, что это подглядывание в будущее свидетельствует о бедствии, постигшем проект, но что это за беда? Или, представьте, что ваша компания попала в «колонку идиотов» в журнале The Wall Street Journal, которая располагается посредине первой страницы, а причиной стали бы ужасы, которые творятся с этим проектом. Теперь задайтесь вопросом: «Как это могло случиться?»
3. Опишите противоположные виды на будущее: Попросите людей описать свои самые радужные мечты относительно проекта, а затем обсудите прямо противоположную версию.
4. Спрашивайте о провале, в котором нет виновных: Как может проект потерпеть неудачу без того, чтобы это было чьей-то виной?
5. Спрашивайте о провале, в котором есть конкретные виновники: Спросите людей: «Как бы мог проект провалиться по нашей собственной вине? по вине пользователя? по вине руководства? по вашей вине?» (Это работает, если только убедиться, что все повлечены в действие).
6. Представьте себе частичную неудачу: Спросите, как мог бы проект преуспеть в целом, по оставить одного конкретного участника неудовлетворенным или разгневанным.

Краткий список мер по управлению рисками, которые нужно осуществлять в период с середины проекта и далее, до самого конца:
1. непрерывный мониторинг показателей наступления рисков в поисках такого риска из списка, который кажется готовым перейти из разряда «всего лишь скверной возможности» в разряд «реальных проблем»
2. продолжение выявления рисков
3. сбор данных для наполнения хранилища рисков (базы данных для определения количественного влияния проблем, наблюдавшихся в прошлом)
4. ежедневное отслеживание показателей завершенности (см. ниже)
 
Когда управление рисками действительно ведется и укореняется в корпоративной культуре, проекты смогут пройти все или большинство следующих проверок:
1. Имеется перечень рисков. В этот перечень включены все главные риски проектов разработки программного обеспечения, а также риски, присущие исключительно данному проекту. Риски эти по природе своей причинные (то, что вызовет ужасные результаты, а не то, что само является ужасным результатом).
2. Имеется действующий процесс идентификации рисков. Идентификация рисков ведется открыто, причем приветствуется участие каждого в этом процессе. Конкретные шаги сделаны для того, чтобы можно было безопасно высказывать вслух неприятные вещи. Можно даже открыть анонимный канал для сообщения плохих новостей. Такая схема успешно работает в компаниях некоторых наших клиентов. (Ее не часто используют, но когда используют, это неоценимо).
3. Везде есть диаграммы неопределенности. Их используют для количественного измерения причинных рисков и для выражения совокупных рисков и ожиданий. Корпоративная культура начинает считать непрофессиональным взятие обязательств без упоминания в явном виде об их неопределенности.
4. Имеются цели и оценки проекта, и они никогда не совпадают. Цели могут быть на уровне «нанопроцентной даты» или рядом с ней, а оценки должны быть гораздо более консервативными. Если целью данного проекта является поставка продукта через 12 месяцев, то оценка должна планировать поставку хотя бы месяцев через восемнадцать. В любом случае, конкретный уровень доверия, который связан с любым обстоятельством, должен быть указан диаграммой неопределенности.
5. У каждого риска есть установленный индикатор наступления. Происходит постоянный мониторинг для обнаружения наступления риска.
6. Для каждого риска существует план реагирования и план ослабления. Действия по реагированию на риски включены в иерархическую структуру работ в качестве возможных действий. Действия по ослаблению риска включены в ИСР в качестве необходимых и своевременно осуществляются прежде, чем может возникнуть самая ранняя необходимость ввести в действие план реагирования.
7. Оценивается подверженность каждому из рисков.
8. Существуют количественные оценки выгоды по проекту. После завершения проекта обязательно измеряется реализованная выгода. Имеется упорядоченная по их выгодности (ценности) система компонентов создаваемой системы, используемая как входные данные при планировании версий.
9. В план проекта хотя бы частично встроен инкрементный метод. Некоторые или все версии действительно поставляются заказчикам или происходит псевдопоставка (представляющая собой все необходимые этапы, кроме реальной поставки). Данные о времени, усилиях и т.п. обрабатываются по каждой завершенной версии и используются в качестве показателей завершения во второй половине проекта.

Standard
Project management (rus)

Про планирование

Кстати, прочитав “Роман об управлении проектом” не могу не вспомнить об одной истории. Знавал я одну компанию (он до сих пор весьма успешно работает на рынке), в которой перед тем, как поставить задачу в разработку – она детально прорабатывалась аналитиками. Причем, сначала над ней успевали поработать и бизнес-аналитики и системные, и архитекторы, и, даже разработчики (оценка реализуемости). Кроме того, при возникновении нескольких вариантов решения в компании организовывались отдельные комитеты (или рабочие группы, но все это ыло крайне оперативно), а решение тщательно фиксировалось ля будущих поколений.
Так вот, одну из систем очень скурпулезно прорабатывали  теении 7 месяцев, в итоге была и архитектура БД, и проработанны интерфейсы (с описанием всех возможных взаимозависимостей и проверок), только вот незадача – проект так и не стартовал. На него не нашлось разработчиков, так как все работали на другом, очень критичном для компании проекте. Стартовал ил в итоге проект или нет – я не в курсе, но более чем пол года вся документация “пылилась на жестких дисках”. К ему я это? А к тому, что не смотр на все те замечательные вещи о полной проработке системы до начала её реализации не следует забывать про риски. То, что все разработчики загружены, руководство, на мой взгляд, не могло не знать, но проект тем не менее прорабатывался.
На этом я продолжаю читать книгу “Вальсируя с медведями”.

Standard
Project management (rus)

Роман об управлении проектами

Закончил чтение книги Тома ДеМарко “Deadline. Роман об управлении проектами”. От книги я просто в огромном восторге – действительно читается как роман (хоть и плохой, если смотреть с точки зрения литературного исполнения), я не мог оторваться от книги в течении несколких часов.

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

Standard
Project management (rus), Requirement management (rus)

Как сделать текст «прозрачным»?

… Какой аналитик не хочет, чтобы его тексты воспринимались легко и образно, как картинки? Один мой коллега часто сравнивает текст со стеклом. Через чистое стекло человек сразу увидит всё, что происходит за ним; ему не нужно пытаться смотреть под другим углом и домысливать то, чего совсем не видно. Точно также и с текстом — если он написан понятно, читатель с первого раза правильно поймёт мысль автора, и ему не нужно будет перечитывать отдельные фразы и домысливать то, что не ясно…

Статья: Как сделать текст «прозрачным»?.

Standard
Project management (rus)

Оценка реализуемости проекта (юмор)

Программист – начальнику отдела

Мы не можем справиться с предложенным проектом! Повторяю: HЕ МОЖЕМ! Это
потребует полного изменения структуры дерева наследования, никто в нашем
отделе в ней не разбирается. Более того, никто в компании не знает даже
языка,
на котором это всё было написано, так что даже есликто-то и захочет этим
заняться, он просто не сможет. Если Вас интересует моё мнение, наша компания
вообще не должна соглашаться работать над подобными проектами.

Hачальник отдела – руководителю проекта

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

Руководитель проекта – менеджеру среднего звена

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

Менеджер среднего звена – менеджеру верхнего уровня

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

Менеджер верхнего уровня – управляющему

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

Управляющий – клиенту

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

Источник: uml2.ru

Standard