Разработка – крайне важный процесс для любого проекта. Ее грамотная реализация поможет быстро и с минимальными затратами получить на выходе качественный контент. Существуют разнообразные технологии разработки. Каждая обладает своими особенностями и нюансами.
Довольно популярен подход типа «Аджайл». Соответствующая методология встречается на практике чаще остальных существующих. Это сложный и одновременно простой рабочий процесс.
Далее в статье будет рассмотрен agile, а также разобраны концепции Скрам и Канбан. Каждый разработчик в рабочей группе должен хорошо ориентироваться в них. А еще — знать сходства и различия. Лишь так можно обнаружить максимально эффективный подход реализации программного обеспечения.
О методологии
При продумывании концепций создания контента приходится выбирать одну из нескольких методологий. Наиболее популярный подход – это гибкая методология (agility software development).
Такое название носит термин, объединяющий целый ряд подходов, практик и методов, основанных на ценностях Манифеста гибкой разработки ПО.
Agile – не конкретная методика, которая выбирается командой. Это – технология, включающая в себя гибкие управленческие инструменты и принципы. Аджайл – универсальный вариант. Годится как для применения в программировании, так и для обыденной жизни.
Принцип работы
Любой проект должен быть четко спланирован. Иначе ни согласовать софт, ни провести его тестинг без неурядиц и критических ошибок не получится. Гибкая методология – это эффективное решение для IT-сферы. Изначально agile задумывался исключительно для объединений разработчиков, но со временем его концепции стали применяться в других проектах. И даже в обыденной жизни.
При реализации таким способом изначально составленное ТЗ может корректироваться. В основе работы приема лежат следующие особенности:
- динамика условий внутренней и внешней среды;
- обеспечение взаимодействия с заказчиком и целевой аудиторией – фидбэки;
- анализирование полученной обратной связи.
Все это помогает команде при продумывании проекта находить новые, более эффективные решения для поставленных задач.
В данном случае целостный проект будет делиться на несколько составных частей. Каждая выполняется параллельно с другими. Все «блоки» проекта имеют собственные команды специалистов.
Преимущества
Обычно, обсуждая проект с заказчиком, разработчики стараются получить максимально четкое ТЗ. Но это не всегда оправданно. Особенно при ситуации, в которой заказчики не знали, чего конкретно они хотели: были общие представления о контенте.
У agile выделяют следующие преимущества:
- значительная экономия времени, затрачиваемого на создание ПО – срок выпуска софта относительно быстрый;
- удобное отслеживание текущих результатов;
- грамотно расставленные приоритеты и нагрузка на всех участников команды;
- повышенные полномочия у специалистов.
Если разобраться в гибкой «методике», можно сделать из команды настоящую «экосистему», единый организм, который гарантирует качество и скорость выполнения проекта.
Scrum
Возможность управления проектами разными способами – это путь к качественному выполнению поставленных изначально задач. Agile, Scrum и Kanban – то, что поможет разрабам выбрать технологию создания ПО и дальнейшей его поддержки.
Аджайл – база, которую должен изучить каждый программер. Является основоположником SAFe (Scaled Agile Framework), Канбана и не только.
SAFE – масштабированный гибкий фреймворк. Позволяет применять аджайл в больших группах людей. Особо эффективен в группах численностью более 50 человек. Основоположником стал Дин Леффингуэлл. Носит название Скрам. Чтобы хорошо понять принцип его работы, нужно просто хорошо разбираться в гибких методологиях.
Ключевой особенностью SAFE является сочетание традиционного последовательного подхода, а также принципов гибкого управления. За счет этого Скрам получает необходимые возможности для широкого применения на практике.
Принцип работы
Стоит говорить о принципах реализации Скрам. Здесь весь рабочий процесс здесь будет разбиваться на самостоятельные спринты. Так называют рабочие этапы, которые длятся 1-4 недели. Каждый шаг предусматривает собственные новые задачи, которые распределяются между всеми участниками команды.
Схематично процесс работы выглядит так:
- Владелец продукта дает ТЗ предприятию.
- Разрабы изучают документацию и делят весь жизненный цикл софта на блоки.
- Каждый этап (спринт) получает определенную длительность – до месяца.
- Все имеющиеся задачи делятся и затрагивают членов команды программеров.
- В конце каждого этапа проводится собрание, на котором ведется обсуждение результатов, а также предоставляется отчетность по целям, ошибкам и будущим планам.
- Каждый раз, когда заканчивается определенный шаг создания контента, результат предоставляется заказчику. Он сможет дать фидбек или свои рекомендации по дальнейшей реализации проекта.
Преимущество – это возможность приглашения в команду универсального коллектива специалистов. Не нужно для каждой идеи набирать новых разработчиков.
Дополнительно в процессе принимают участие два новых членов:
- Собственник продукта. Это – тот, кто играет роль связующего звена между исполнителями и непосредственным заказчиком. Специалист, которого назначили на соответствующую должность, будет исполнять роль куратора для всей команды.
- Скрам-мастер. Работающий на соответствующей должности человек отвечает за организацию бизнес-процессов. Он проводит собрания членов команды, а также занимается решением общих вопросов. Этот мастер будет контролировать соблюдение принципов Скрама.
Особенность приема – дробление задачи по отдельным блокам и проведение собраний. В конце каждого на выходе будет набор результатов, который можно протестировать и предоставить заказчику.
Канбан
Agile, Scrum и Kanban – то, что должен знать каждый разработчик в компании. Особенно если речь идет о крупной организации, создающей масштабные проекты.
Канбан предусматривает такие нюансы:
- Относится к гибким методологиям. В основе тоже заложен аджайл.
- Основоположники – специалисты компании Tyota.
- Основной принцип – сохранение баланса между специалистами разных профилей, включенных в ряды компании.
- Разделение команды по статусу здесь отсутствует.
- Универсальные спринты не проводятся.
- Все члены команды находятся на равных.
Если использовать соответствующий подход, то весь рабочий процесс будет поделен на этапы по задачам. Пример: «Планируется», «В ходе выполнения», «Проверка», «Завершено» и так далее. Фиксация производится в наглядном виде – на специальной доске. Она представляет систему продвижения прогресса. Доступна всем в компании.
Несколько слов о нюансах
Эффективность применения Kanban осуществляется за счет времени, затраченного на реализацию той или иной задачи. Рассмотрение производится как отдельными блоками, так и относительного всего проекта.
Если время соответствует установленным нормам или меньше – значит, подход оправдан. Разработчики действовали слаженно, выдали хорошую продуктивность.
Когда хотя бы один этап создания программного обеспечения не укладывается в сроки, нужно выявить причины неурядицы. Дальше – провести тщательный анализ на предмет оптимизации работы: одного члена в команде или нескольких кадров.
Скрам и Канбан – отличия
Scrum и Kanban – это фреймворки. По их описанию бывает трудно понять, в чем заключается разница. Оба основываются на аджайл. А еще трудно понять, какой подход к написанию программного кода будет обладать лучшей эффективностью и результативностью. Далее будут рассмотрены ключевые отличия этих методик с разных точек зрения.
По смыслу
Scrum – это:
- готовое руководство, в котором говорится о том, как организовывать итеративно-инкрементальную разработку нового продукта;
- наличие подробной инструкции – Scrum Guide;
- взаимосвязь всех элементов системы друг с другом;
- при реализации нельзя избавиться ни от одного указанного в «гайде» элемента.
Kanban – это:
- схожесть с ящиком с инструментами – оттуда можно брать все сразу или что-то одно;
- каждый инструмент обладает собственной пользой для будущего релиза;
- спектр выбора зависит от готовности разрабов применять разного рода функции и инструментарий.
В первом случае к изменениям контент будет «нетерпим». Во втором реализовывать оные намного проще.
Цели
Скрам – был создан для того чтобы быстро разрабатывать «то, не знаю что». Пример – инновационные продукты, которых еще нет в мире. Это – основное предназначение метода.
Scrum:
- может быть реализован отдельными продуктовыми подразделениями;
- не требует обязательной корректировки рабочих процессов;
- менее эффективен в объединениях, где отсутствует гибкость бюджета и процессов.
У Канбана итоговая цель – это дать возможность организациям быстро реагировать на изменения, происходящие на рынке. Достигается результат за счет грамотного построения рабочих процессов. В случае необходимости их часть можно быстро «переквалифицировать».
Чтобы достичь успехов с Kanban, нужно целостно смотреть на организацию. При помощи этого – выявлять моменты, мешающие быстрой и оперативной реакции/работе.
Kanban нацелен на изменения во всех компании для обеспечения устойчивости на рынке. Скрам – отвечает за создание инновационного ПО.
Предусловия
Для того, чтобы Скрам был полезен, нужно сделать многое. Можно выделить следующие этапы:
- выделение владельца ПО – представителя бизнеса;
- найти всех 100% необходимых специалистов;
- договориться с руководителями;
- выделить Скрам-мастера;
- скорректировать регламенты при необходимости;
- выделить контент инфраструктуры Скрам-команде;
- обучить всех участников команды Scrum-особенностям.
Kanban предусматривает такие шаги:
- визуализация процесса;
- создание Канбан-доску;
- размещение на специальной интерактивной доске текущий план работ;
- провести анализ положения вещей, на основе которого будут строиться дальнейшие управленческие решения.
Иногда компании при Канбан-подходе достаточно простой визуализации процесса разработки. Она позволяет увидеть целостную картину происходящего.
Принятие решений
Делать контент по любой из методик – это значит разбираться в принципах принятия тех или иных решений. Канбан – инструмент менеджмента. Он больше нацелен на руководство. При нем решения относительно корректировок будет принимать руководитель разработки. Сначала он должен собрать статистику о работе, а затем, опираясь на оную, подвести итоги.
Разница со Скрамом здесь колоссальная. Scrum – это не инструмент менеджмента. Представляет он собой способ организации рабочих процессов для выпуска инноваций.
Чтобы решения по Скраму принимались быстрее, нужно привлекать к анализу и активному участию всю команду из года в год. Сюда будут вовлечены и владельцы ПО, и Scrum-мастера, и разработчики.
Встречи и проведение
Рассматривая Agile, Scrum и Kanban, нужно понимать, что эти подходы отличаются по встречам и формату их организации.
Scrum в проекте:
- делает ставку на командный подход;
- все встречи рассчитаны на вовлечение всех участников группы;
- в основе – коллективное принятие решений;
- цель – координирование движений команды и групповое взаимодействие.
Компетенция здесь – фасилитация встреч. Разница с Канбаном заключается в том, что второй прием – это данные и статистика. Здесь целью является анализ имеющейся информации, выделение системных проблем и принятие решений по устранению обнаруженных ошибок.
Во время встреч при Kanban используется специальная доска. На ней отображается вся необходимая информация.
Скрам и Аджаил – разница
В основе Scrum заложена философия Agile. Но вот в чем заключаются ключевые различия приемов:
- Аджаил – набор принципов и методологий, отдельный вид философии для разных видов деятельности. Скрам – конкретный фреймворк для определения принципов выполнения работ.
- Скрам предоставляет некую свободу действий при реализации поставленных задач. В его основе заложены спринты.
Agile, Scrum и Kanban иногда могут применяться совместно, параллельно друг другу в пределах одного и того же проекта.
Хотите знать про Agile больше? Добро пожаловать на курс «Agile Project Manager» в Otus!