Хотя принципы скорой (agile) разработки изначально были предложены создателями программного обеспечения, сегодня они применимы практически в любой сфере. В их основе лежат сотрудничество, открытые коммуникации, доверие и независимость, эффективность и непрерывная выдача результатов. Все это способно сформировать долгосрочный позитивный эффект почти в каждой структурной части вашей организации. На прошедшей недавно в Вашингтоне конференции Agile Alliance 2015 старший консультант компании Industrial Logic Тим Оттингер изложил шесть принципов концепции скорой разработки, которые можно использовать фактически повсеместно.
Помните: иногда работа выглядит не так, как вы привыкли
Общее заблуждение относительно скорой разработки заключается в том, что в соответствующей методологии планирование и процессы игнорируются. Возможно, такое и недалеко от истины. Однако важно понимать, что зачастую планирование и процессы выполняются одновременно с самой работой.
«Работа заключается в том, чтобы думать, а не стучать по клавишам, — указал Оттингер. – Мозговые штурмы, обсуждение и даже простое пребывание вместе с членами команды – все это часть работы. Иногда самые удачные идеи и решения приходят в голову не во время многочасового написания кода, а во время прогулки. Нужно считать не время, в течение которого пальцы бьют по клавишам, а время, когда остаются в игре».
Формируйте ценности как можно раньше и как можно чаще
Скорая разработка подразумевает предоставление заинтересованным лицам ценностей на ранней стадии и довольно часто состоит из простой последовательности шагов: планирование, разработка, улучшение, тестирование и выпуск. Затем все повторяется снова. Ключевым условием является выполнение всего перечисленного за достаточно короткий промежуток времени (так называемый спринт), после чего последовательные изменения вносятся по результатам полученных отзывов.
«ВременнЫе ограничения скорого подхода снижают вероятность аварий, ошибок, выбора неверного направления и прочих проблем, – подчеркнул Оттингер. – Рамки сужаются. Будучи разработчиками, мы не знаем достоверно, что на самом деле нравится людям в нашем продукте и как они собираются его использовать, потому что у людей в голове свои тараканы и люди постоянно меняют свое мнение. Нужно преподнести им какой-либо вариант как можно раньше, чтобы у них была возможность сказать 'да', 'нет' или 'почти'. На протяжении нескольких месяцев вы постоянно разочаровываете заказчиков ради того, чтобы в конечном итоге сделать их счастливыми».
Делите все на части — пусть даже со стороны это напоминает хаос
Если ваша команда завалена несметным количеством объемных проектов, необходимо упорядочить их. Разделяйте работу на составные части, которые могут быть реализованы в рамках спринта. Повторяйте это до тех пор, пока все задачи не будут разбиты и распределены с учетом ресурсов каждой команды, с тем чтобы ими можно было управлять. Все это требует интенсивного предварительного планирования – нужно убедиться в том, что задачи бизнеса правильно определены и сформулированы.
Иногда вы будете получать примерно такие указания: «А добавьте-ка сюда интернет-магазин». И здесь возникает целый ряд вопросов. Насколько объемна такая задача? Какие операции будут выполняться в результате ее решения? Как все это должно выглядеть? Как будет использоваться? Задайте соответствующие вопросы, а затем разбейте ответы на более мелкие составляющие. В том-то и состоит мощь хаоса. Со стороны кажется, что ничего не происходит (в силу большого числа составляющих) , хотя сделать предстоит очень много, но группы специалистов различного профиля обладают всеми компетенциями, необходимыми для выполнения этой работы.
Акцентируйте внимание на новых возможностях, а не на скорости. Скорость придет
Еще одно частое заблуждение заключается в том, что agile-методология способствует ускорению работы команды. В какой-то степени это действительно так, но суть в другом. Команда разработчиков полнее реализует свои возможности, выдавая жизнеспособный продукт, а это уже приводит к увеличению скорости.
Возможности определяют последовательность действий, а не выбор какого-то варианта. Они показывают, какой объем работ может быть выполнен за конкретный период времени без ненужных стрессов. Когда это становится понятным, представители бизнеса и команды разработчиков определяют, сколько ресурсов необходимо, чтобы уложиться в заданный промежуток, или каким образом следует скорректировать сроки с учетом ограничений во времени и ресурсах.
Согласно старым представлениям, для увеличения скорости необходимо прилагать дополнительные усилия. Срезая углы, вы укорачиваете путь. Но в конечном итоге все завершается ошибками и созданием продукта низкого качества. Напротив, метология скорой разработки расширяет наши возможности, предполагая совершенствование навыков, приобретение новых знаний, улучшение инструментов, повышение эффективности совместной работы, сокращение непродуктивных операций и уменьшение простоев. И все это в свою очередь помогает идти вперед быстрее.
Будьте готовы к вечному совершенствованию
Как ответить на непременный вопрос: «Когда проект будет завершен?» Ответ очень прост – никогда. В этом и состоит вечное постоянство, особенно в мире программного обеспечения: за словом «завершен» скрывается весьма серьезная неопределенность, ведь постоянные доработки, обновления, исправления ошибок и функциональные изменения, дополнения и изъятия тех или иных функций представляют собой бесконечный процесс. «Проект окончательно завершен, когда последний пользователь удалит последнюю копию программы со своей машины, – заметил Оттингер. – В процессе постоянного совершенствования нельзя вести речь о каком-то завершении. Иначе ваш программный продукт просто устареет и окажется неконкурентоспособным».
Учитывайте эмпирический характер скорых методов
Своей специальности мы обучаемся в процессе выполнения какой-то работы. У всех у нас разные задачи, и «единственно верного способа» создания продукта просто не существует, равно как не существует и способа заставить продукты работать идеально. Поэтому вы должны придерживаться собственных скоростных методик. Нужно искать свой путь, подходящий для вашей компании, ваших проектов и ваших команд. Концепция скорой разработки подтверждает лишь, что предотвратить заранее лучше, чем исправлять впоследствии. Придерживаться непрерывного итерационного совершенствования лучше, чем, после того как работа выполнена полностью, осознать, что все было сделано не так.