Как стать потрясающим agile-разработчиком

Создаем из привычек культуру

Dan Radigan Dan Radigan
Просмотр тем

Agile-разработка — это не только про разработчиков

Никому не хочется поставлять программное обеспечение, в работе которого постоянно возникают проблемы, которое изобилует багами и не отвечает требованиям клиентов. Непрерывная интеграция и проверки кода помогают предотвратить это… но у кого есть столько времени? Оно есть у Agile-команд.

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

Но это того стоит! У разработчиков появляется возможность осуществлять разработку ПО устойчиво и нести ответственность за это, не боясь испортить отношения с лицами, ответственными за коммерческий успех проекта. Последние, благодаря такому подходу, выводят на рынок более качественный продукт, что еще сильнее укрепляет хорошие отношения со специалистами. Кроме того, для Agile-разработчиков не характерны гонки на выживание (и за это они больше всего благодарны). Если разработка отстает от графика по той причине, что для обеспечения высокого качества потребовалось больше усилий, чем ожидалось изначально, восстановить баланс поможет тройственная ограниченность. Просто скорректируйте объем работ, и никому не придется работать на выходных.

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

Но, к счастью, есть и хорошие новости.

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

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

Прочные связи — залог качественного продукта

Важное место в agile занимает командная работа, что неудивительно, поскольку в большинстве случаев ПО сегодня разрабатывают команды. Разработчики выстраивают тесные отношения с руководством по продукту, дизайнерами, специалистами по контролю качества и операторами, потому что для написания устойчивого кода нужно иметь контакт со всеми сторонами проекта. Когда разработчики в Atlassian получили возможность напрямую взаимодействовать с другими подразделениями компании, это привело к значительному росту качества кода и удовлетворенности разработчиков. Код стал лучше, «мусора» (т. е. совмещения обязанностей и (или) конфликтующих потоков работы) стало меньше, а взаимодействие специалистов разного профиля в рамках одной команды стало более эффективным, и это еще не все положительные изменения, которые принес такой подход.

Agile-разработчик | Atlassian — тренер по agile

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

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

Создание кода, культура и agile-разработка на новом уровне

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

Agile-разработка — это путь, а не цель. Мы готовы поддержать вас на каждом этапе этого пути.

продолжение темы
Dev managers vs scrum masters