# Аналіз предметної області
# Вступ
В даній лаборатоні присутні:
- Основні визначення
- Підходи та способи вирішення завдання
- Порівняльна характеристика наявних засобів вирішення завдання
- Висновки
- Посилання на джерела
# Основні визначення
Система управління проєктами (Project management software, PMS) (opens new window) - це набір інструментів, що допомагає команді планувати, розподіляти ресурси, координувати роботу та стежити за її виконанням.
Проєкт (Project) (opens new window) - це набір завдань, спрямованих на досягнення конкретної мети або результату у встановлений термін та з використанням обмежених ресурсів. Успішність проєкту оцінюється тим, наскільки результат відповідає початковим вимогам.
Методологія Agile (Agile Methodology) (opens new window) - це підхід до управління проєктами, що полягає в гнучкості, адаптації та поступовій реалізації завдань через короткі ітерації.
Етапи проєкту (Project Phases) (opens new window) - це конкретні стадії життєвого циклу проєкту, включаючи ініціацію, планування, виконання, моніторинг та закриття.
Ризики проєкту (Project Risks) (opens new window) - це ймовірні події або умови, які можуть вплинути на досягнення цілей проєкту як позитивно, так і негативно, тому їх слід передбачати і управляти ними PMI.
Ресурси проєкту (Project Resources) (opens new window) - це всі елементи, які необхідні для виконання проекту. До основних ресурсів відносяться: люди, матеріальні та фінансові ресурси та час.
Артефакт (Artifact) (opens new window) - це об'єкт або документ, що є результатом процесу розробки і містить важливу інформацію для проєкту, наприклад, технічну документацію.
Контроль версій (Version control) (opens new window) - це система, яка постійно фіксує зміни в проєкті, щоб зберігати його попередні версії для майбутнього використання.
# Підходи та способи вирішення завдання
# Життєвий цикл розробки програмного забезпечення
- Життєвий цикл розробки ПО
Життєвий цикл розробки програмного забезпечення (Software Development Life Cycle - SDLC) — це процес створення ПЗ, який охоплює всі етапи, від початкового задуму до підтримки готового продукту. SDLC допомагає організувати розробку програмного забезпечення таким чином, щоб забезпечити якісне виконання проєкту в межах часу, бюджету та вимог.
- Основні етапи
- Аналіз вимог
- Проєктування
- Розробка
- Тестування
- Впровадження
- Обслуговування та підтримка
На даному етапі замовник надає всю необхідну інформацію для розробки продукту відповідно до своїх очікувань. Будь-які неясності вирішуються на цьому етапі. Бізнес-аналітик і керівник проєкту зустрічаються із замовником, щоб з'ясувати, що потрібно створити, хто кінцевий користувач, та яка мета продукту. Після збору вимог створюється документ SRS, який повинен бути зрозумілим для розробників і затвердженим замовником.
На цьому етапі вимоги, зібрані в документі SRS, використовуються як вхідні дані, і визначається архітектура програмного забезпечення, яка використовується для реалізації розробки системи.
Розробка починається після того, як розробник отримує проектний документ. Дизайн програмного забезпечення перекладається у вихідний код. На цьому етапі реалізуються всі компоненти програмного забезпечення.
Тестування починається після завершення кодування. Програмне забезпечення тестується, а виявлені дефекти передаються розробникам для виправлення. Тестування триває, доки ПЗ не відповідатиме очікуванням замовника, з використанням документа SRS як стандарту.
Після тестування, його розгортають у виробничому середовищі або проводять перше UAT-тестування (User Acceptance testing), залежно від очікувань замовника
Після розгортання продукту у виробничому середовищі, підтримка продукту, тобто, якщо виникає якась проблема, яку потрібно виправити, або якщо потрібно зробити якесь покращення, здійснюється розробниками.
# Waterfall (каскадна модель)
Каскадна модель (Waterfall) — один із найстаріших підходів до розробки ПЗ. Етапи виконуються послідовно, без повернень до попередніх.
Плюси каскадної моделі- Легкість управління проєктом
- Зрозумілі дедлайни та бюджет
- Проста організація тестування
- Висока вартість виправлення помилок на пізніх етапах
- Замовник бачить продукт лише після завершення розробки
- Велика кількість документації збільшує час на узгодження
# Agile
Agile — це методологія управління проектами, яка акцентує увагу на співпраці, гнучкості та ітеративному розвитку. Основні принципи були вперше викладені в "Agile Manifesto" у 2001 році, і головною метою є підвищення ефективності команд через пріоритет взаємодії між людьми, працюючим продуктом та гнучкістю до змін.
Основні принципи:
Люди важливіші за процеси та інструменти
Взаємодія та командна робота є пріоритетом, інструменти — лише засіб для досягнення мети.Продукт, що працює, важливіший за документацію
Робочий продукт завжди має пріоритет перед складною та надмірною документацією.Співпраця із замовником важливіша за умови контракту
Постійна комунікація з клієнтом дозволяє краще зрозуміти його потреби та адаптувати проект.Готовність до змін важливіша за дотримання плану
Команди повинні бути гнучкими та адаптуватися до змін на будь-якому етапі проекту.
Переваги Agile:
Клієнтська спрямованість
Активна участь клієнта у процесі допомагає уникнути ризиків та полегшує прийняття рішень.Гнучкість
Швидка адаптація до змін у вимогах та умовах середовища.Ефективність
Оперативне виправлення помилок і швидкий вихід на ринок.Покращена комунікація
Постійний зворотний зв'язок забезпечує кращу координацію в команді.
Недоліки Agile:
Додаткові вимоги до команди
Необхідна висока кваліфікація, мотивація та самодисципліна учасників.Нестійкість до змін
Agile може бути неефективним для проектів, що мають жорсткі вимоги та фіксовані дедлайни.Складність управління великими проектами
У масштабних проектах управління може стати складнішим і вимагати більше ресурсів та часу.
Traditional vs Agile
Схема Traditional vs Agile [6]
# Scrum
Scrum — це популярний фреймворк для управління проектами, особливо в сфері розробки програмного забезпечення. Його суть полягає у розбитті процесу на короткі цикли (ітерації), що називаються спринтами, тривалістю зазвичай 2–4 тижні. Після кожного спринта команда оцінює результати і коригує план дій. Scrum підкреслює важливість ролей (Scrum Master, Product Owner, команда розробників), подій (щоденні мітинги, огляди спринтів) та артефактів (бэклог продукту та спринта).
Плюси:
- Швидка реакція на зміни та постійне вдосконалення продукту.
- Висока залученість команди та замовника.
- Можливість регулярного отримання результатів після кожного спринта.
Мінуси:
- Може бути складним для великих команд.
- Потребує чіткого дотримання правил і дисципліни.
- Вимагає активної участі замовника.

# Kanban
Kanban — це візуальна система управління робочими процесами, спрямована на оптимізацію ефективності через постійне вдосконалення. Ключовим елементом є Kanban-дошка, де кожне завдання представлено карткою, яка переміщується між колонками («Заплановано», «В роботі», «Готово»). Основна мета — балансувати робоче навантаження та уникати перевантаження команди.
Плюси:
- Висока гнучкість та прозорість процесів.
- Легка візуалізація статусу кожного завдання.
- Підходить для процесів з непостійними або частими змінами.
Мінуси:
- Відсутність чітко структурованих ітерацій може ускладнити планування.
- Може бути менш ефективним у великих командах без належної організації.
- Потребує постійного моніторингу для забезпечення оптимальної роботи.

# Lean
Lean (Lean manufacturing або Lean production) — це філософія управління, розроблена для підвищення ефективності виробництва через скорочення втрат. Lean фокусується на створенні максимальної цінності для клієнта при мінімальних витратах ресурсів шляхом усунення діяльності, яка не додає цінності. Lean походить з принципів, які були вперше застосовані компанією Toyota в їх системі виробництва (Toyota Production System, TPS).
Основні принципи Lean:
- Визначення цінності з точки зору клієнта.
- Аналіз потоку створення цінності — ідентифікація всіх кроків, що додають цінність.
- Побудова потоку безперервного створення цінності.
- Витягування продукції на вимогу (pull-system).
- Безперервне вдосконалення — постійне усунення втрат (кайдзен).
Переваги Lean:
- Зменшення витрат за рахунок усунення непотрібних операцій та ресурсів.
- Підвищення якості продукції через фокус на процесах, що додають цінність.
- Збільшення продуктивності завдяки оптимізації робочих процесів.
- Краща адаптивність до змін ринкових умов через гнучкість виробництва.
- Покращення взаємодії в команді через залучення всіх працівників до процесу вдосконалення.
Недоліки Lean:
- Високі початкові витрати на впровадження — навчання персоналу, зміну організації виробництва.
- Складність адаптації для підприємств із складними виробничими процесами або нестабільним попитом.
- Ризик надмірної оптимізації, що може призвести до зниження гнучкості в умовах непередбачених ситуацій.
- Потреба в постійній підтримці та вдосконаленні, що може бути ресурсозатратним.
Джерело схеми: Lean Institute (opens new window)
# Спіральна модель
Спіральна модель (Spiral Model) — це методологія розробки програмного забезпечення, яка об'єднує ітеративний підхід з елементами класичних моделей. Модель була запропонована Баррі Бьомом у 1986 році.
Цикли розробки в спіральній моделі поділяються на 4 основні етапи:
- Визначення цілей, вимог та альтернатив для кожної фази.
- Аналіз ризиків і розробка стратегії їх зменшення.
- Реалізація та тестування продукту або прототипу.
- Оцінка результатів і планування наступної ітерації.
Процес проходить через кілька ітерацій, які відображаються у вигляді спіралі, поступово уточнюючи та вдосконалюючи продукт.
Переваги спіральної моделі:
- Акцент на управлінні ризиками дозволяє уникнути помилок і запобігти критичним проблемам на ранніх етапах.
- Гнучкість і адаптивність до змін вимог, що дозволяє легко інтегрувати нові ідеї або коригування.
- Прототипування на ранніх етапах, що допомагає користувачам краще зрозуміти кінцевий продукт.
- Поетапний контроль дозволяє замовникам і розробникам оцінювати прогрес і вносити корективи.
Недоліки спіральної моделі:
- Високі витрати через постійні оцінки ризиків і прототипування.
- Складність управління через необхідність постійного аналізу ризиків та їхнього контролю.
- Тривалість розробки, оскільки кожна фаза проходить через кілька ітерацій.
- Не завжди підходить для малих проектів через високі ресурси, які потрібні для аналізу ризиків і проведення ітерацій.
Джерело схеми: Spiral Model (opens new window)
# RAD (Rapid Application Development)
RAD (Rapid Application Development) — це методологія розробки програмного забезпечення, яка проводиться в режимі реального часу, що дозволяє зробити вирішення завдання без потреби на конструктивному стилі аналізу та оцінюванні. RAD використовується для розробки програмного забезпечення шляхом швидкого створення прототипів, які використовуються для оцінки вимог користувачів та виправлення помилок.
Основні принципи RAD:
- Швидка розробка — програмне забезпечення розробляється швидко, що дозволяє зробити вирішення завдання без потреби на конструктивному стилі аналізу та оцінюванні.
- Швидка виправлення помилок — програмне забезпечення розробляється швидко, що дозволяє зробити вирішення завдання без потреби на конструктивному стилі аналізу та оцінюванні.
- Швидка оцінка вимог — програмне забезпечення розробляється швидко, що дозволяє зробити вирішення завдання без потреби на конструктивному стилі аналізу та оцінюванні.
- Швидка поширення знань — програмне забезпечення розробляється швидко, що дозволяє зробити вирішення завдання без потреби на конструктивному стилі аналізу та оцінюванні.
Переваги RAD:
- Зменшення витрат за рахунок усунення непотрібних операцій та ресурсів.
- Підвищення якості роботи через швидке створення прототипів та виправлення помилок.
- Збільшення продуктивності завдяки оптимізації робочих процесів.
- Краща адаптивність до змін вимог, що дозволяє легко інтегрувати нові ідеї або коригування.
- Покращення взаємодії в команді через залучення всіх працівників до процесу вдосконалення.
Недоліки RAD:
- Високі витрати через постійні оцінки ризиків і прототипування.
- Складність управління через необхідність постійного аналізу ризиків та їхнього контролю.
- Тривалість розробки, оскільки кожна фаза проходить через кілька ітерацій.
- Не завжди підходить для малих проектів через високі ресурси, які потрібні для аналізу ризиків і проведення ітерацій.
Джерело схеми: RAD - Rapid Application Development (opens new window)
# DevOps
DevOps — низка практик, призначених для пожвавлення взаємодії розробників із фахівцями інформаційно-технологічного обслуговування та зближення їхніх робочих процесів одне з одним. Ґрунтується на думці про тісну взаємозалежність між розробкою та використанням програмного забезпечення і має на меті допомогти організаціям швидше створювати та оновлювати програмні продукти та послуги.
Переваги:
- Швидкість розробки: Автоматизація процесів дозволяє швидше впроваджувати зміни.
- Покращена співпраця: Зміцнення комунікації між командами розробки та експлуатації.
- Частіше впровадження: Часті оновлення завдяки CI/CD.
- Зниження ризиків: Виявлення проблем на ранніх етапах через автоматизацію тестування.
- Ефективність ресурсів: Оптимізація використання ресурсів знижує витрати.
Недоліки:
- Складність впровадження: Значні зміни в культурі та процесах можуть викликати опір.
- Необхідність навичок: Потрібні нові знання в області автоматизації та CI/CD.
- Ризик надмірної автоматизації: Може призвести до проблем без контролю якості.
- Безпека: Інтеграція безпеки в процеси може бути складною.
- Витрати на інструменти: Навчання та впровадження можуть бути дорогими.

Джерело схеми: DevOps
# Порівняльна характеристика існуючих засобів вирішення завдання
# Notion (opens new window)
Notion — це універсальна платформа, яка дозволяє не лише організовувати роботу над проектами, але й структурувати інформацію. Основною перевагою Notion є інтеграція кількох видів інструментів: від текстових документів і медіа до списків завдань і дошок Kanban. Користувачі можуть швидко налаштовувати робочий простір та працювати в реальному часі, додаючи та змінюючи дані спільно з колегами.
# ClickUp (opens new window)
ClickUp — потужна система для управління проектами, яка підтримує велику кількість функцій, зокрема роботу із завданнями, документами, цілями та автоматизацією процесів. Інтерфейс легко налаштовується під потреби кожної команди, а також є можливість інтеграції з багатьма сторонніми сервісами. Завдяки своїй гнучкості ClickUp є чудовим вибором для різних організацій, які шукають універсальний інструмент для покращення робочого процесу.
# GitHub Projects (opens new window)
GitHub Projects — це рішення для тих, хто безпосередньо працює з GitHub. Інструмент дозволяє легко організовувати завдання через дошки, інтегруючись із системою GitHub Issues та pull requests. Це робить GitHub Projects чудовим вибором для розробників, які прагнуть зберігати весь процес розробки, від постановки завдань до виконання коду, в одному місці.
# Trello (opens new window)
Trello — проста у використанні платформа для керування проектами, яка використовує систему дошок і карток для відстеження завдань. Завдяки легкості та простоті інтерфейсу Trello особливо підходить для невеликих команд, які прагнуть швидко налаштувати процеси без додаткових складнощів. Водночас можливості інтеграції із зовнішніми сервісами роблять цю платформу гнучкою навіть для більших проектів.
# JIRA (opens new window)
JIRA — це один із найпопулярніших інструментів для управління проектами та відстеження проблем, що пропонує широкий функціонал для великих і малих команд. Інструмент від Atlassian зосереджений на проектуванні складних процесів, відстеженні дефектів та покращенні продуктивності команд, що працюють над розробкою програмного забезпечення.
# Asana (opens new window)
Asana — веб-застосунок для управління завданнями, який дозволяє командам зосередитися на продуктивності та співпраці. Відмінною рисою Asana є можливість адаптувати систему під різні типи проектів завдяки її потужному інтерфейсу для відстеження завдань, термінів і відповідальних осіб. Система підтримує інтеграції з іншими популярними інструментами, що дозволяє ефективно керувати проектами будь-якого масштабу.
# Nifty (opens new window)
Nifty — це хмарна платформа, яка поєднує можливості планування та відстеження прогресу в одному інтерфейсі. Інструмент дозволяє легко управляти завданнями та підвищувати продуктивність команди через гнучке налаштування робочих процесів, що особливо корисно для стартапів і команд, що швидко зростають.
# Microsoft Project (opens new window)
Microsoft Project — рішення для керування проектами, яке пропонує широкий спектр можливостей для планування, управління ресурсами та моніторингу прогресу. Ця система є популярним вибором серед великих компаній завдяки можливості інтеграції з іншими продуктами Microsoft та підтримці традиційних підходів до управління проектами.
# Порівняльна таблиця
Вимоги | Критерії | SigmaTasking (Наш Проєкт) | GitHub Projects | Notion | Trello | JIRA | Asana | Nifty | Microsoft Project | Click Up |
---|---|---|---|---|---|---|---|---|---|---|
Functionality (функціональність) | Кросплатформеність | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Мобільна версія | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Наявність API | ✔ | ✔ | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Офлайн-доступ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✔ | ✔ | |
Миттєві повідомлення (чат) | ✖ | ✖ | ✔ | ✖ | ✖ | ✖ | ✔ | ✔ | ✔ | |
Призначення завдань учасникам | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Usability (зручність роботи) | User-friendly interface | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Багатомовність | ✔ | ✘ | ✔ | ✘ | ✔ | ✔ | ✔ | ✘ | ✔ | |
Інтеграція з Github | ✔ | ✔ | ✔ | ✘ | ✔ | ✘ | ✔ | ✘ | ✔ | |
Ведення паралельно кількох проєктів | ✔ | ✘ | ✔ | ✔ | ✘ | ✔ | ✘ | ✔ | ✘ | |
Доступ до дошки без реєстрації | ✘ | ✘ | ✘ | ✘ | ✘ | ✔ | ✘ | ✘ | ✔ | |
Reliability (надійність) | Резервне копіювання | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Швидкість виправлення багів | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Приватні проєкти | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✘ | ✔ | ✔ | |
Історія зміни проєктів | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Протокол шифрування | TLS | TLS | TLS | TLS | TLS | TLS | TLS | TLS | TLS | |
Багаторівнева автентифікація | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Performance (продуктивність) | Швидкість завантаження та відгуку | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Робота з великими обсягами даних | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Оптимізація ресурсів | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ | ✔ | ✖ | |
Робота в реальному часі | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Відмовостійкість | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Supportability (підтримка) | Документація | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Технічна підтримка | ✔ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Форум/спільнота | ✔ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ | ✔ | |
Відеоуроки | ✖ | ✖ | ✔ | ✔ | ✖ | ✔ | ✔ | ✖ | ✔ | |
Часті оновлення | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Наявність FAQ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
# Висновки
Ринок інструментів для управління проєктами стикається з певними недоліками. Багато популярних сервісів не надають важливих функцій, як-от підтримка артефактів, що може бути вирішальним для певних користувачів або конкретних сценаріїв застосування.
Крім того, наявність ключових функцій лише в платних версіях платформ обмежує їхню доступність для невеликих компаній і індивідуальних розробників, що робить ці інструменти менш привабливими для широкої аудиторії.
Таким чином, розробка нової платформи, яка врахує ці прогалини та запропонує додаткові можливості, виглядає доцільною. Такий інструмент, орієнтований на реальні потреби користувачів і надання тих функцій, яких бракує іншим рішенням, має шанси здобути свою аудиторію та успіх на ринку.
# Посилання
- Система управління проєктами (Project management software, PMS) (opens new window)
- Проєкт (Project) (opens new window)
- Методологія Agile (Agile Methodology) (opens new window)
- Етапи проєкту (Project Phases) (opens new window)
- Ризики проєкту (Project Risks) (opens new window)
- Ресурси проєкту (Project Resources) (opens new window)
- Артефакт (Artifact) (opens new window)
- Контроль версій (Version control) (opens new window)
- Фази життєвого циклу розробки програмного забезпечення (Схема) (opens new window)
- Waterfall (Схема) (opens new window)
- Traditional vs Agile (Схема) (opens new window)
- Scrum (Схема) (opens new window)
- Докладніше про Scrum (opens new window)
- Kanban (Схема) (opens new window)
- Докладніше про Kanban (opens new window)
- Lean (Схема) (opens new window)
- Спіральна модель (Схема) (opens new window)
- RAD (Схема) (opens new window)
- DevOps (Схема) (opens new window)
- Notion (opens new window)
- ClickUp (opens new window)
- GitHub Projects (opens new window)
- Trello (opens new window)
- JIRA (opens new window)
- Asana (opens new window)
- Nifty (opens new window)
- Microsoft Project (opens new window)