Что такое гибкая методика?

Завершено

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

Мара считает, что ей удалось добиться некоторого успеха в том, чтобы заинтересовать команду продуктом DevOps, но дело не спорилось. Команда была слишком занята исправлением ошибок в последнем выпуске, чтобы думать о чем-либо еще.

Напомним, что Irwin, менеджер по продуктам, предоставил команде некоторые довольно критические отзывы клиентов о гоночном игровом веб-сайте. На устранение этих проблем ушло много сил. Энди и Мара нужно было написать код и затем передать его тест-инженеру Амите. Амита постоянно находила новые ошибки и возвращала код на доработку. Произошел сбой сервера сборки. Тим не мог получить веб-сайт игры для работы в рабочей среде, даже после того, как он работал в разработке и тестировании. Всем приходилось работать сверхурочно и даже пару раз в выходные.

После того как они отправили релиз, Мара и Энди сидели на кофе. Они оба устали. Мара была разочарована, но Энди имел другое отношение.

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

Мара: Да, бывало, и я считаю, что и мы могли бы тоже упростить себе работу. Я уверена, что DevOps поможет нам в этом.

Энди: Я помню, что мы выполнили упражнение по сопоставлению потоков значений, но теперь что? Нам нужно было начинать работу над новым выпуском. Я думал, что вопрос с DevOps закрыт.

Мара: Есть гораздо больше, что мы можем сделать. Думаю, что нам нужно сделать первый шаг и произвести планирование для внедрения гибкой методики. Для этого можно использовать Azure Boards.

Энди: Что вы означаете с помощью Agile?

Мара: Гибкий подход к разработке программного обеспечения. Термин "Agile" был введен в обращение в 2001 году в манифесте гибкой разработки программного обеспечения или, как его еще называют, Agile-манифесте. Этот манифест установил определенные руководящие принципы, чтобы улучшить методику разработки программного обеспечения. В манифесте говорится следующее:

Мы следуем таким принципам:

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

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

Мара: Это не магия, но мы можем сделать это немного по биту. Azure DevOps предоставляет нам инструменты, необходимые для реализации гибких методик. А пока, если мы хотим все спланировать, можно воспользоваться Azure Boards. Для начала не мог бы ты объяснить мне процесс сборки и помочь выявить наиболее значимые проблемы?

После большого количества кофе Мара и Энди определяют самые большие проблемы в процессе сборки. Все проблемы появились во время последнего выпуска. Когда Энди уходит, Мара просматривает свои заметки и решает самостоятельно начать планирование по внедрению гибкой методики. Используя базовый процесс в Azure Boards, ей удается собрать все проблемы воедино.

Далее ей нужно показать эту доску команде и вовлечь их в работу.

Рекомендации по внедрению Agile

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

Создание организационной структуры, которая поддерживает гибкие методики

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

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

Участники команды наставника по методам и методикам Гибкой работы

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

Включение совместной работы между командами и междоменной совместной работы

Если совместная работа является ключом к успеху в Agile, каковы некоторые из способов, которые вы можете поощрять? Ниже приведены некоторые идеи.

Культурные изменения

При изменении языка и региональных параметров помните о нескольких вещах. Важно, чтобы члены команды имели тихое, удобное место для работы. Они нуждаются в пространствах, где они могут сосредоточиться, без большого отвлекающих факторов и шума.

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

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

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

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

Кроссфункциональные группы

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

Средства для совместной работы

Хорошие инструменты помогут участникам группы Agile эффективнее работать как в команде, так и в других командах. Вот несколько средств, которые помогут вам начать работу:

  • Microsoft Teams: Teams — это приложение, которое предоставляет рабочее место для чата, собраний, заметок и хранилища файлов.
  • Skype: Skype легко использовать и хороший инструмент общего назначения. Многие люди уже установили его.
  • Slack: Slack предоставляет множество отдельных каналов связи, все из одного интерфейса. Эти каналы можно упорядочить различными способами, например по проекту, команде или теме. Беседы сохраняются и доступны для поиска. Внутренних и внешних членов команды добавлять одинаково легко. Slack напрямую интегрируется со многими сторонними инструментами, такими как GitHub для исходного кода.

Другие распространенные инструменты включают Google Hangouts, Asana, Trello, GoToMeeting и monday.com. Попробуйте ознакомиться с вариантами, чтобы увидеть, какие из них соответствуют потребностям вашей команды и вашей компании.