Скрам-паттерны для предсказуемости команд

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

Разработчики непрофессионалы или…?

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

“Злые” проблемы

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

Хорст Риттель и Мелвин Уэббер определили «злую» проблему как проблему, которая может быть четко определена только путем ее решения или решения ее части. Этот парадокс подразумевает, по сути, что вы должны «решить» проблему один раз, чтобы четко определить ее, а затем решить ее снова, чтобы создать работающее решение. (Стив Макконнелл)

Читать далее «Скрам-паттерны для предсказуемости команд»

Аварийная процедура (Emergency Procedure)

Эд Аттербери, коллега Джеффа Сазерленда, сбит зенитной ракетой над Ханоем. На изображении видно, как он прыгает с парашютом!

…компании, команды и отдельные сотрудники часто обнаруживают, что не могут поставить продукт вовремя, и Sprint Burndown Chart свидетельствует о неизбежном провале. Для работы в Аджайл-стиле необходимы быстрое определение проблем и оперативная реакция.

✥ ✥ ✥

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

Есть много причин для срывов Спринта, в данном паттерне рассматриваются три основные из этих типичных проблем:

Для гибкости необходимо быстрое реагирование на изменения, а для этого проблемы должны выявляться как можно раньше. К сожалению, часто новые команды и среднестатистические команды не хотят, чтобы проблемы становились заметными. В частности, они не хотят останавливать работу, устранять проблемы и подвергаться критике. На первом заводе NUMMI (New United Motor Manufacturing, Inc) компании Тойота в Америке руководители из Японии посетили фабрику через шесть месяцев после открытия и увидели, что сотрудники боялись дергать шнур-андон — если дернуть этот шнур, срабатывает сигнальная лампа и начинается обратный отсчет, после которого конвейер останавливается. Рабочие не останавливали конвейер достаточно часто, чтобы разрешать свои проблемы. Руководство дернуло за шнур несколько раз, чтобы остановить конвейер и продемонстрировать рабочим, что самым главным препятствием было их нежелание останавливать конвейер. Остановка конвейера позволяет заметить проблемы и правильно их разрешить. «Отсутствие проблем — это проблема», как гласит мантра японских руководителей. Читать далее «Аварийная процедура (Emergency Procedure)»

Swarming: one-piece flow

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

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

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

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

Предположим, команда пытается увеличить выработку путем параллельной работы, когда каждый сотрудник работает над одним элементом Бэклога Продукта (PBI). Работая в одиночку, члены Команды разработки с большей вероятностью сосредоточатся на разработке элемента, а не на его тестировании, в частности, потому что специалистов, обладающих компетенциями и желанием проводить тестирование, намного меньше, чем специалистов для творческих задач проектирования и разработки. Если в ходе Спринта возникает задержка нескольких элементов, возрастает риск того, что к концу Спринта PBI не придут к статусу «Готово». Что еще хуже, некоторые разработчики из Кремниевой долины и Европы, работающие над сложным программным обеспечением, обнаружили, что если не выявить и не исправить ошибку в ходе Спринта, один час тестирования кода может превратиться в 24 часа тестирования три недели спустя. Если команда откладывает тестирование, а не применяет Сворминг, то элемент, который можно было бы поставить через месяц, будет поставлен через два года. Читать далее «Swarming: one-piece flow»