Построение процессов в мини-команде
Автор: Степуро Елена Николаевна
Рубрика: 17. Менеджмент
Опубликовано в
XXXI международная научная конференция «Исследования молодых ученых» (Казань, январь 2022)
Дата публикации: 22.01.2022
Статья просмотрена: 21 раз
Библиографическое описание:
Степуро, Е. Н. Построение процессов в мини-команде / Е. Н. Степуро. — Текст : непосредственный // Исследования молодых ученых : материалы XXXI Междунар. науч. конф. (г. Казань, январь 2022 г.). — Казань : Молодой ученый, 2022. — С. 28-32. — URL: https://moluch.ru/conf/stud/archive/416/16936/ (дата обращения: 24.11.2024).
В статье рассматривается один из вариантов планирования работы команды, состоящей из 3 человек, в контексте разработки программного обеспечения. В данном случае рассматривается планирование длиной в 1 год.
Ключевые слова: планирование, программное обеспечение, небольшой проект, Scrum-ban, процессы, Sprint Planning.
Когда попадаешь на проект, где команда совсем маленькая, а твой заказчик — это не большая компания, а типичный программист, то встает вопрос: надо ли что-то планировать или просто плыть по течению, основываясь на динамически изменяющихся отзывах пользователей с форума.
Пожалуй, стоит начать с исходных данных. Итак, у нас есть:
— 2 разработчика + 1 тестировщик + деливери менеджер — это весь состав проекта ;
— бесплатный инструмент с открытым исходным кодом , т. е. все, над чем и как работает команда, может изучить любой желающий;
— сайт и репозиторий — два источника непокрытых дефектов и вдохновений;
— заказчики со стороны , которые хотят внедрить этот инструмент к себе на проект, и соответственно, им нужна платная поддержка.
Таким образом, получаем интересный для сотрудников проект, который оплачивает их работодатель, а богатого клиента надо еще привлечь. То есть увеличить команду не получится на данном этапе. Отсюда вытекает ряд проблем и большое количество задач, которые нужно 3 сотрудникам порешать As Soon As Possible:
— привлечение заказчика со стороны и дальнейшее его удержание;
— разработка нового функционала;
— исправление существующих ошибок;
— стратегия тестирования для обнаружения ошибок до релиза;
— поддержка текущих пользователей;
— оформление репозитория, официального сайта и документации.
Список выглядит небольшим, но на деле этого очень много! При всем этом нужно не обеспечить мини-команде профессионального выгорания.
Предлагаю начать с выбора методологии. Когда не знаешь, с чего начинать, стоит идти от противного — с чего начинать не стоит. Waterfall — не берем, так как не все требования известны и изменяются динамически. А значит, все схожие модели типа V-Модели уже отбрасываются. А что насчет более гибких моделей? Вариант хорош, но как правило, гибкие модели подразумевают, что есть конкретные требования от конкретных пользователей — продуманные, проанализированные и утвержденные. Наши пользователи просто «накидывают идеи». Подобное даже Use Case назвать сложно. Поэтому большинству гибких моделей придется дать отрицательный ответ.
А как же Scrum? Ему тоже стоит ответить «нет». Да, он отлично подойдет, так как требования пользователей постоянно меняются, можно безболезненно менять функционал, а для старта достаточно небольшого планирования. Есть ряд причин, почему нет: 3 человека не смогут поддерживать большое количество постоянно всплывающей документации без овертайма; Scrum подразумевает отчеты, которые сейчас не нужны; метрики будут плохими, но не достоверными. Таким образом, использовать Agile как некую философию [1] будет приемлемо, но полностью использовать Scrum — невыгодно.
Выход прост: совместить Kanban и Scrum — довольно популярное решение [3]. Таким образом, мы сможем выстраивать общение и разработку в более удобном русле, ведя при этом документацию, которая не убьет маленькую команду. От Scrum будет выгодно взять итерации где-то в 3 недели — для выпуска новой версии приложения и обновления документации. От Kanban возьмем опциональные встречи и оценки задач, а также возможность добавлять задачки в любой момент времени.
А теперь надо взять нашу итерацию Scrum-ban и впихнуть в нее ASAP проблемы, описанные в самом начале, распределив все на 3-х человек.
Прежде всего стоит провести груминг backlog: закрыть старые и не актуальные задачи, а также те, которые непонятны (над таким задачами следует посидеть и подумать, зачем это было создано и с какой целью; их лучше во время выстраивания процессов объединить с другими), выставить приоритеты и важность, выставить статусы, назначить ответственных за каждый задачку, уточнить оценку каждой задачки. Если оценку дать не получается, то стоит создать [Spike] для того, чтобы исследовать требования story. Рекомендуется также создать 2 новые story, в которые будет списываться время на встречи и на общение с пользователями. Первая нужна только для первого спринта и груминга, а вторая — тестовая и будет тянуться несколько спринтов, чтобы понять, сколько времени команда тратит на поддержку. После груминга в тестировании не останется долговременных задач. Поэтому основной задачей и довольно большой будет построение тестовой стратегии.
Итак, первые несколько спринтов будут иметь следующий вид: выстраивание процессов поддержки пользователей, построение тестовой стратегии, изучение требований и рефакторинг существующего кода.
Каждый следующий спринт должен быть направлен на создание процесса выпуска новой версии и покрытие тестами функционала, согласно стратегии тестирования. Напомню, что есть два разработчика: 1 — занимается основным функционалом, 2 — занимается Proxy-сервером для новых платформ. Таким образом, список задач для каждого спринта получится следующим:
1 — Разработчик. Исправление дефектов, у которых Severity будет Blocker или Critical. Релиз новой версии.
2 — Разработчик. Разработка Proxy-сервера. Релиз новой версии.
3 — Тестировщик. Поддержка пользователей. Покрытие функционала тестами, согласно стратегии. Тестирование 2-х релизов.
Количество встреч со времен останется прежним, а вот их длительность уменьшится, что положительно скажется на закрытие задач в течение спринта [2]. Как ни странно, но также уменьшится время на поддержку пользователей. Потому что будет собран список возможных ошибок и скрипты ответов, а также покрыты тестами запросы пользователей. Однако, данная тенденция будет видна только после 5-го спринта, то есть где-то через 4 месяца.
При построении такого процесса останется в итоге один вопрос: где взять заказчика. Эти вопросом должен заниматься деливери менеджер проекта. Пока команда работает над поставленными задачами, должен проводиться поиск и анализ потенциальных заказчиков. Когда будет выстроен процесс, необходимо уже осуществлять переговоры, чтобы команда была готова показать, что имеется.
Таким образом, построение процессов даже в маленькой команде требует больших временных затрат. Рассчитывать планирование функционала и новых требований меньше, чем на год не стоит. Это постепенный процесс, реальные результаты которого компания ощутит примерно через полгода.
Литература:
- Деннинг, С. Эпоха Agile. Как умные компании меняются и достигают результатов / С. Деннинг. —: Манн, Иванов и Фербер, 2019. — 384 c.
- Сазерленд, Дж Софт за 30 дней. Как Scrum делает невозможное возможным / Дж Сазерленд, К. Швабер. —: Манн, Иванов и Фербер, 2017. — 256 c.
- Сборник Канбан и точно вовремя на Toyota: Менеджмент начинается на рабочем месте. / Сборник. — 5-е изд. —: Альпина Паблишер, 2021. — 214 c.
Ключевые слова
планирование, программное обеспечение, процессы, небольшой проект, Scrum-ban, Sprint PlanningПохожие статьи
Разработка приложения для управления проектами
В статье автор представляет приложение для управления проектами, разработанное для небольших команд. Приложение включает в себя функции управления задачами, календарь, диаграммы, список пользователей.
CASE-технологии разработки программных систем
CASE — аббревиатура от Computer Aided Software Engineering. Предполагает использование программных пакетов для выполнения и автоматизации многих видов деятельности по разработке информационных систем, включая разработку программного обеспечения или п...
Обработка конкурентных транзакций в распределенных системах на примере Java
При разработке программного обеспечения в высоконагруженных системах требуется определить стратегии при одновременных обновлениях. Множество запросов от одинаковых пользователей приводят к конфликтам транзакций на уровне базы данных. Для предотвращен...
Проектирование хранилища данных для расписания в учебных заведениях
В данной статье производится проектирование и реализация базы данных для анализа и формирования расписания в учебных заведениях. Создается логическая и физическая модели базы данных.
Разработка программного модуля защиты информации методом стеганографии
В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.
Гибкие методологии разработки программного обеспечения
В статье автор анализирует гибкие методологии разработки программного обеспечения, такие как Agile, Scrum, Kanban. Выделяет преимущества и недостатки для Scrum, Kanban.
Возможности Revit как программы для TIM-проектирования
В статье авторы изучают возможности программного комплекса Revit на примере моделирования железобетонной конструкции производственного здания.
Модификация архитектуры web-приложения, основанной на паттерне CQRS, для повышения производительности
В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возмо...
Планирование задач и ресурсов в распределённых системах
В статье рассматриваются аспекты планирования задач в системах распределенных вычислений.
Особенности методологии управления ИТ-проектами
В последнее десятилетие корпорации все активнее уделяют внимание качественному управлению проектом в организации, благодаря которому большинство организаций достигают первоначально поставленных целей. В настоящее время управление проектами играет осо...
Похожие статьи
Разработка приложения для управления проектами
В статье автор представляет приложение для управления проектами, разработанное для небольших команд. Приложение включает в себя функции управления задачами, календарь, диаграммы, список пользователей.
CASE-технологии разработки программных систем
CASE — аббревиатура от Computer Aided Software Engineering. Предполагает использование программных пакетов для выполнения и автоматизации многих видов деятельности по разработке информационных систем, включая разработку программного обеспечения или п...
Обработка конкурентных транзакций в распределенных системах на примере Java
При разработке программного обеспечения в высоконагруженных системах требуется определить стратегии при одновременных обновлениях. Множество запросов от одинаковых пользователей приводят к конфликтам транзакций на уровне базы данных. Для предотвращен...
Проектирование хранилища данных для расписания в учебных заведениях
В данной статье производится проектирование и реализация базы данных для анализа и формирования расписания в учебных заведениях. Создается логическая и физическая модели базы данных.
Разработка программного модуля защиты информации методом стеганографии
В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.
Гибкие методологии разработки программного обеспечения
В статье автор анализирует гибкие методологии разработки программного обеспечения, такие как Agile, Scrum, Kanban. Выделяет преимущества и недостатки для Scrum, Kanban.
Возможности Revit как программы для TIM-проектирования
В статье авторы изучают возможности программного комплекса Revit на примере моделирования железобетонной конструкции производственного здания.
Модификация архитектуры web-приложения, основанной на паттерне CQRS, для повышения производительности
В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возмо...
Планирование задач и ресурсов в распределённых системах
В статье рассматриваются аспекты планирования задач в системах распределенных вычислений.
Особенности методологии управления ИТ-проектами
В последнее десятилетие корпорации все активнее уделяют внимание качественному управлению проектом в организации, благодаря которому большинство организаций достигают первоначально поставленных целей. В настоящее время управление проектами играет осо...