Гнучкі методології розробки ПЗ
Анотація навчальної дисципліни
Мета дисципліни:
формування теоретичних знань та практичних навичок щодо застосування різних практик гнучких методологій для розробки та управління програмним проектом, вивчення найкращих практик програмної інженерії.
Завдання дисципліни:
ознайомитись з Маніфестом гнучкої розробки програмного забезпечення і 12 принципах, що лежать в його основі;
оволодіти загальними засадами теорії та практик гнучких методологій розробки програмного забезпечення;
вивчити особливості застосування управлінських та інженерних практик, в тому числі з метою мінімізації ризиків успішної розробки програмного забезпечення;
розуміти основні процеси управління проектами, що виконуються за гнучкими методологіями.
Основні результати навчання
Знати основні процеси, фази та ітерації життєвого циклу програмного забезпечення.
Знати і застосовувати відповідні математичні поняття, методи
доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення.
Вміти вибирати та використовувати відповідні задачі методологію
створення програмного забезпечення.
Вибирати вихідні дані для проектування, керуючись формальними
методами опису вимог та моделювання.
Застосовувати на практиці ефективні підходи щодо проектування
програмного забезпечення.
Застосовувати на практиці інструментальні програмні засоби
доменного аналізу, проектування, тестування, візуалізації,
вимірювань та документування програмного забезпечення.
Мотивовано обирати мови програмування та технології розробки для
розв’язання завдань створення і супроводження програмного забезпечення.
Вміти застосовувати методи компонентної розробки програмного
забезпечення.
Знати та вміти застосовувати методи та засоби управління проектами.
Вміти документувати та презентувати результати розробки програмного забезпечення.
Здатність до ефективної роботи в команді.
Форми організації освітнього процесу та види навчальних занять
Л – лекційні заняття; ПР – практичне заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.
Тематика та види навчальних занять
1 тиждень
Л1. Методології розробки програмного забезпечення. Особливості Agile та Waterfall. Agile-маніфест та його принципи.
ПР1. Методології Agile: освоєння основних термінів та визначень. Практичні цінності маніфесту гнучкої розробки. Обговорення шляхів масштабування та впровадження Agile.
СРС. К.
2 тиждень
Л2. Сильні і слабкі сторони Agile. Довгострокове планування в Agile. Основні практики Agile. Agile та визначення бізнес-цінності для клієнта.
СРС. К.
3 тиждень
Л3. Scrum – гнучкий управлінський фреймворк. Принципи та особливості Scrum. Орієнтованість на клієнта і адаптивність фреймворку Scrum. Загальна схема роботи Scrum.
ПР2. Оволодіння принципами роботи з управлінським фреймворком Scrum. Робота з тайм-боксами: планування релізу, планування, перегляд та ретроспектива спринту.
СРС. К.
4 тиждень
Л4. Сильні і слабкі сторони Scrum. Ролі в Scrum. Подібності та відмінності між власником продукту і керівником проекту. Обов'язки власника продукту. Обов'язки Scrum-мастера.
СРС. К.
5 тиждень
Л5. Артефакти Scrum. Історії користувача. INVEST історії користувача. Принципи побудови діаграм згортання.
ПР3. Практичне оволодіння артефактами Scrum. Створення User story, Story mapping, Story Points. Побудова діаграми згортання.
СРС. К.
6 тиждень
Л6. Scrum-покер – ігровий метод для оцінки складності виконання задачі: процедура проведення та переваги методу. Гра в оцінювання.
СРС. К.
7 тиждень
Л7. Методологія бережливого виробництва Lean Management. Постулати Lean. Перегляд алгоритмів роботи компанії згідно з Lean Management.
ПР4. Практичне оволодіння методологією розробки програмного забезпечения Lean. Робота з макропоказниками та мікропоказниками.
СРС. К.
8 тиждень
Л8. «Витрати» в методології Lean. Наслідки та причини помилок в управлінні. Недоцільність та необгрунтовані складності в управлінні розробкою програмного забезпечення.
МКР1. СРС. К.
9 тиждень
Л9. Методологія розробки програмного забезпечення Kanban. Основні принципи та умови застосування. Візуалізація процесів. Дошки та картки в Kanban, обмеження кількості незавершеної роботи.
ПР5. Практичне оволодіння методологією розробки Kanban. Робота з дошкою Kanban.
СРС. К.
10 тиждень
Л10. Kanban та Scrum: спільні риси та особливості. Карта потоку створення цінності: призначення, спосіб формування, практичні приклади застосування.
СРС. К.
11 тиждень
Л11. Екстремальне програмування (XP). Методологія ХР. Правила ХР. Ролі в ХР-проекті. Методики XP. Родина методів xDD. Правила розробки через тестування за технікою Test-driven Development.
ПР6. Практичне оволодіння процесами екстремального програмування. Розробка програми з використанням техніки Test-driven Development.
СРС. К.
12 тиждень
Л12. Проблемно-орієнтоване проектування. Модель і загальновживана мова. Контекст. Система персональної відповідальності. Сутності. Об’єкти-значення. Агрегат. Репозіторій.
Розробка, керована поведінкою. Практики BDD. Структура історії. Характеристики хорошої історії. Розробка, керована функціональними можливостями. П’ять процесів FDD. Практики FDD.
СРС. К.
13 тиждень
Л13. Рефакторинг: призначення, умови застосування. Проблеми рефакторингу. Методи рефакторингу.
ПР7. Практичне оволодіння методами рефакторингу. Розбір та удосконалення программного коду з використанням методів рефакторингу відповідно до завдання.
СРС. К.
14 тиждень
Л14. Розширений каталог методів рефакторингу. Практичні програмні приклади. Визначення умов, коли рефакторинг не потрібен.
МКР2. СРС. К.
15 тиждень
Л15. Постійна інтеграція: призначення, умови застосування методів постійної інтеграції. Виконання збірки. Методи постійної інтеграції. Переваги постійної інтеграції. Постійне вдосконалення.
ПР8. Практичне оволодіння методами постійної інтеграції. Розбір та детальний аналіз методу постійної інтеграції відповідно до завдання.
СРС. К.
Індивідуальна робота
Виконується РГР. Метою виконання розрахунково-графічної роботи є оволодіння управлінськими та інженерними методологіями, Agile-практиками, і закріплення знань, отриманих за час вивчення дисципліни «Гнучкі методології розробки програмного забезпечення». Розрахунково-графічна робота передбачає командну роботу зі створення програмного проекту з використанням гнучких методологій.
1–2 тижні
Одержання й уточнення завдання.
3 тиждень
Визначення профілю студента у команді.
4-5 тижні
Написання User Stories.
6 тиждень
Оцінювання складності історій користувача в T-shorts.
7-8 тижні
Будування Story Map, розробка плану першого спринта.
9 тиждень
Моделювання тайм-боксу. Демонстрація методології Scrum.
10 тиждень
Застосування принципів Lean для визначення втрат в процесі розробки (принцип eliminate waste).
11 тиждень
Застосування принципів Lean для знаходження джерел навчання в процесі розробки (принцип amplify learning)
12 тиждень
Проведення ретроспективи.
13 тиждень
Оформлення презентації та пояснювальної записки.
14 тиждень
Командний захист розрахунково-графічної роботи.
Процедура оцінювання
Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних та практичних занять, виконують 2 модульні контрольні роботи.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі.
Кожний модуль оцінюється у максимально можливі 50 балів.
Модульна робота складається з теоретичної частини та практичної частини - задач.
Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №1 становить 16 балів, за виконання практичної частини – 14 балів. Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №2 становить 16 балів, за виконання практичної частини – 14 балів.
Кількість питань теоретичної частини модульної роботи №1 – 2. Кожна правильна відповідь оцінюється в 8 балів. Кількість питань теоретичної частини модульної роботи №2 – 2. Кожна правильна відповідь оцінюється в 8 балів.
Кількість задач модульної роботи №1 – 1. Правильне розв’язання кожної задачі оцінюється в 14 балів. Задача вважається розв’язаною, якщо надані повні відповіді на питання щодо управлінських методологій Agile. Кількість задач модульної роботи №2 – 1. Правильне розв’язання кожної задачі оцінюється в 14 балів. Задача вважається розв’язаною, якщо надані повні відповіді на питання щодо інженерних методологій та Agile-практик.
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів. Залік оцінюється за системою: «зараховано», «не зараховано». Оцінка «зараховано» виставляється за умови отримання не менш, ніж 60 балів за всі види робіт.
Семестровий модуль № 1
ПР1- ПР4. Оцінка за виконання – 10 балів. Термін виконання – 1-8 тижні.
МК1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.
Семестровий модуль № 2
ПР5- ПР8. Оцінка за виконання – 10 балів. Термін виконання – 9-15 тижні.
МК2. Модульна контрольна робота – 30 балів (14 тиждень).
РГР. Оцінка за виконання – 20 балів. Термін виконання – 1-14 тижні.
Підсумковим контролем з дисципліни є накопичувальний залік.
Умови допуску до підсумкового контролю
Залік отримують здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни не менш, ніж на 60 %.
Політика освітнього процесу
Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх не зрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.
Виконаний не свій варіант завдання здобувачем не оцінюється.
Робота, яка виконана після встановлених викладачем термінів, не приймається.
Відсутність здобувача на контрольній роботі відповідає оцінці «0».
Складання/перескладання заліку – за встановленим деканатом розкладом.
Під час лекції здійснювати телефонні дзвінки забороняється.
Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних контролів з дисципліни.
Документи (файли), що додаються: Робоча програма навчальної дисципліни.
Література
1. Agile: практическое руководство. – Project Management Intitute, Олимп-Бизнес, 2019. – 182 с.
2. Грин, Дженнифер. Постигая Agile, 2-е изд. «Манн, Иванов и Фербер», 2018. – 448 с.
3. Фаулер, М. Рефакторинг. Улучшение проекта существующего кода (перевод) / М. Фаулер, К. Бек, Д. Брант. – Addison–Wesley: Символ-Плюс, 2018. – 432 c.
4. Пихлер, Р. Управление продуктом в Scrum. Agile-методы для вашего бизнеса. – МИФ, 2017. – 240 с.
5. Голдштейн, И. Scrum без ошибок. Инструменты, техники и советы для тех, кто работает по Agile (перевод). – The Addison-Wesley Signature Series: Манн, Иванов и Фербер, 2019. – 288 с.
6. Андерсон, Девід Дж. Канбан: Успішні еволюційні зміни для вашого технологічного бізнесу (переклад). – Фабула, 2021. – 288 с.
7. Sutherland, J.J. The Scrum Fieldbook. A Master Class on Accelerating Performance, Getting Results, and Defining the Future. – Currency, 2019. – 272 p.
Методична література
1. Конспект лекцій з дисципліни “Гнучкі методології розробки програмного забезпечення” для студентів спеціальності 121 – «Інженерія програмного забезпечення» /Укл.: Н.О.Комлева. – Одеса: ОНПУ, 2018. – 56 с.
2. Методичні вказівки для практичних занять з дисципліни “Гнучкі методології розробки програмного забезпечення” для студентів спеціальності 121 – «Інженерія програмного забезпечення» /Укл.: Н.О.Комлева. – Одеса: ОНПУ, 2018. – 32 с.
Додаткова література
1. Komleva, N., Liubchenko, V., Zinovatna, S., Kobets, V. Risk Management with Lean Methodology // Proceedings of 1st International Workshop on Computational & Information Technologies for Risk-Informed Systems (CITRisk-2020), Kherson, Ukraine, October 15-16, 2020. – Vol. 2805. – P. 266–281. http://ceur-ws.org/Vol-2805/paper20.pdf
2. Hundermark, P. Do Better Scrum / P. Hundermark. – InfoQ.com, 2015. – 76 c.
Відкритий доступ: https://www.infoq.com/minibooks/do-better-scrum
3. Scrum.org: The Home of Scrum. Scrum Guide 2020 Updates [Electronic resource] Режим доступу: https://www.scrum.org/scrum-guide-2020?utm_source=InfoQ&utm_medium=website
4. Kniberg, H. Kanban and Scrum – Making the Most of Both / H. Kniberg, M. Skarin. – InfoQ.com, 2009. – 78 c. Відкритий доступ: https://qconsf.com/sf2009/dl/qcon-sanfran-2009/slides/HenrikKniberg_Kanb...
5. Kniberg, H. Scrum and XP from the Trenches / H. Kniberg. – InfoQ.com, 2009. – 94 c.
Відкритий доступ: https://www.infoq.com/minibooks/scrum-xp-from-the-trenches-2
6. Marinescu, F. Domain Driven Development Quickly / F. Marinescu. – InfoQ.com, 2006. – 97 p. Відкритий доступ: https://www.infoq.com/minibooks/kanban-scrum-minibook.
7. Doing Scrum with Multiple Teams: Comparing Scaling Frameworks [Electronic resource] Режим доступу: https://www.infoq.com/articles/scrum-multiple-teams-frameworks/