Разработка в 1С [Часть 1 - Agile]

13.05.24

Управление проектом - Agile

В статье рассмотрены практики, применяемые при разработке по методологии Agile.

Введение

С развитием прикладных решений 1С многие команды разработки задумываются об использовании методологии agile. Теперь для автоматизации бизнес-процессов в крупных организациях недостаточно одного-двух программистов. Как правило, команда разработки 1С состоит из Project-менеджера, Аналитиков, Тимлида, Разработчиков, Тестировщиков и, возможно, Тех. поддержки. Project-менеджер составляет планы проектов, распределяет деньги, управляет сроками, настраивает коммуникации, общается с заказчиками, согласовывает требования. Аналитики - собирают требования бизнеса; ставят задачи программистам; настраивают, тестируют и презентуют разработанные фичи. Разработчики пишут новые или дорабатывают существующие конфигурации; разрабатывают пользовательские интерфейсы; создают структуры баз данных. Тестировщики занимаются ручным и автоматизированным тестированием; пишут сценарии тестирования. Специалисты тех. поддержки решают срочные пользовательские обращения. Это может быть как разработчик, так и консультант. Подробнее об обязанностях и компетенциях специалистов 1С поговорим в следующей публикации.

Конечно, конфигурации тоже не стоят на месте. Используются новые инструменты при разработке, такие как EDT, Sonar Qube, GIT. Развиваются приемы тестирования. В некоторых командах можно встретить практику разработки через тестирование (TDD). Сценарное тестирование (BDD) используется еще чаще.    

При развитии платформы, инструментов разработки, усилением команд напрашивается подход с применением практик agile. Возникает потребность частичной поставки фич заказчику; эффективного планирования команды; гибкости к требованиям клиента; прозрачности в этапах работы. Как известно методология гибкой разработки успешно закрывает эти вопросы. В данной заметке я попытаюсь показать подходы agile в командах 1С на примере методологии scrum.

 

   Церемонии/Ритуалы

Коммуникации в agile команде организованы, в основном, по средствам запланированных встреч. Такие мероприятия называются церемониями, ритуалами, митингами и тд. Рассмотрим подробнее несколько популярных встреч, присутствующих практически в любой команде agile.

Планирование - встреча, на которой команда распределяет задачи по разработчикам. Как правило, аналитики заранее составляют пул задач для разработки (беклог). Это могут быть как сложные проекты, разбитые на этапы, так и мелкие доработки с сервис-деска, либо баги.

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

Обзор спринта (Sprint Review) - встреча по обзору выполненных задач. На доске agile(о ней поговорим позже) ставится фильтр на колонку "Выполнено", после чего происходит мини-демонстрация и обзор задач. На данной встрече могут присутствовать как члены команды, так и внешние сотрудники - руководство, клиенты и др.         

Ретроспектива спринта - заключительная встреча, обозревающая проделанную работу команды со стороны. Что получилось? Что не получилось? Команда анализирует и оценивает собственный прогресс, а также анализирует что можно улучшить. Как правило участие во встрече принимают только члены команды.

Помимо вышеперечисленных мероприятий существует еще масса других: PBR, Backlog grooming, 1:1 и т.д. Agile - гибкая методология, поэтому команды могут сами определять состав мероприятий. 

Одно из любопытных мероприятий, практикующее в некоторых командах - Покер планирования (Planning Poker). Встреча посвящена оценке задач. В покере по методу Planning Poker участвует вся команда во главе с менеджером проектов - это одно из условий. Руководитель раздаёт всем участникам по колоде специальных карт. Можно использовать реальные карты. Для удалённой команды подойдут онлайн-сервисы. Правила оценки при этом не изменятся. Процесс игры следующий: берется задача из беклога, зачитывается ведущим встречи, после чего разработчики одновременно и независимо вскрывают карту со своей оценкой. Если все карты близки по значениям, команда оценила задачу примерно одинаково и можно на этом закончить. Если карты с оценками отличаются, то каждый член команды объясняет свое решение в выборе. Обычно реальность находится где-то посередине. Таким образом история оценивается обоснованно и объективно.  

 

Основные процессы в Scrum

Оценка задач

Разберемся подробнее с основными процессами agile на примере scrum. После постановки задач аналитиками, от разработчиков требуется оценка. В agile командах часто используется подход относительных размеров оценки задач. Определяется задача на оценку 1 - это история, которую невозможно, либо не нужно декомпозировать. История, которой присвоена оценка 2 будет в два раза больше чем история, которой присвоена оценка 1 и тд. Какой-то явной формулы для определения размера истории не существует. Оценка в таких условных единицах - это, скорее, сочетание трудоемкости разработки функции, сложности ее разработки, риска, присущего разработке и тп. Чаще всего в качестве пунктов оценки задач используется последовательность Фибоначчи: 1, 2, 3, 5, 8, 13, 21. Пункты 8,13,21 стараются декомпозировать на более мелкие, однако иногда оставляют так как есть. В качестве примеров рассмотрим оценки задач, применительно к 1С разработке. Задача на 1 пункт - это может быть разработка какого-нибудь элементарного варианта отчета; добавление реквизита объекта;  добавление новой роли; описание документации АПИ и тд. Оценка 2 может присвоиться задаче, например, по заполнению первоначальных данных; по разработке не сложного внешнего отчета, обработки, печатной формы; небольшой доработке правил КД, написанию несложного юнит-теста и тд. Оценка 3 ставится задачам еще тяжелее. Например, на разработку отчета по нескольким источникам; разработку несложного АПИ; доработку типовой логики расчета среднего заработка в отпусках/командировках; анализ и отладку типовой ошибки расчета себестоимости и тд. Пятерка присваивается задачам, реализация которых предусматривает некоторые особенности. Например, до конца не принята архитектура разрабатываемого процесса; не описан желаемый интерфейс; нет уверенности, что разработка обойдется только "проверенными" инструментами; сложная логика процесса и тд. Оценки 8, 13, 21 говорят о высоком риске и большой неопределенности задачи, либо о большой сложности. Как правило их стараются разбить на более мелкие истории. Так, например, задача по рефакторингу процесса Скидок в Рознице имеет большие риски и высокую степень неопределенности. Помимо фикса легаси-кода, возможно придется модернизировать архитектуру. Еще один пример - выгрузка данных по номенклатуре. Например, заказчик требует выполнить задачу, используя некий брокер сообщений. В таком случае, оценка задачи может составить 13 пунктов, однако декомпозируя выгрузку на: разработку триггера; обработку и формирование сообщения выгружаемых данных; непосредственную выгрузку; написание документации, историю получится разбить на пункты 3, 3, 3, 1. Таким образом, зная скорость работы команды и сложность задач, оцененную в пунктах определяется приблизительный срок проекта.  

 

Scrum-доска

Планирование, распределение и оценка задач происходит на Scrum-доске (Рисунок 1). Scrum-доска похожа на многоколоночный список элементов, позволяющий команде разработчиков:

  • отслеживать все задачи, которые необходимо решить, работая над текущим проектом; 
  • контролировать процесс работы. Наблюдать за сотрудниками и грамотно распределять между ними задачи/функции;
  • следить за прогрессом текущего спринта. Чтобы задачи вовремя попадали в список выполненных; 
  • проводить аналитические совещания с целью обсудить успехи команды.

В бэклог добавляются истории от аналитиков. В колонку "Сделать" переносятся задачи на разработку. "В работе" показывает какими задачами сейчас занят разработчик. "Сделано" - выполненные задачи. Доска может быть гибкой. Часто команды добавляют свои колонки, либо удаляют не нужные. Например, 1С-разработчики с развитием инструментов используют еще статусы "На ревью", "В тестировании". 

 

Рисунок 1 - Scrum-доска

 

Спринты

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

  • длина релиза;
  • уровень неопределенности;
  • простота получения обратной связи;
  • продолжительность сохранения неизменности приоритетов;
  • готовность продолжать работу без получения внешней обратной связи;
  • издержки итерационного подхода;
  • быстрота появления ощущения острой нехватки времени.

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

 

Перепланирование

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

Гибкая разработка - залог успеха

В заключении отметим основные преимущества подходов agile. Гибкая разработка приводит к непосредственному общению команды с бизнесом. Учитываются приоритеты историй, но в то же время команда готова оперативно подстроиться под новые требования. Разработка проекта сводится к серии коротких итераций, которые обычно длятся несколько недель. Каждая итерация сама по себе выглядит как программный проект в миниатюре и включает все задачи, необходимые для выдачи мини-прироста по функциональности. Приоритизация, оценка в пунктах и перепланирование позволяют минимизировать риски и неопределенности. 1С разработка прекрасно подстраивается под описанные практики и подходы.

Основные плюсы:

  • Нет нужды составлять длинное ТЗ - вместо этого формируется гибкий список задач на основе желаний клиента.
  • Бюджет гибкий - если деньги закончились, заказчик все равно получит работающий проект, пусть и с меньшим количеством функций.
  • Меньше бюрократии - нет нужды согласовывать сразу всю документацию по проекту, достаточно получить одобрение руководителя по одному вопросу. Разработка других задач в это время не прекращается.

 

P.S.: Публикация подготовлена по книге "Agile: оценка и планирование проектов" Майк Кон.

Agile; Scrum

См. также

Радио "Аналитик", 17 выпуск 2 сезона. Про модель Кеневин с Андреем Путиным

Лидерство Личная эффективность Agile Анализ потребностей и поиск решений Бесплатно (free)

В семнадцатом выпуске второго сезона подкаста Радио “Аналитик“ обсудили, что из себя представляет модель Кеневин, чем и в каких ситуациях она может быть полезна тем, кто работает в сфере ИТ и не только.

19.04.2024    485    0    Radio_Analyst    0    

5

Проекты 1С по Scrum глазами Scrum-мастера

Agile Бесплатно (free)

Agile в ИТ встречается все чаще, и об адаптации гибких технологий под проекты 1С задумываются многие. Расскажем о ключевых инструментах и точках приложения усилий для успешного внедрения Scrum при разработке в 1С.

28.07.2023    2408    0    olegminkov    4    

7

Календарь Agile на 2024 год

Agile Руководитель проекта Россия Бесплатно (free)

Продукт команды №7, 6 поток (курс Марии Темчиной «Управление ИТ-проектами. Agile. Практический курс Agile-лидера»)

13.06.2023    1454    8    dimbasbear    1    

2

Формула успешного внедрения DevOps и Agile в 1С: от неудачи к неудаче без потери энтузиазма

Agile Бесплатно (free)

На конференции Infostart Event 2021 Post-Apocalypse выступил директор практики БИТ:ERP компании Первый БИТ Глеб Стальной. В ходе доклада он рассмотрел трансформацию проектного подхода в продуктовый, рассказал про имплементацию «современных» практик DevOps и продемонстрировал инструменты для разработки, взаимодействия с бизнесом и клиентами, применяемые в его команде.

27.02.2023    2478    0    glebushka    2    

13

Бывает ли Agile в проектах 1С?

Agile Бизнес-аналитик Руководитель проекта Бесплатно (free)

Это один из вопросов, которые мне задают довольно часто. Ну да, Эджайл, Скрам, технологии, методологии,  красивые слова. Но где вы видели это в реальности в 1С внедрениях????

06.12.2021    4256    0    MariaTemchina    49    

13

Самые честные истории про внедрение Agile на практике

Agile Бесплатно (free)

Есть сообщество в Facebook'е и Инстаграм, которое публикует жизненные комиксы про внедрение гибких технологий на практике - Comic Agile.

01.04.2021    3793    0    MariaTemchina    18    

16

Пришиваем хвост: нужен ли Эджайл в 1С или глупости это всё?..

Agile Руководитель проекта Бесплатно (free)

Коллеги, приглашаем поучаствовать в опросе - Agile в проектах внедрения 1С: реально работает или это миф? Интересен практический опыт!..

12.03.2021    8406    0    MariaTemchina    86    

27

9 советов, как уговорить девушку. Точнее, как уговорить Заказчика работать по Agile, когда он этого не хочет

Agile Руководитель проекта Бесплатно (free)

Как знает большинство старожилов Инфостарта, я люблю устраивать разного рода онлайн-обсуждения. И эта статья написана как раз по итогам такого рода вебинара-дискуссии. 

16.02.2021    5479    0    MariaTemchina    45    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rambomax 13.05.24 08:23 Сейчас в теме
Вот интересно стало после прочтения: а есть ли какой-то практический смысл у описанной корявым русским языком этой нездоровой суеты? Т.е. цель всего понятна: чтобы ничего реального не делать, заниматься суетой и никто не был виноват - про это говорил ещё А.Райкин 50 лет назад: "к пуговицам претензии есть"?
Есть ли реальный пример, когда команда суетологов, работающая в описанном выше режиме, действительно смогла выдать что-то, за что не было бы мучительно стыдно и в разумные сроки?
Есть ли в нашей стране в 21 веке Заказчики, готовые оплачивать "покер разработчиков"?
Прикрепленные файлы:
user596529_a-ivashenko60; nastos; tolikforever85; siamagic; RustIG; +5 Ответить
2. RustIG 1643 13.05.24 09:48 Сейчас в теме
(1) из моих наблюдений: эджайл разворачивается внутри каждого предприятия внутри штата своих сотрудников - так его легче внедрить. Поэтому фраза
Заказчики, готовые оплачивать "покер разработчиков"

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

тезисно, из моих наблюдений:
1. в каждой фирме и на каждом предприятии каждый руководитель по своему интерпретирует и распространяет управленческие практики. Для кого-то совещание - это собрать всех с разных отделов в пон-к и задать направление на неделю. Для тим-лида разработки 1с - условно, совещание это раз в две -три недели собрать разработчиков не всех сразу, а объединенных проектом, задать вопросы - получить ответы. Совещания можно проводить по разному.
А в целом, да, все слова синонимичны, но не стоит зацикливаться на этом.

2. И в советское время и сейчас специалисты и руководители продолжают проходить обучение разным методологиям. Думаете, в советское время никто из руководителей не ездил в другие страны на стажировку? "Советская школа" развивалась не один день, а десятилетия, и до сих пор продолжает существовать и передавать знания молодым - никуда она не делась. Только вот массово никто не преподает "советскую школу управления"- знания передаются в институтах , на производстве, в общении на форумах, конференциях. А система эджайл - наоборот получила свой каркас и внятную структуру для передачи и распространения знаний поколениям и за пределами одной страны.

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

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

4. Если у заказчика и исполнителя все-таки случился крупный проект, постепенно он из водопадного трансформируется в эджайл....
dimaster; +1 Ответить
3. rambomax 13.05.24 10:48 Сейчас в теме
(2) За долгие годы жизни я вывел своё "неравенство Гейзенберга": система либо управляема, либо эффективна. Эффективная система не управляема, а управляемая - не эффективна. Пример: "банда Махно" определённо контролирует что-то с минимумом затрат, а регулярная армия всегда всё делает одинаково управляемо (круглое носит, квадратное катает), но максимально затратно.
Перенос принятия решений на "митинги" это попытка переложить руководителем своё непонимание целей и сути разработки на исполнителей. В итоге получается очень эффективно, абсолютно неуправляемо и порождает много весёлых картинок в стиле "что хотел Заказчик, как понял Аналитик, что в итоге сделал Программист".
В реальной жизни что-то реальное, осязаемое и зримое всегда получается только тогда, когда есть кто-то, кто определяет общий вектор и берёт на себя ответственность за конечный результат. А слово "команда" говорит как раз о том, что никто не хочет отвечать за конечный результат, поэтому пуговицы будут пришиты, но костюма не получится.

Прямая аналогия: в 30е годы прошлого века были очень популярны шахматы. Настолько популярны, что устраивались "турниры", причём вид этих турниров иногда был очень показателен для нашего обсуждения - на стадионе люди играли роль шахматных фигур.
Если бы не было шахматиста, то никакие "митинги" среди фигур не привели бы ни к какой "победе в партии". И никакие "интервью" никого из участников партии никак не могли бы объяснить какая партия тут разыгрывается.
Этот пример хорошо показывает, что никакие "участники событий" про сами события ничего ценного рассказать не могут вообще)))
Прикрепленные файлы:
nastos; siamagic; +2 Ответить
5. RustIG 1643 13.05.24 10:51 Сейчас в теме
6. siamagic 13.05.24 19:48 Сейчас в теме
(1) Пришло от вражин, там другой стиль работы - набирают кучу дурачков, в надежде что кто-то выстрелит, и чтоб у детского садика были хоть какие-то правила внедряют нечто подобное, наши инфоцыгане как всегда не поняли и творят дичь с 3 - 10тью программистами )

Хотя по сути 1С это классический RAD, ну звучит не так красиво и буржуи не пользуют поэтому творят суюту. К тому же если в разработке ПМ не программист ему делать больше некуй кроме как рисовать таблички.
8. user596529_a-ivashenko60 27.05.24 12:43 Сейчас в теме
(1) Я рад, что на подобные статьи про "ценность агил" (а их немало) появились комментарии в духе: пора бы уже разобраться в якобы "полезности" и якобы "прогрессивности" хрени, втюхиваемой под названием agile.
4. RustIG 1643 13.05.24 10:49 Сейчас в теме
"Пользователь не знает, чего он хочет, пока не увидит то, что он получил." Эдвард Йодан
nastos; tolikforever85; +2 Ответить
7. user596529_a-ivashenko60 27.05.24 12:42 Сейчас в теме
Я рад, что на подобные статьи про "ценность агил" (а их немало) появились комментарии в духе: пора бы уже разобраться в якобы "полезности" и якобы "прогрессивности" хрени, втюхиваемой под названием agile.
9. Dimbayyyy 190 27.05.24 17:12 Сейчас в теме
(7) Agile действительно очень крутой подход. Возможно нужно изучить еще какие-нибудь методики, но пока я не представляю современную разработку в большой команде без agile.
Оставьте свое сообщение