Диплом: Создание современной системы управления с использованием последних трендов геймификации

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
2
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ .......................................................................................................... 3
ГЛАВА 1. СОВРЕМЕННЫЕ МЕТОДЫ УПРАВЛЕНИЯ ............................... 6
1.1. Методология Agile ................................................................................... 6
1.2. Методология Scrum ................................................................................ 12
1.3. Методология водопада .......................................................................... 16
1.4. Kanban ..................................................................................................... 19
1.5. Выводы первой главы ............................................................................ 21
ГЛАВА 2. ВОЗМОЖНОСТИ И ИСТОКИ ГЕЙМИФИКАЦИИ .................. 22
2.1. Основы геймификации .......................................................................... 23
2.2. Подходы геймификации в бизнесе ....................................................... 25
2.3. Формирование геймифицированной системы управления ............... 29
2.4. Определение подходящих методов управления ................................. 33
2.5. Выводы по второй главе ........................................................................ 41
ГЛАВА 3. РАЗРАБОТКА ПРИЛОЖЕНИЯ .................................................... 42
3.1. Выбор технологий .................................................................................. 42
3.2. Установка зависимостей ........................................................................ 43
3.3. Создание клиентской части приложения ............................................ 48
3.4. Создание серверной части приложения ............................................... 75
3.5. Выводы по третьей главе ....................................................................... 84
ЗАКЛЮЧЕНИЕ ................................................................................................. 85
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ......................................... 89
ПРИЛОЖЕНИЯ ................................................................................................. 92
Приложение 1. Результаты опроса интереса разработчиков к бонусам . 92
Приложение 2. Схема отправки запросов на добавление в команду ...... 93
Приложение 3. Проверка токена перед обработкой запроса .................... 94
3
ВВЕДЕНИЕ
Разработка программного обеспечения на сегодняшний день – одна
из наиболее развивающихся сфер экономики. От работы многочисленных
приложений, информационных систем, программных продуктов зависят
многие жизненные сферы, от экономики до здравоохранения. Однако при
всей важности их работы разработка, поддержка и правила взаимодействия
внутри команд разработки представляют собой далеко не самую
эффективную систему.
Управление разработкой программного обеспечения, даже несмотря
на существование разнообразных инструментов и методологий, не
показывает результатов, удовлетворяющих ни команду разработки, ни
заказчиков, ни менеджмент организации. Эти проблемы выражаются в
следующих аспектах:
1. Слабая интеграция разработчиков с общими идеями и интересами
компании. Как следствие - низкая заинтересованность разработчиков
в том, чтобы выдавать качественный продукт в сжатые сроки.
2. Слабая прогнозируемость сложности и длительности процессов
разработки. Практически никогда работа разработчиков не бывает
сделана в тот срок, который обозначается как ориентировочный, и
процесс разработки занимает больше запланированного времени.
3. Сложность оценки качества работы разработчиков. Даже опытным
разработчикам бывает сложно определить, насколько хорошо или
плохо написан тот и или иной участок кода. В целом, есть очень
немного критериев, по которым можно оценить качество разработки.
4. Низкий уровень проработки модели конечного результата на
начальной стадии разработки ПО. У команды разработки редко
бывает понимание, что именно должно получиться по итогу их
4
работы: полноценного технического задания или вовсе нет, или оно
проработано недостаточно подробно.
Перечисленные выше пункты говорят о том, что перед IT-
разработкой на сегодняшний день стоят серьёзные проблемы, и требуется
найти эффективные средства для их решения.
Объект исследования:
Управление разработкой программного обеспечения.
Предмет исследования:
Изучение возможностей геймификации в развитии методологий
управления программным обеспечением.
Цель работы:
Изучение методов управления в IT-подразделениях, создание
современной системы управления разработкой программного обеспечения
и внедрение её на практике в действующем IT-подразделении.
Задачи:
1. Изучение современных методов управления разработкой ПО
2. Определение сильных и слабых сторон этих методов
3. Изучение предпосылок и психологических особенностей
геймификации
4. Поиск и изучение примеров внедрения геймификации в бизнесе
5. Определение основных потребностей участников всех сторон
разработки ПО
6. Определение методов управления и видов геймификации, способных
удовлетворить эти потребности.
7. Создание новой системы управления разработкой ПО.
5
8. Подготовка к внедрению системы на практике в компании или IT-
подразделении, осуществляющем разработку программного
обеспечения.
Содержание глав:
В первой главе нашей работы мы подробно рассмотрим все
существующие и широко распространённые технологии по управлению
разработкой ПО.
Во второй главе мы изучим предпосылки и причины зарождения
явления геймификации, определим основные возможности её
использования в разработке ПО и рассмотрим существующие примеры,
которые компании сегодня уже с переменным успехом внедряют в свои
отделы.
В третьей главе, используя полученные и описанные в первой и
второй главах знания, мы постараемся создать отвечающую запросам
сегодняшнего дня систему управления IT-отделом, которая вберёт в себя
лучшие стороны из современных методов управления, а также будет
дополнена элементами геймификации.
6
ГЛАВА 1. СОВРЕМЕННЫЕ МЕТОДЫ УПРАВЛЕНИЯ
В ходе работы над проектом руководителю необходимо принять
множество решений. И одно из первых, которое вы необходимо принять –
это выбор методологии управления проектами. Подробно рассмотрим
наиболее популярные методологии и обозначим их преимущества,
недостатки, этапы внедрения, а также о том, когда их следует
использовать.
1.1. Методология Agile
1.1.1. Что такое Agile?
Гибкая разработка программного обеспечения основана на
инкрементном, итеративном подходе. Вместо углубленного планирования
в начале проекта методология Agile открыта для меняющихся с течением
времени требований и поощряет постоянную обратную связь от конечных
пользователей. Кросс-функциональные команды работают над итерациями
продукта в течение определенного периода времени, и эта работа
организована на уменьшение приоритета выполняемых задач, основанный
на деловой или клиентской ценности. Цель каждой итерации - создать
рабочий продукт.
В методологии Agile руководство поощряет коллективную работу,
подотчетность и личную связь. Бизнес-партнеры и разработчики должны
работать вместе, чтобы согласовать продукт с потребностями клиентов и
целями компании.
1.1.2. 12 принципов методологии Agile
Манифест Agile перечисляет 12 принципов для руководства
командами о том, как выполнять с маневренностью.
7
Самый высокий приоритет - удовлетворённость клиента за счет
ранней и непрерывной доставки ценного программного обеспечения.
Приветствие меняющихся требований, даже в позднем развитии.
Изменение гибкости технологических процессов для конкурентного
преимущества клиента.
Выпуск рабочего программного обеспечение часто, от пары недель
до нескольких месяцев, предпочитая более короткие временные
рамки.
Представители от бизнеса и разработчики должны ежедневно
работать вместе над проектом.
Создание проектов вокруг мотивированных людей. Предоставление
им среды и поддержки, в которой они нуждаются, и доверие к ним,
чтобы они выполнили свою работу.
Самый эффективный способ передачи информации в команду
разработчиков и внутри нее - это беседа лицом к лицу.
Рабочее программное обеспечение является основным показателем
прогресса.
Гибкие процессы способствуют устойчивому развитию. Спонсоры,
разработчики и пользователи должны поддерживать постоянный
темп на неопределенный срок.
Постоянное внимание к техническому совершенству и хорошему
дизайну повышает гибкость.
Простота - искусство максимизации объема незавершенного труда -
имеет важное значение.
Наилучшие архитектуры, требования и конструкции выходят из
самоорганизующихся команд.
8
С регулярными интервалами команда размышляет о том, как стать
более эффективной, затем настраивает и соответствующим образом
корректирует свое поведение.
1.1.3. Преимущества Agile
Хотя уровень гибкости в Agile обычно считается положительным
качеством, он также вынужден идти на некоторые компромиссы: трудно
установить твердую дату поставки, документацией можно пренебречь, а
конечный продукт может сильно отличаться от первоначального.
Таблица 1.1 Таблица преимуществ и недостатков технологии Agile
Преимущества
Недостатки
Лёгкие изменения: с более
короткими циклами планирования легко
вносить и принимать изменения в любое
время во время проекта. Всегда есть
возможность усовершенствовать и
переориентировать приоритетность задач,
позволяя командам вносить изменения в
проект в течение нескольких недель.
Планирование может быть менее
конкретным: иногда бывает сложно
определить твердую дату поставки
конечного продукта. Поскольку Agile
основана на поставке с коротким сроком
выхода версий, а руководители проектов
часто переориентируют задачи, возможно,
что некоторые элементы, первоначально
запланированные для доставки, могут
быть неполными вовремя. И
дополнительные спринты могут быть
добавлены в любое время в проекте,
добавив к общей временной шкале.
Конечная цель может быть
неизвестна: Agile очень полезен для
проектов, где конечная цель четко не
определена. По мере продвижения проекта
цели будут раскрываться, и развитие
может легко адаптироваться к этим
развивающимся требованиям.
Команда должна быть хорошо
осведомлена: гибкие команды обычно
невелики, поэтому члены команды
должны обладать высокой квалификацией
в самых разных областях. Они также
должны понимать и чувствовать себя
комфортно с выбранной методологией
Agile.
Быстрая и качественная доставка:
декомпозиция проекта в итерациях
позволяет команде сосредоточиться на
высококачественной разработке,
тестировании и сотрудничестве.
Проведение тестирования во время
каждой итерации означает, что ошибки
обнаруживаются и решаются быстрее.
Обязательность времени от
разработчиков: Agile наиболее успешна,
когда команда разработчиков полностью
посвящена проекту. Активное участие и
сотрудничество требуются на протяжении
всего процесса Agile, что занимает больше
времени, чем традиционный подход.
9
Сильное взаимодействие с
командой: Agile подчеркивает важность
частого общения и взаимодействия лицом
к лицу. Команды работают вместе, и люди
могут взять на себя ответственность и
собственные части проектов.
Документацией можно пренебречь:
манифест Agile предпочитает работать со
сложной документацией, поэтому
некоторые члены команды могут
чувствовать, что можно не
сосредотачиваться на документации.
Клиенты получают обратную связь:
у Клиентов есть много возможностей
увидеть работу, которая будет
поставляться, поделиться своим видением
и оказать реальное влияние на конечный
продукт. Они могут получить чувство
участия в проекте, тесно работая с
командой.
Конечный продукт может быть
очень разным: первоначальный проект
Agile может не иметь окончательного
плана, поэтому конечный продукт может
выглядеть намного иначе, чем
первоначально предполагалось.
Непрерывное улучшение: гибкие
проекты поощряют обратную связь от
пользователей и членов команды на
протяжении всего проекта, поэтому
извлеченные уроки используются для
улучшения будущих итераций.
1.1.4. Цикл разработки Agile
Ниже представлены этапы цикла разработки Agile. Важно отметить,
что эти этапы не должны происходить последовательно; они гибкие и
всегда развиваются. Многие из этих фаз происходят параллельно:
Анализ требований. Этот этап включает в себя множество встреч с
менеджерами, заинтересованными сторонами и пользователями для
определения бизнес-требований.
Планирование. Когда идея считается жизнеспособной и
выполнимой, команда проекта собирается вместе и работает над
определением функций.
Дизайн: Системный и программный дизайн подготовлен из
требований, определенных на предыдущем этапе.
Реализация, кодирование или разработка: эта фаза касается создания
и теста функций и планирования итераций для развертывания.
10
Тестирование. Нужно убедиться, что продукт действительно решает
потребности клиентов и сопоставляет истории пользователей.
Развертывание: после тестирования продукт доставляется клиентам
для их использования.
Рис. 1.1 Схема цикла разработки по методологии Agile
На изображении наглядно представлен весь процесс работы по
методологии Agile, начиная от (1) анализа требований и заканчивая (6)
поддержкой и наблюдением уже выпущенного продукта.
1.1.5. Методологии, которые используются для реализации Agile
Agile – это основа, и в рамках Agile-движения существует ряд
конкретных методов.
Экстремальное программирование: также известное как XP, Extreme
Programming – это тип разработки программного обеспечения, целью
которого является повышение качества и отзывчивость к
изменяющимся требованиям клиентов.
Функциональная разработка: этот итеративный и инкрементный
процесс разработки программного обеспечения смешивает лучшие
отраслевые практики с одним подходом.
11
Разработка адаптивной системы: развитие адаптивной системы
представляет собой идею о том, что проекты всегда должны
находиться в состоянии постоянной адаптации.
Метод разработки динамических систем: эта гибкая платформа
доставки проектов используется для разработки программных и
нетехнических решений. В нем рассматриваются общие неудачи ИТ-
проектов, такие как перерасход бюджета, отсутствующие сроки и
отсутствие участия пользователей.
Lean Software Development: Lean Software Development использует
методы Lean Manufacturing и Lean IT и применяет их к разработке
программного обеспечения.
Канбан: на японском языке это значит «визуальный знак» или
«карта», и является визуальной основой для внедрения Agile. Он
способствует небольшим непрерывным изменениям в вашей
текущей системе.
Crystal Clear: Crystal Clear является частью семейства методологий
Crystal. Он может использоваться с группами от шести до восьми
разработчиков, и он фокусируется на людях, а не на процессах или
артефактах.
Scrum: Scrum - один из самых популярных способов реализации
Agile. Это итеративная модель разработки программного
обеспечения, которая определяет набор ролей, обязанностей и
встреч, которые никогда не меняются. Спринты, обычно
длительностью от одной до трех недель, позволяют команде
регулярно выпускать программное обеспечение.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран