Средний
2 урока
(1 час 4 минуты)
Курс
Agile
Agile - это концептуальный подход, в рамках которого выполняется разработка программного обеспечения. Несколько уроков позволят вам познакомиться с Agile.

#1 — Основные принципы.

Данный цикл статей предназначен для знакомства методами и инструментами гибкой разработки. Я расскажу как моя компания использует agile для быстрой и экономной разработки историй пользователей. В основном мы будем обсуждать инструменты компании Atlassian и рабочие процессы команд разработчиков ПО и менеджеров контента для REALSTREAMS s.r.o. Однако я также буду предлагать вашему вниманию кейсы из других проектов и альтернативные Атлассиану инструменты.

Почему я должен работать в Agile?

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

REALSTREAMS s.r.o. использует Agile, в первую очередь, потому что, даже запустив первый прототип нашего образовательного сервиса, мы все еще не знаем, как будет выглядеть наш конечный продукт. Мне прекрасно известно, насколько разработчики опасаются такой неопределенности. Поэтому они тратят слишком много труда и денег на подготовку идеального продукта. А после этого тратят еще столько же, подстаивая уже законченный продукт под изменившиеся требования пользователей. Получается медленно и дорого, потому что не гибко.

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

ЭРГО: Медленная разработка не может дать идеальный продукт. Она не успевает за изменением требований пользователей и действиями конкурентов. Значит, на делать быстро, не теряя в качестве. Тут и нужен Agile.

Генералисты против специалистов

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

Гибкая разработка в большей степени рассчитана на генералистов. Так, например, Andrew Prentice, менеджер команды обеспечания качества Atlassian, утверждает, что QA должен выполняться всеми членами команды, а не перекладываться на плечи QA инженеров и тестировщиков. Да, это позволяет не играть в пинг-понг с задачами, а сразу выпускать качественный код. Эта мечта любого руководителя проекта не может быть достигнуть, пока исполнитель пребывает в уверенности, что его работа заканчивается сразу за пределами его рабочего стола. Более того, руководитель тоже должен поменять подход и перестать мерять качество кода исключительно количеством успешно пройденных тестов.

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

ЭРГО: Гибкая разработка делает упор на взаимодействии разработчиков, позволяя специалистам взглянуть за пределы своих компетенций. Это сокращает число конфликтов, время на общение внутри команды и, одновременно, повышает качество кода.

Рабочий процесс с Agile

Мир проектов разделяется на стадии разработки и поддержки. SCRUM позволяет быстро начать и успешно закончить проект, Kanban может поддерживать деятельность готового проекта неопределенно долго.

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

Kanban требуется для управления длительными процессами. Идеально для технической поддержки и работы с клиентами. Редакторы REALSTREAMS s.r.o. используют Kanban для работы с потенциальными ведущими, и они всегда четко представляют на каком этапе начинаются проблемы. Проблема видна, если на каком-то этапе образуется настоящая пробка из карточек. И видна она всем и сразу. Руководитель может решить проблему налету, не дожидаясь сбора отчетности. Польза от Kanban не ограничивается визуализацией проблем. С помощью системы досок редактор ясно представлет себе, какое будет его следующее действие. Не нужно лазить в инструкции или отвлекать главного редактора.

ЭРГО: Agile применим как для итерационной разработки (SCRUM), так и для этапа поддержки (Kanban). В каждом случае повышается прозрачность процесса работы и, как следствие, скорость, ведь разработчики понимают причины своих ошибок и меньше путаются в действиях.

Материалы к уроку:
Делись:

Оставь комментарий!

3 thoughts on “#1 — Основные принципы.

  1. Ed Kolganov:

    Очень круто рассказываете!!!
    Очень хотелось бы продолжений.
    Хотелось бы увидеть Agile веб студии, а также agile крупного проекта у которого к примеру 100 000 уников в день.
    Спасибо!!!

  2. Noxwille:

    Дуже цікаво! Дякую!
    Сподіваюсь на не менш цікаве продовження J

Добавить комментарий

Рекомендуемые курсы