Как стать потрясающим 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