Проєкт інформаційної системи розподілу робочого часу наукових проектів
Автор: Оскерко Семен Валерійович
Кваліфікаційний рівень: магістр
Спеціальність: Управління ІТ проектами
Інститут: Інститут комп'ютерних наук та інформаційних технологій
Форма навчання: денна
Навчальний рік: 2022-2023 н.р.
Мова захисту: українська
Анотація: На сьогоднішній день більшість сучасних ІТ команд прибігають до використання так званих agile методологій. Дані методології були засновані на низці концептів, які використовувалися у ІТ компаніях у 1990-х роках. Серед таких підходів був RAD [1], Scrum, та багато інших концептів. Усі вони були об’єднані в один єдиний маніфест, який назвали «Маніфест гнучкої розробки програмного забезпечення), який був випущений у лютому 2001 року. Ці методології трактують правила написання коду аплікацій, та способу контролю процесу. Серед цих правил, наприклад у підході Scrum, який на сьогодні отримав найбільшу популярність, можна зустріти щоденні зустрічі, на яких обговорюється пророблений процес за попередні дні розробки. Такого роду правила присутні у більшості методологій у agile сімействі. Але деколи ці правила починають працювати навпаки, зменшуючи продуктивність команди по тим чи іншим причинам. Як правило це спричинено недостатньою адаптивністю підходів під вимоги кожної команди, через що навіть команди, які використовують однакові методології можуть по різному трактувати свої правила, створюючи нові і нові підвиди вже відомих підходів. Це стає проблемою для нових членів команди, які щоразу при зміні проекту змушені певний час адаптуватись до роботи із новою командую, вивчаючи правила і порядки нового суспільства. Також, вже під час виконання проекту, часто може виникати проблемність того чи іншого елементу концепту. Це, як правило, не являється причиною повної відмови від концепту, але зміни задля корекції робочого середовища команди зробити складно, що призводить до зниження продуктивності команди. Також усі agile підходи добре працюють у продуктових ІТ проектах, які орієнтуються на бізнес. Але для навчання такі підходи мають свої недоліки, у виду недостатньої мотивації студентів. Цю проблему також вирішує Tasky, використанням свого, авторського підходу, який розроблено спеціально для роботи над проектами, які передбачають виставлення оцінок в кінці виконання проекту, та додатково стимулює студентів на виконання задач. Програма Tasky, що є продуктовою назвою даної магістерської роботи, призвана вирішити цю проблему. У базисі концепту закладено конструктивний дизайн побудови робочого середовища команди. Це значить, що менеджер буде мати можливість організувати середовище команди саме під час роботи, швидко додаючи або відкидаючи компоненти методології. Такий підхід є зручним, адже інколи ті чи інші елементи методологій можуть бути непотрібні або не прийняті командою, тож таким чином буде можливість розробити методологію для команди, а не команду для методології. В результаті роботи над магістерською роботою було розроблено базовий концепт аплікації, що демонструє вищеописаний конструктивний підхід до побудови робочого середовища. Для розробки frontend складової проекту було використано бібліотеку React та Next.js. Такий набір технологій було обрано в першу чергу через технологію SSR [2] (server side rendering), яка дозволяє дуже ефективно оптимізувати додаток для різних девайсів, адже побудова сторінки відбувається не на стороні користувача, а на стороні сервера. Також підхід до рендерингу SSR так само відкриває набір дуже великого інструментарію, який також розкриває додатковий функціонал до побудови сторінок, наприклад передача даних з backend до того як сторінка взагалі була відбудована. У Next.js такий функціонал називається getStaticProps [3]. Для розробки серверної (backend) частини проекту було застосовано технологію фреймворку Nest.js. Цей фреймворк являється сучасним підходом до побудови серверів обробки даних на мові ecmaScript, та надає увесь необхідний функціонал для побудови аплікації Tasky. Особливістю Nest.js є наявність вбудованої системи модулів і контролерів, що дозволяє швидко реалізовувати CRUD [4] підхід при побудові серверу, створюючи контролери доступу до даних. Також додатковою перевагою Nest.js є його обширна популярність, що випливає у вигляді наявності багатьох різноманітних надбудов фреймворку, у вигляді адаптерів для різноманітних баз даних, в тому числі тої бази, що використана у Tasky, а саме mongoDB – нерелятивна база даних, яка повністю покриває вимоги роботи. В результаті виконання магістерської кваліфікаційної роботи, згідно запланованого графіку виконання роботи, було реалізовано базовий функціонал створення робочого середовища. Також було реалізовано увесь необхідний функціонал для роботи елементів авторської концепції Tasky, створеної для організації робочого часу наукових та навчальних проектів. Після проведення усіх необхідних тестових заходів, аплікацію було надано до тестування низці команд, що працюють над ІТ проектами у різних галузях – маркетинг та розробка ПЗ. Було отримано оцінки аплікації, та додаткову інформацію щодо редагування деяких елементів програми. Серед розширених відповідей респондентів було помічено позитивний настрій відносно подібного підходу до організації робочого середовища, та підтвердження актуальності подібної ідеї проекту для використання у робочому режимі. Ключові слова – scrum, kanban, agile підхід, організація робочого часу проекту, менеджмент Перелік використаних літературних джерел [1] «outsystems - what is RAD,» [Інтернет]. Available: https://www.outsystems.com/glossary/what-is-rapid-application-development/. [Дата звернення: 29 05 2022]. [2] «vverh digital what is SSR,» 2020. [Інтернет]. Available: https://blog.vverh.digital/2020/what-is-it-ssr-chto-takoe/. [3] «nextjs.org - getStaticProps,» [Інтернет]. Available: https://nextjs.org/docs/basic-features/data-fetching/get-static-props. [4] «proglib - що таке api та crud,» 9 1 2022. [Інтернет]. Available: https://proglib.io/p/chto-takoe-api-i-crud-prostymi-slovami.