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

Формирование списка проблем управления проектами в территориально распределенных проектах. Анализ семейства гибких методологий по разработке программного обеспечения. Разработка требований к документу, и его разделов. Содержание разделов документа.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.07.2016
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Таблица 9. Этапы формирование команды в Scrum

Этап

Быстрый переход

Средний переход

Долгий переход

Формирование

0-ый спринт

2-ой спринт

2-ой спринт

Бурление

1-ый спринт

4-ый спринт

6-ой спринт

Нормализация

1-ый спринт

6-ой спринт

10-ый спринт

Функционирование

2-ой спринт

8-ой спринт

16-ый спринт

Расформирование

Завершение проекта

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

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

Наиболее популярные обучающие игры по гибким методологиям:

· agile часы - участники выбирают картинки и слова, которыми можно наиболее точно описать позиции agile манифеста;

· Scrumble - настольная игра, имитирующая процессы разработки в рамках Scrum;

· битва ретроспектив - дает представление о том, как можно и нужно проводить ретроспективы;

· и другие.

Более подробно ознакомиться с обучающими играми для гибких методологий можно на сайте TastyCupCakes (http://tastycupcakes.org/category/agile/).

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

Одной из рекомендованных специалистами практик является рассказывание детских историй со взрослой точки зрения Once upon a time - Agile FairyTales https://agilefairytales.wordpress.com/. Данный метод с помощью простых рассказов позволяет понять, как участники проектной команды подходят к решению проблем. Наиболее полезен данный метод: при формировании новых команд, для установления доверительных отношений внутри команды, научить участников команды смело выражать свои мысли, в качестве триггера для саморазвития.

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

Игры для мозгового штурма

· Близость карт http://www.mindtools.com/pages/article/newTMC_86.htm - хороший способ сбора, организации и рационализации идей. Идея игры заключается в том, чтобы расположить некий контент (идеи, отзывы клиента, задачи на спринт и т.д.) в соответствии с их логической близостью друг к другу.

· Точка зрения http://martinfowler.com/bliki/DotVoting.html - простой способ, позволяющий команде прийти к консенсусу по какому-либо вопросу. Эта техника дает каждому право голоса и возможность ранжировать предложения. Есть также бесплатная онлайн версия для территориально распределенных команд (http://www.dotvoting.org).

Игры для анализа предметной области

· Коробка для продукта http://www.innovationgames.com/product-box/ - данная игра позволяет выделить наиболее важные особенности разрабатываемого продукта. В рамках данной игры владельцу продукта предстоит придумать такую коробку для своего продукта, чтобы он мог заинтересовать покупателя в супермаркете, а затем попытаться продать ее остальной команде разработки.

· Паучья паутина http://www.innovationgames.com/spider-web/ - целью настоящей игры является формирование понимания взаимодействий разрабатываемого программного продукта с бизнесом клиента. Полученная информация впоследствии может быть использована для увеличения прибыли от проекта с помощью интеграции программного продукта с другими сервисами и системами клиента.

Игры для управления требованиями

· Оценка размеров белого слона http://tastycupcakes.org/2009/09/sizing-game/ - данная игра может быть использована как быстрый способ оценки историй пользователей. Основная ценность данной игры заключается в общении и передаче опыта внутри команды.

· Карта сочувствия http://www.solutionsiq.com/what-is-an-empathy-map/ - установление личных отношений являются ключевой активностью, способствующей пониманию клиента или пользователей. Данное упражнение позволяет быстро и просто понять пользователей программного продукта, как команду.

4. ВНУТРИПРОЕКТНЫЕ КОММУНИКАЦИИ ПРОЕКТА

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

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

· ФИО сотрудника

· Должность или роль на проекте

· Логин Skype

· Адрес электронной почты

· Контактный телефон (рабочий и сотовый)

· Филиал, в котором работает участник команды, если человек работает из дома, то указывается город

· Часовой пояс, в котором работает участник команды

· Часы доступности участника команды.

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

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

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

Рисунок 11. Схема взаимодействия проектной команды

5. УПРАВЛЕНИЕ СРОКАМИ И СОДЕРЖАНИЕМ ПРОЕКТА

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

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

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

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

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

Для понимания того какой объем работ был выполнен, какие задачи находятся на какой стадии и что еще осталось сделать применяют практики визуального менеджмента. В данном случае под практиками визуального менеджмента подразумевают использование доски (см. Рисунок 12). Доска разделяется на столбцы соответствующие этапам работы над любой задачей, и на нее помещаются стикеры с историями пользователей. По мере работы над задачей стикер перемещается в соответствующий столбец.

Рисунок 12. Доска для визуализации работы над задачами

Для территориально распределенных команд рекомендуется использование программных продуктов для перенесения доски в виртуальное пространство, например, возможно установления плагина в виде доски в трекинговую систему Jira. Лучше всего комбинировать использование виртуальной и реальной доски, так как команде проще воспринимать реальные объекты, чем виртуальные. Для поддержания доски в актуальном состоянии перед ежедневным митингов каждая часть проектной команды синхронизирует свою локальную доску с виртуальной версией.

Все работы должны фиксироваться в трекинговой системе (Jira, TFS) - это позволит отслеживать фактические трудозатраты по задачам и упростит работу скрам-мастера.

Все встречи проектной команды: ежедневные митинги, обзоры спринтов и ретроспективы должны проводиться в соответствии с методологией Scrum. Подробно с процессом проведения подобных встреч, целями, ключевыми вопросами и так далее, можно ознакомиться в книге К. Швайбера и Д. Сазерленда «Scrum гайд. Исчерпывающее руководство по Scrum: правила игры».

6. УПРАВЛЕНИЕ КАЧЕСТВОМ ПРОДУКТА

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

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

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

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

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

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

7. ОЦЕНКА СОСТОЯНИЯ ПРОЕКТА

В настоящем разделе перечисляются показатели, которые могут быть использованы скрам-мастером для оценки текущего состояние проекта. Данные показатели могут выступать средством принятия решений по внесению изменений в процесс разработки. Следует отметить, что хоть применение всех показателей не является обязательным, для того, чтобы получить объективную точку зрения, необходимо применять комплекс показателей. Набор показателей, которые будут применены на проекте определяется скрам-мастером.

Метрики были разделены на 4 группы в зависимости от направления:

• производительность;

• прогнозирование;

• качество;

• ценности.

Метрики производительности

Ниже приведен список метрик, которые предлагаются для оценки производительности:

· Velocity - количество задач, которые были реализованы за один спринт.

· Storу Cycle Time - время, которое задача находилась в разработке от момента, когда ей начали заниматься, до момента, когда она прошла фазу конечной поставки.

· Lead Cycle Time - время от появления задачи до ее конечной поставки. Включает Cycle Time и время ожидания в очереди на реализацию;

· Wasted Time - время, которое задача проводит в различных очередях, а не непосредственно в работе.

· Work in Progress (WIP) - количество задач одновременно находящихся в работе. Разделяется по разным стадиям работы над задачей.

Классически Velocity рассчитывается в конце спринта. Каждая реализованная задача имеет относительную оценку сложности, которая измеряется в сторипоинтах. Сложность определяется относительно эталонной задачи, которая является понятной и простой с точки зрения реализации для команды. Методы оценки сторипоинтов выделяют разные: числа Фибоначчи, метод «размера одежды», метод логарифмической линейки.

В данном случае, предлагается использовать метод дискретной логарифмической шкалы, который соответствует следующим значениям:

Таблица 10. Дискретная логарифмическая шкала оценки задач

Сторипоинты (SP)

0

Ѕ

1

2

3

5

8

13

20

40

100

,

где n - количество реализованных историй пользователя за итерацию.

Имея данные по Velocity за предыдущие спринты, возможно прогнозирование количества решаемых задач последующего спринта.

Как оценивать Velocity: чем больше значение показателя, тем больше команда сделала за спринт, но так как на значение данного показателя влияет большое количество факторов, опираться только на него не стоит.

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

Показатели Storу Cycle Time, Lead Cycle Time и Wasted Time могут рассчитываться как по окончанию спринта, так и в его середине. Для оценки используют среднее значение этих показателей за период (спринт). Чем меньше значение каждого из этих показателей, тем быстрее и слаженней работает команда.

Показатель Work in Progress (WIP) играет ключевую роль при использовании методологии Kanban. Согласно набору данных предложений предлагается применять практики Kanban, поэтому настоятельно рекомендуется использовать данный показатель. Расчет показателя можно производить как по окончании спринта, так и на ежедневной основе в качестве среза текущей деятельности.

Производить расчет необходимо по каждому этапу работы над историей пользователя, т.е. если этапы работы разделены на: анализ, проектирование, разработку и тестирование, то должны быть зафиксированы четыре значения WIP. Согласно подходу Kanban, следует стремиться, чтобы WIP не превышал 3 задачи на одном этапе одновременно.

Метрики прогнозирования

Ниже приведен список метрик, которые предлагаются для оценки качества прогнозирования:

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

· Sprint Burndown Chart - Chart - это диаграмма, позволяющая ответить на вопрос о степени готовности задач, и понять укладывается ли команда в рамки спринта.

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

Нужно стремиться, чтобы значение показателя стремилось к 1, то есть к соответствию плановых трудозатрат фактическим. Допустимым считается колебание в 0,2. Значение показателя нужно трактовать следующим образом:

· Значение показателя равно 1 - оценка была проведена верно, абсолютное совпадения плана и факта.

· Значение показателя меньше 1 - задача было недооценена.

· Значение показателя больше 1 - задача было переоценена.

По окончании проекта может быть построена общая диаграмма аккуратность оценки задач (см. Рисунок 13).

Рисунок 13. Диаграмма аккуратности оценки задач за период

Sprint Burndown Chart (диаграмма сгорания спринта) - это диаграмма, позволяющая ответить на вопрос о степени готовности задач и понять укладывается ли команда в рамки спринта. Представляет собой две линии плановая и фактическая линии оставшихся трудозатрат в разрезе дней в рамках спринта.

Плановые трудозатраты рассчитываются исходя из следующих факторов:

• длительность спринта (количество рабочих дней, выпадающих на спринт);

• количество людей в команде, задействованных на спринт;

• загрузка по проекту (количество часов в день).

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

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

Рисунок 14. Пример диаграммы сгорания спринта

Метрики качества

Ниже приведен список метрик, которые предлагаются для оценки качества разрабатываемого функционала:

· Technical Debt Points - это показатель, отражающий процент трудозатрат в спринте, запланированных на устранение низкоприоритетных ошибок, оптимизацию существующего кода.

· Post Sprint Defect Arrival - количество ошибок, которые возникают после окончания спринта и относящиеся к задачам предыдущих спринтов.

· Post Release Defect Arrival - количество ошибок, которые возникают после релиза.

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

Показатель Post Sprint Defect Arrival рассчитывается по окончании каждого спринта, а Post Release Defect Arrival рассчитывается по окончании каждой итерации. Чем меньше значение этих двух показателей, тем лучше налажен на проекте процесс тестирования и инспекций.

Подходы для оценки ценности

Ниже приведен список подходов, которые предлагаются для оценки ценности разрабатываемого функционала:

· Customer Satisfaction Survey - опрос, используемый, чтобы оценить, насколько заказчик удовлетворен программным продуктом и насколько он соответствует потребностям бизнеса.

· Employee Satisfaction Survey - опрос или календарь, используемый, чтобы понять насколько участник проекта удовлетворен процессом работы на проекте.

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

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

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

Рисунок 15. Пример использования niko-niko календаря

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

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.