Фича что это в agile

Да пребудет с вами Agile: гайд по основным терминам + курсы.

Понятия Agile и Scrum давно и прочно вошли в словарь ИТ-специалистов. Но не каждый, кто руководствуется в своей работе принципами манифеста Agile (или так думает), делает это правильно.

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

Фича что это в agile

Понятия Agile и Scrum давно и прочно вошли в словарь ИТ-специалистов. Но не каждый, кто руководствуется в своей работе принципами манифеста Agile (или так думает), делает это правильно.

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

Содержание

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

Что такое Agile?

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

Кто придумал Agile?

Agile, а точнее Agile Манифест или Манифест гибкой разработки программного обеспечения был сформулирован в 2001 году в США группой Snowbird 17, которая состояла из ИТ-специалистов. Их виденье того, как упростить работу и повысить ее эффективность, и легло в основу Манифеста.

Какие основные идеи и принципы Agile?

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

4 идеи Agile

12 принципов Agile

Фича что это в agile

Какие методологии разработки основываются на принципах Agile?

Это гибкие методологии Scrum, Kanban, экстремальное программирование (XP), DSDM, Crystal, FDD. Самой популярной из них считается Scrum. Ее используют более половины компаний, которые используют Agile-подход.

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

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

Как проходит процесс разработки в Scrum?

Процесс создания продукта начинается не с составления или изучения технического задания, которого в принципе нет в Scrum, а с бэклога.

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

Весь процесс разработки делится на спринты — итерации фиксированной длинны, в течение которых команда выполняет определенный объем работы. Обычно они занимают от 1 до 4 недель.

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

Бэклог продукта, бэклог спринта и инкремент объединяются термином «артефакты Scrum» — это работа, которую нужно выполнить, чтобы завершить спринт или проект.

Фича что это в agile

Как организована работа команды?

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

К ним относятся:

Как распределяются роли в команде Scrum?

Scrum предусматривает три основные роли, которые определяют структуру Scrum-команды. Это Product Owner (владелец продукта), Scrum Master (Scrum-мастер, Scrum-менеджер) и Scrum Development Team (команда разработки, команда разработчиков). Каждая из этих ролей имеет свой набор функций и зону ответственности.

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

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

Команда разработчиков — специалисты, которые выполняют все технические задачи по созданию продукта. Т. е. под этим термином понимаются не только программисты, но и дизайнеры, аналитики и другие участники команды. Команда разработчиков обычно состоит из 5–7 человек (иногда встречается формула 6 ± 3). Важно, чтобы команда была стабильной и все члены группы понимали, как работает продукт, ведь именно команда разработчиков отвечает за его поставку и качество.

Зачем применять Agile?

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

Фича что это в agile

Где и когда стоит использовать Agile-подход?

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

Курсы по Agile

spoiler#handleClick»>Примечание редакции

Стоимость указана на момент подготовки материала и носит ориентировочный характер.

Управление по Agile: Scrum, Kanban, Lean (Нетология)

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

Программа обучения включает знакомство с самыми популярными Agile-подходами и предполагает большое количество практики. Всю теорию вы будете отрабатывать во время выполнения заданий в группах или вместе с экспертами на вебинарах. Студенты научатся Agile-планированию, смогут оценивать и декомпозировать задачи, освоят такие инструменты работы над продуктом, как User Stories, Jobs-To-Be-Done, Lean Canvas.

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

Продолжительность: около 3 месяцев (18 марта — 28 июня).

Agile и Scrum в работе над проектами и продуктами (Coursera)

Курс рассчитан на менеджеров проектов и тимлидов, но пользу от него получат все, кто хочет применять в работе Agile и Scrum, даже далекие от ИТ-сферы люди.

Эта программа — совместный продукт Национального исследовательского Томского госуниверситета, Фонда развития онлайн-образования и ScrumTrek, а преподают на курсе аккредитованные ICAgile коучи и тренеры. За несколько недель на доступных примерах вы разберетесь с системой ценностей Agile и принципами Scrum. Изучите основные преимущества Agile-подходов, особенности процесса разработки в Scrum, познакомитесь с сервисом Trello и поймете, как грамотно организовать работу в Scrum-команде.

Продолжительность: примерно 5 недель (по 1-4 часа в неделю).

Источник

«Не баг, а фича» — учимся понимать язык программистов

Понять смысл IT-терминов можно, только узнав, как они употребляются

Фича что это в agile

Фича что это в agile

Программисты говорят на особом языке, в котором полно терминов и сленга. Эта речь не всегда понятна не только обычным людям, далёким от компьютеров, но и начинающим айтишникам — новичкам в разработке.

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

Фича что это в agile

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

Гораздо проще понять, что значит «пичупидо», если знать контекст, в котором употребляются все эти слова. Поэтому попробую объяснить некоторые термины и сленг на примере истории одного программиста (вымышленного).

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

Новая задача

Ваня — обычный джун в веб-студии. Его работа — поддержка бэкенда сайтов старых клиентов студии.

Джуниор ( англ. junior — младший) в данном случае — младший разработчик в веб-студии. Также бывают мидл- ( англ. middle — средний) и сеньор-разработчики ( англ. senior — старший).

Бэкенд или бэк ( англ. back end — задний край) — серверная часть сайта или приложения, которая нужна для обработки и хранения данных. Его противоположность — фронтенд или фронт ( англ. front end — передний край) — видимая часть приложения или сайта. Если же разработчик занимается сразу фронтендом и бэкендом, его называют фуллстек-разработчиком ( англ. full stack — полная куча / полный набор).

Фича что это в agile

Рабочая неделя Вани начинается с митингов, потому что спринт в его компании длится всего неделю.

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

Спринт — период от одной до четырёх недель, за который сотрудники должны успеть выполнить задачу или задачи. Спринты являются частью Скрам.

Скрам ( англ. scrum) — метод управления проектами. Относится к гибкой методологии разработки эджайл ( англ. agile — гибкий).

На этот раз он получил задачу по добавлению валидации в один из интернет-магазинов. До этого вся валидация была на стороне пользователя.

Валидация — проверка данных, которые вводит пользователь.

Фича что это в agile

До пятницы ещё целая неделя, поэтому с митинга Ваня пошёл сразу в курилку. Достав сигарету, он стал слушать разговор мидла и сеньора:

— Недавно залез в репозиторий, а там одни foobar’ы. Целый час голову ломал, а потом махнул рукой и заново переписал.

— Как наберут новых джунов, так всегда говнокод появляется. Как он вообще код ревью проходит?

— Надо проверить в гитхабе историю коммитов.

Тут Ваня поперхнулся, затушил сигарету и заторопился на рабочее место — от греха подальше.

Репозиторий — хранилище исходных файлов проекта.

Foo и Bar — имена функций или переменных, по которым невозможно понять, зачем они нужны. Использование таких имён допускают в учебниках и документации, но не в реальных проектах, потому что они замедляют чтение и понимание кода другими программистами.

Говнокод — очень плохой код.

Код ревью — проверка кода.

Гитхаб — сервис для хранения репозиториев IT-проектов и совместной работы над ними.

Коммит — запись изменений в репозиторий. Коммит содержит в себе данные об изменениях, комментарий и имя автора коммита.

У стола его уже ждал тимлид:

— Ваня, после того как ты добавил функцию загрузки фотографии в личном кабинете, появился баг. Теперь всё ломается, если ввести промокод.

— Вы уверены, что это из-за меня? Мой код вообще промокодов не касался.

— Уверен. Откати сайт и исправь всё до конца недели — нельзя ждать, пока клиент заметит, что одна из фич пропала.

— Но у меня уже есть задача на эту неделю, я не успею всё исправить.

— Это далеко не первый твой факап, поэтому, если не успеешь, мы поставим новый рекорд — так быстро мы джунов ещё не увольняли.

Тимлид ( англ. team leader — лидер команды) в данном случае — программист, который выполняет роль менеджера. Тимлид редко пишет код, вместо этого он следит, чтобы его команда хорошо справлялась с задачами.

Баг ( англ. bug — жук) — неожиданный результат или неожиданное поведение программы, ошибка.

Откатить ( англ. rollback) — отменить изменения, вернуться к прошлой версии.

Фича ( англ. feature — особенность) — полезная (а иногда забавная) функция / особенность программы.

Исправление багов

Дебажить было сложно, но Ваня не мог облажаться и в этот раз. За год его уже успели уволить из трёх компаний, после четвёртого увольнения его резюме будет испорчено окончательно.

Дебаг (англ. debug — устранение багов) — исправление ошибок в коде программы.

Три дня и три ночи Ваня корпел над кодом, но ничего не выходило. В отчаянии он обратился к коллеге, который проводил код ревью для его коммита в прошлый раз.

— Прости, но если бы я знал, что не так в твоём коде, я бы твой пул реквест не заапрувил.

— Но ты же написал lgtm в комментарии!

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

— Ладно, разберусь как-нибудь.

Апрув ( англ. approve) — подтвердить что-нибудь.

Пул реквест ( англ. pull request) — запрос на подтверждение коммита.

LGTM ( англ. looks good to me — На мой взгляд, хорошо) — сокращение, которое часто встречается на гитхаб в комментариях к подтверждению коммитов. Обычно его используют, когда не получается сказать ничего конструктивного по поводу кода.

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

Пик Балмера — шуточная теория, что при содержании алкоголя в крови между 0,129 и 0,138% (примерно 2 бутылки пива) программист получает сверхспособности к написанию кода. Теорию выдвинул Стив Балмер, CEO Microsoft с 2000 по 2014 год.

Бессонные ночи и пиво сделали своё дело, поэтому Ваня заснул прямо за компьютером.

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

Ненавидя себя, он поплёлся на работу. Сев за рабочий стол и посмотрев в код, внезапно понял, в чём была ошибка (известно, что многие проблемы в разработке приложений решаются, когда программист спит). Исправив всё за пару минут, он пошёл к тимлиду.

— Я разобрался с багом.

— Отлично, но странно, что у тебя ушло так много времени. Давай протестируем твой код и выгрузим на прод.

Прод или продакшн ( англ. production environment — рабочее окружение) — компьютер (чаще всего сервер), на котором запускается готовое к работе приложение.

Тестирование прошло успешно. И хотя Ване стало спокойнее, он не спешил радоваться — за полтора дня нужно было успеть выполнить задачу, на которую требовалась как минимум неделя.

К счастью, недавно он начал изучать JavaScript, поэтому мог просто скопировать код валидации с фронта и переделать его для бэкенда.

JavaScript — язык фронтенд-разработки.

Помучившись день, он всё-таки закончил. Тимлид оценил усилия:

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

Деплой ( англ. to deploy) — процесс перевода кода в рабочее приложение, чтобы запустить его на каком-нибудь компьютере.

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

По крайней мере на этот спринт.

Заключение

Научила ли чему-нибудь Ваню эта история? Возможно. Но вы наверняка стали на один шаг ближе к пониманию программистов. Или даже к тому, чтобы стать одним из них.

Источник

Что такое Agile: методология, команда, оценка эффективности

Рассказываем, что представляет собой лежащая в основе методология, раскрываем основные понятия, объясняем, как устроена agile-команда и как оценивается ее эффективность.

Фича что это в agile

Фича что это в agile

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

Неудобные вопросы

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

Фича что это в agile

Для того чтобы перейти на качественно новый уровень проектной работы, потребовалось коренное изменение парадигмы.

Оказалось, что искать ответы на большинство этих больных вопросов просто незачем. Их нужно снять, а понятия, их породившие, по возможности упразднить. Так на месте поэтапной waterfall-разработки возникли гибкие методологии.

Делай сразу!

Главное мерило эффективности, принятое в гибкой методологии, — продукт. Пока другие только готовят документацию, agile-команды стремятся представить работоспособный прототип. Это как в знаменитой мотивирующей формуле: «„Сделано“ — это лучше, чем „идеально“». Реализуйте первую функцию и начните тестировать её, создавая следующую, и так раз за разом — вот главное правило.

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

Фича что это в agile

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

Горизонтальная организация

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

Принципы формирования agile-команд разнятся в зависимости от конкретного проекта. Например, в музыкальном сервисе Spotify они строятся вот так:

Фича что это в agile

Ещё одна важная ценность agile-команд — взаимопроникновение знаний. Член команды не должен замыкаться в своей узкой области, ему следует стремиться к кросс-дисциплинарности. Это не значит, что программист должен быть и продавцом, а дизайнер — маркетологом.

Важно!
Но иметь базовые знания о смежных специализациях в гибкой разработке необходимо.

Изначально предполагалось, что это просто будет повышать эффективность работы и уровень взаимопонимания в команде, но сегодня, с развитием нейронаук, стало понятно, что такой подход вдобавок обеспечивает поддержание мозга в тонусе и динамичное создание новых нейронных связей. Такое «перекрёстное опыление» знаниями в Agile называется t-shape. Иллюстрация ниже объяснит, почему так, лучше всяких слов.

Фича что это в agile

Как внедрить Agile?

Переход от каскадной разработки, до сих пор привычной для многих организаций, к гибким методам работы над проектами может быть довольно болезненным.

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

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

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

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

Фича что это в agile

Следование им и поможет на этапе внедрения, и будет подспорьем в процессе работы.

Лучше познакомиться с Agile и другими современными методологиями, применяемыми в сферах от IT до медиа и маркетинга, а также погрузиться в построенные на их основе процессы вы сможете, пройдя курс «Руководитель digital-проектов» от Skillbox.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *