Спешная разработка решения до согласования требований — здоровое ли это управление проектами?

Я работаю 4 года в сфере ИТ (в качестве разработчика и руководителя отдела контроля качества) и только что присоединился к этой компании в сентябре 2018 года в качестве системного аналитика.

Вот некоторые сведения о компании и проекте, которым мы занимаемся в данный момент:

  1. Компания имеет сертификат CMMI Level 3.
  2. Команда состоит из разработчиков, которые пришли в компанию всего 2 месяца назад, а PM работает в компании 8 лет.
  3. Проект запущен 2 месяца назад.
  4. Этот проект не имеет фундаментальных концепций/базы для демо
  5. Команда практикует гибкую методологию (мой первый раз с agile)

Вот что я заметил в текущей СОП/рабочем процессе команды:

  1. Все требования пользователей до сих пор не были должным образом задокументированы и подписаны.
  2. После сбора требований PM поручил разработчикам закодировать решение (в соответствии с идеей/визуализацией PM), пока решения еще не задокументированы, и обсудить с клиентом для подтверждения.
  3. Пока решения либо все еще находятся в стадии разработки, либо уже завершены для демонстрации, PM отправляет разработанный процесс клиенту для проверки. Отзывы клиентов с изменениями (иногда незначительными, иногда серьезными), и PM просил команду внести изменения в соответствии с отзывами в течение следующих нескольких часов / дней.
  4. PM всегда получал звонок от клиента, после звонка в 90% случаев в системе будут вноситься некоторые изменения (изменение существующих функций или добавление новых функций), и иногда команде нужно сделать это в ближайшие несколько часов / дней.
  5. Сегодня премьер обсудил эту Идею А со мной и разработчиками. Я задокументировал это и отправил в личку для отзывов. Через несколько дней, когда мы упомянули об Идее А, PM спросит, почему мы используем Идею А, поскольку это неправильно, и попросит нас перейти на Идею Б.

Это здоровое управление проектами? Я выразил свою озабоченность менеджеру проекта по поводу того, что мы должны иметь надлежащую документацию (URS, FRS и т. д.) и подписаться, чтобы предотвратить частые изменения идей/запросов и выиграть время для разработчиков, но менеджер проекта сказал, что этот клиент не беспокоится об этом. это и не будет следовать процедурам. Что мы должны сделать, чтобы справиться с этими сценариями?

Какова ваша роль? Как эта проблема касается вас? Почему вам решать эту проблему?
Привет Тодд! Моя роль здесь — системный аналитик. Эта проблема затронула меня, потому что я работал с методом водопада в течение последних 4 лет в предыдущей компании. В этой текущей компании/среде нет стандартизации/СОП, определяемой как вновь присоединившаяся команда. Я говорил об этом с премьер-министром, так как боюсь, что если эти сценарии продолжат существовать, это повлияет на производительность команды. Это также повлияет на меня, чтобы я подумал, должен ли я продолжать работать в такой среде.

Ответы (3)

Конечно, не выглядит здоровым, как описано :/. Я не могу говорить по всем пунктам, но один кусок:

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

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

Если вы не приступите к рабочему/демонстрационному программному обеспечению до того, как клиент или проектный менеджер попросят внести изменения, ИЛИ если изменения всегда имеют наивысший приоритет, то вы никогда не войдете в ритм поставки работающего программного обеспечения, и проект будет предсказуемо завершен. хрупкий и напряженный. :(

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

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

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

Команда практикует гибкую методологию (мой первый раз с agile)

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

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

Есть некоторые проблемы с текущим подходом:

PM поручил разработчикам кодировать решение (в соответствии с идеей/визуализацией PM)

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

Отзывы клиентов с изменениями (иногда незначительными, иногда серьезными), и PM просил команду внести изменения в соответствии с отзывами в течение следующих нескольких часов / дней.

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

ПМ всегда получает звонок от клиента

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

PM спросит, почему мы используем идею A, так как это неправильно, и попросит нас перейти на идею B.

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

Привет Барнаби! Спасибо за вашу ценную информацию! Я согласился с реализацией для дизайна. Но не будет ли лучше, если мы набросаем решения и предоставим их клиенту до того, как разработчики приступят к кодированию? Я не уверен, применимо ли это в Agile. Надеюсь, вы могли бы мне посоветовать!
Я также предложил продакт-менеджеру позволить разработчикам взять на себя больше ответственности за разработку, например: позволить им решать/планировать, как должны работать функции/база данных, поскольку они знают, что лучше для этого. Но премьер-министр, похоже, сомневается в их возможностях и заставит команду разрабатывать дизайн на основе предложения премьер-министра. Иногда мне кажется, что менеджер по программному обеспечению переходит черту, занимаясь микроуправлением техническими аспектами. Иногда разраб. Командные решения кажутся сложными (они хотели обеспечить масштабируемость базового кода в будущем), но PM настаивает на упрощении.
Нет ничего плохого в том, чтобы сделать предварительный дизайн. Однако важно понимать, что люди обычно гораздо лучше оставляют отзывы о работающем приложении, чем о дизайне. Хитрость заключается в том, чтобы найти правильный баланс для вашей команды: достаточно начального дизайна, чтобы начать работу, но также оставлять место для изменений, вытекающих из отзывов, когда клиент увидит приложение. Вот что такое Agile — предвидеть изменения и адаптироваться к ним.
Чтобы ответить на вопрос «дизайн перед кодом»: есть agile-слоган: «Создавайте неправильные вещи быстро» (я бы добавил «и дешево»). Идея состоит в том, что первая вещь, которую вы создаете, неизбежно будет не совсем правильной, и что в целом более эффективно создавать что- то быстро, что люди могут использовать и давать значимые отзывы, чтобы следующая итерация была ближе к тому, что они хотят. .

«Хотите верьте, хотите нет, но в реальном мире ответ может быть – может быть, нет, но мы все равно должны это сделать».

«Аджайл» — это, прежде всего, идеал. (Ценная и полезная перспектива, но, тем не менее, «идеальная».) Как таковая, она содержит определенные упрощающие допущения — которые могут быть или не быть верными — как в отношении «клиента», так и в отношении обстоятельств, при которых клиент" может иметь дело. К счастью, в вашей команде есть продакт-менеджер с «8-летним опытом работы в этой компании». ("Аллилуйя.")

Компьютерное программное обеспечение очень требовательно, и его разработка занимает много времени ($$$!!) . Таким образом, команда может быть направлена ​​в определенном направлении до того, как это направление будет полностью понято, зная, что результатом будет доработка. Требования клиента могут быть выполнены до того, как клиент (!) полностью узнает, какими окажутся окончательные требования, или примет (или узнает) окончательные бизнес-решения, которые их определят.

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

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

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