Проект – обмежений часовими рамками процес, що має визначений початок та кінець, також може обмежуватися фінансуванням або досягненням результатів. Здійснюється для реалізації унікальних цілей та завдань, зазвичай, щоб призвести до вигідних змін або створення доданої вартості.
Управління проектами – область знань з планування, організації та управління ресурсами з метою успішного досягнення цілей та завершення завдань проекту.
Головне завдання проектного управління – досягнення всіх цілей та виконання завдань проекту, з урахуванням наперед визначених обмежень проєкту.
Другорядне завдання проектного управління – оптимізація, розподілення та інтеграція завдань, необхідних для досягнення наперед визначених цілей.
Традиційний метод поділу на етапи передбачає визначення послідовності дій, що мають бути завершені. В «традиційному методі» можливо визначити 5 складових розвитку проєкту:
- Ініціювання
- Планування та розробка
- Виконання та впровадження
- Моніторинг та контроль
- Завершення
Особливості проектів, пов'язаних з програмним забезпеченням:
- Управління проектами розробки ПЗ відрізняється від традиційного унікальним процесом життєвого циклу, який включає багаторазові тестування, оновлення та зворотний зв'язок з клієнтом.
- Більшість проектів, пов'язаних з ІТ мають гнучкий стиль менеджменту, щоб адаптуватися до швидкого темпу сучасного бізнесу.
«Waterfall Model» (каскадна модель)
Одна з найстаріших, передбачає послідовне проходження пʼяти стадій від початку до кінця:
- Проектування
- Дизайн
- Розробка
- Тестування
- Підтримка
Завдяки її жорсткості, розробка проходить швидко, вартість і термін заздалегідь визначені. Проте каскадна модель буде давати відмінний результат тільки в проектах з чітко і заздалегідь визначеними вимогами. Продукти, розроблені за цією моделлю без обґрунтованого її вибору, можуть мати недоліки, про які стає відомо лише в кінці через сувору послідовність дій. Вносити зміни можна тільки по завершенню проекту.
«Agile Model» (гнучка методологія)
У «гнучкій» методології розробки після кожної ітерації циклу, щоскладається з троьх частин:
- Планування,
- Розробка,
- Тестування,
замовник може спостерігати результат і розуміти, задовольняє він його чи ні. До недоліків можна віднести те, що через відсутність конкретних формулювань результатів складно оцінити трудовитрати і вартість розробки.
Екстремальне програмування (XP) є одним з найбільш відомих застосувань гнучкої моделі на практиці.
В основі такого типу - нетривалі щоденні зустрічі - «Scrum» і регулярні збори раз в 1, 2 або 4 тижні, «Sprint».
Методологія підходить для великих або націлених на тривалий життєвий цикл проектів, постійно адаптуються до умов ринку.
RUP (Rational Unified Process)
Основні принципи:
- рання ідентифікація і безперервне усунення ризиків;
- концентрація на виконанні вимог замовників;
- очікування змін у вимогах в процесі розробки;
- компонентна архітектура, реалізована і тестована на ранніх стадіях проекту;
- забезпечення якості на всіх етапах розробки;
- згуртованість команди, ключова роль належить архітекторам;
Особливість методології: ступінь формалізації може змінюватися в залежності від потреб проекту. Ітеративна модель. В кінці кожної ітерації (2 - 6 тижнів) команда досягає певних цілей, отримує проміжну, але функціональну версію кінцевого продукту.
Ітерації та етапи розвитку:
Crystal Clear методология
Це легка гнучка методологія для невеликих команд (6-8 чоловік) для розробки додатків. Crystal Clear більше спирається на людей, ніж на процеси і ресурси.
Методологія поступається продуктивністю, але проста у використанні. Вона вимагає мінімальних зусиль для впровадження.
Основні концепції:
- часта поставка продукту
- покращення через рефлексію
- особисті комунікації
- почуття безпеки
- фокусування
- простий доступ до експертів
- якісне технічне оточення
Спіральна модель
Це метод життєвого циклу розробки систем SDLC, який використовується для управління ризиками,який поєднує ітераційну модель процесу розвитку.
Кожна петля спіралі є фазою в процесі розробки програмного забезпечення. Радіус спіралі показує вартість проекту, а кутовий градус представляє прогрес, досягнутий у поточній фазі
Використання спіральної моделі доречне у таких проектах:
- проекти, в яких необхідні часті випуски;
- довгострокові проекти, які неможливо здійснити через змінені економічні пріоритети;
- проекти, в яких важливий аналіз витрат та ризиків;
- проекти, які отримали б користь від створення прототипу;
- проекти з незрозумілими або складними вимогами.
Переваги:
- Гнучкість
- Поводження з ризиками - аналіз ризиків та ітераційний процес розробки на кожній фазі покращує безпеку та додає шанси уникнути атак та поломки
- Задоволеність клієнтів - замовник зможе побачити та оцінити його продукт на кожному етапі
Недоліки:
- Висока вартість
- Складність
- Залежність від аналізу ризиків
- Важко керувати часом – кількість фаз та покращень невідома
DSDM (Dynamic Systems Development Model)
Це метод Agile, що не залежить від постачальників, охоплює весь життєвий цикл проекту та надає рекомендації щодо передового досвіду щодо своєчасного, бюджетного виконання проектів, з доведеною масштабністю для вирішення проектів будь-якого розміру та для будь-якого бізнес-сектора.
Вісім принципів DSDM:
- Зосередьтеся на потребі бізнесу
- Доставте вчасно
- Співпрацюйте
- Ніколи не посягайте на якість
- Будуйте поступово
- Розвивайте ітераційно
- Спілкуйтеся постійно та чітко
- Демонструйте контроль
FDD (Feature Driven Development)
FDD був розроблений, щоб слідкувати за п'ятьма кроковими процесами розробки, побудованим навколо дискретних проектів "функції".
Життєвий цикл проекту:
- Розробити загальну модель
- Побудувати список функцій
- Розробити план (за ознакою)
- Спроектувати функцію
- Реалізувати функцію
Переваги:
- Простий процес дозволяє швидше розвиватися
- Дозволяє більшим командам постійно рухати продукти вперед
- Використовує заздалегідь визначені стандарти розвитку Недоліки:
- Не працює ефективно для малих проектів
- Письмова документація мала, що призводить до плутанини
- Висока залежність від провідних розробників
JAD (Joint Application Development)
Це процес, що використовується в області життєвого циклу методу розвитку динамічних систем (DSDM) для збору бізнес-потреб під час розробки нових інформаційних систем для компанії.JAD зосереджений навколо конструктивних робочих нарад (семінарів). Всі розробники збираються разом у кімнаті для обговорень.
Девʼять ключових кроків:
- Визначте цілі та обмеження проекту
- Визначення критичних факторів успіху
- Визначте результати проекту
- Визначте графік роботи семінару
- Виберіть учасників
- Підготуйте матеріал семінару
- Організуйте заходи та вправи семінару
- Підготуйте, інформуйте, навчайте учасників семінару
- Координація логістики семінарів
Переваги:
- Скорочує час і витрати
- Сесії JAD допомагають об'єднати експертів, даючи їм можливість поділитися своїми поглядами, зрозуміти погляди інших та розвинути почуття власності на проект | Недоліки:
- Без багатогранної підготовки до сесії JAD, цінний час професіоналів легко витратити
- Учасники семінару JAD повинні включати співробітників, здатних надати внесок у більшість відповідних областях проблеми
- Керівник семінару зобов'язаний забезпечити всім учасникам шанс висловити свою думку, ідеї та думки
RAD (Rapid application development)
Це концепція створення засобів розробки програмних продуктів, що приділяє особливу увагу швидкості і зручності програмування, створенню технологічного процесу, що дозволяє програмістові максимально швидко створювати комп'ютерні програми. Концепцію RAD часто зв'язують із концепцією візуального програмування.
Переваги RAD:
- розробка програмного забезпечення здійснюється невеликою командою розробників за термін близько трьох-чотирьох місяців шляхом використання інкрементного прототипування із застосуванням інструментальних засобів візуального моделювання та розробки.
- Технологія RAD передбачає активне залучення замовника вже на ранніх стадіях – обстеження організації, вироблення вимог до системи.
Основні принципи:
- Інструментарій повинен бути націлений на мінімізацію часу розробки
- Створення прототипу для уточнення вимог замовника
- Циклічність розробки: кожна нова версія продукту грунтується на оцінці результату роботи попередньої версії замовником
- Мінімізація часу розробки версії, за рахунок перенесення вже готових модулів і додавання функціональності в нову версію
- Команда розробників повинна тісно співпрацювати, кожен учасник повинен бути готовий виконувати кілька обов'язків
- Управління проектом має мінімізувати тривалість циклу розробки
Scrum
Це метод управління проектами побудований на принципах управління часом. Основною особливістю є залученість в процес всіх учасників, причому у кожного учасника є своя певна роль. Суть в тому, що не тільки команда працює над вирішенням завдання, але й зацікавлені особи і їх робота не означає тільки постійний контроль.
Переваги Scrum:
- Відгук на потреби клієнта
- Зниження вартості розробки
- Задоволення від роботи
- Більше швидких доходів
Ролі у Scrum:
- Власник Продукту — людина, що повністю розуміє цінність продукту для бізнесу. Ця людина доносить потреби замовника до Команди розробки, але не відповідає за технічну сторону процесу.
- Команда розробки виконує всі технічні завдання по розробці. Команда кроссфункціональна і відповідає за аналіз, дизайн, програмування, тестування, технічну комунікацію і т. і.
- Скрам-майстер допомагає Власнику Продукту і Команді розробки виконувати роботу без перешкод і відволікаючих чинників. Вся комунікація людей поза командою з Командою розробки проходить через Скрам-Мастера.
Типи Scrum-заходів:
- Планування Спринту (Sprint Planning) - в ньому беруть участь всі члени Скрам команди. На цьому заході презентують Продукт. Також кожен член команди може висловитися про те, що його цікавить або турбує. В ході зустрічі призначаються пріоритети і проводяться оцінки термінів.
- Щоденний Скрам (Daily Scrum) - Скрам-заходи, які проходять щодня під час спринтів. Вони короткі (до 15 хвилин) і призначені для того, щоб спланувати денний розклад Команди розробки.
- Огляд Спринту (Sprint Review) - демонстрація чинного продукту, розробленого під час спринту. Цей захід проходить в кінці спринту і призначений для того, щоб в подробицях показати досягнуте замовникам.
- Ретроспектива Спринту (Sprint Retrospective) - це свого роду розтин, обговорення того, як команда впоралася під час спринту і як можна підвищити якість її роботи в майбутньому.
XP (Extreme Programming)
Це методологія розробки програмного забезпечення, найпопулярніша серед так званих гнучких методологій. Має на меті поліпшення якості програмного забезпечення та чутливість до змін у вимогах замовників. Як вид гнучких методологій, XP радить часті "випуски" програми у коротких циклах розробки, що має на меті поліпшити продуктивність праці та покращити можливості виконання вимог замовника, що змінюються.
Елементи екстремального програмування:
- парне програмування
- проведення обширної перевірки сирцевого коду
- модульне тестування всього коду
- уникання створення функціональності до того, як вона дійсно необхідна,
- простота та ясність коду
- очікування на зміну вимог замовників з плином часу
- досить часте спілкування із замовником та між самими програмістами
Потенційні недоліки цієї методології:
- нестабільні вимоги
- незадокументовані компроміси конфліктів користувачів
- відсутність загального документу дизайну програми
LD (Lean Development)
Це методологія розробки програмного забезпечення, що заснована на постійному прагненні до усунення всіх видів втрат, до яких призводять:
- непотрібні функції
- непотрібна переробка
- недовиконана робота
- створення дефектного продукту
Принципи Lean:
- Усунення зайвого: того, що не приносить користі
- Упор на навчання: циклічна розробка, зворотний зв'язок з клієнтом
- Рішення приймаються на основі фактів, а не прогнозів
- Цілісність у всьому: від інформування замовника до рефакторінга
- Повномасштабне бачення: важливо оцінювати проект як ціле, а не частинами
Дослідження існуючих програмних продуктів
Zoho Sprint | Wrike | Confluence | Meister Task | TeamworkProjects | Easy Projects | Paymo | Quire | Talk on Task | Zenkit | Trello | Smartsheet | Mavenlink | Avaza | Monday.com | JIRA | ProWorkflow | Asana | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
API | + | + | + | + | + | + | + | + | + | |||||||||
Безпека даних | + | + | + | + | + | + | + | + | + | + | ||||||||
Теги | + | + | + | + | ||||||||||||||
Бесіди / чати | + | + | + | + | ||||||||||||||
Файлообмінник | + | + | + | + | + | + | ||||||||||||
Мобільний додаток | + | + | + | |||||||||||||||
Бізнес-аналітика | + | + | ||||||||||||||||
Контроль версій | + | + | + | |||||||||||||||
Підзадачі | + | + | ||||||||||||||||
Шаблони проектів | + | + | + | + | + | + | + | + | ||||||||||
Відстеження ресурсів | + | + | + | + | + | + | + | + | + | + | ||||||||
Відстеження прогресу | + | + | + | + | + | + | + | + | + | + | + | + | + | + | ||||
Управлння завданнями | + | + | + | + | + | + | + | + | + | |||||||||
Спільне робоче поле | + | + | + | + | + | + | ||||||||||||
Підтримка мультимедіа | + | + | ||||||||||||||||
Підтримка кількох проектів | + | + | ||||||||||||||||
Підтримка різних методологій | + | + |
- https://uk.wikipedia.org/wiki/Управління_проєктами
- https://www.wrike.com/project-management-guide/faq/what-is-software-project-management/
- https://habr.com/ru/company/edison/blog/269789/
- https://ru.wikipedia.org/wiki/Rational_Unified_Process
- http://wnfx.ru/crystal-clear-gibkaya-metodologiya-razrabotki-prilozheniy-saytov/
- https://uk.wikipedia.org/wiki/%D0%A1%D0%BF%D1%96%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C
- https://qalight.com.ua/baza-znaniy/spiralnaya-model-spiral-model/
- https://uk.wikipedia.org/wiki/DSDM
- https://www.agilebusiness.org/page/whatisdsdm
- https://study.com/academy/lesson/joint-application-development-definition-phases-methodology.html
- https://habr.com/ru/post/70424/
- https://uk.wikipedia.org/wiki/%D0%91%D0%B5%D1%80%D0%B5%D0%B6%D0%BB%D0%B8%D0%B2%D0%B0_%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F
- http://dss-bi.com.ua/System/rapid-application-development-rad-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F-%D1%88%D0%B2%D0%B8%D0%B4%D0%BA%D0%BE%D1%97-%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA/
- https://www.quality-assurance-group.com/scrum/
- https://www.getapp.com/project-management-planning-software/
- https://alternativeto.net/
- https://www.proofhub.com/articles/top-project-management-tools-list
- https://www.getapp.com/project-management-planning-software/a/trello/
- https://www.getapp.com/project-management-planning-software/a/mavenlink-professional-services-automation/features/
- https://www.getapp.com/project-management-planning-software/a/avaza/features/
- https://www.getapp.com/project-management-planning-software/a/jira/#features
- https://www.getapp.com/collaboration-software/a/monday-com/features/
- https://www.getapp.com/project-management-planning-software/a/proworkflow-project-management-software/
- https://www.getapp.com/collaboration-software/a/asana/features/