Проєкт інформаційної системи розподілу робочого часу наукових проектів
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Національний університет "Львівська політехніка"
Abstract
На сьогоднішній день більшість сучасних ІТ команд прибігають до використання так званих 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, створеної для організації робочого часу наукових та навчальних проектів.
Після проведення усіх необхідних тестових заходів, аплікацію було надано до тестування низці команд, що працюють над ІТ проектами у різних галузях – маркетинг та розробка ПЗ. Було отримано оцінки аплікації, та додаткову інформацію щодо редагування деяких елементів програми. Серед розширених відповідей респондентів було помічено позитивний настрій відносно подібного підходу до організації робочого середовища, та підтвердження актуальності подібної ідеї проекту для використання у робочому режимі.
Today, most of modern IT teams’ used to the include agile methodologies into their workflow. These methodologies were based on a number of concepts that were used in IT companies in the 1990s. Among such approaches was RAD [1], Scrum, and many other concepts. All of them were combined into one single manifesto called “Agile Software Development Manifesto”, which was released in February 2001. These methodologies interpret the rules of writing application code and how to control the development process. Among these rules, for example, in the Scrum approach, which is the most popular today, you can find daily meetings where the progress of the previous days of development is discussed. Such rules are present in most methodologies in the agile family. But sometimes these rules start to work vice versa, reducing the productivity of the team for one reason or another. Commonly this is caused by the lack of adaptability to the requirements of each team, so even teams that use the same methodologies can interpret their rules differently, creating new and new subspecies of already known methodologies types. This becomes a problem for new team members, who each time the project changes, have to adapt to work with a new team for some time, learning the rules and regulations of the new society. Also, during the implementation of the project, there may often be problems with one or another element of the concept. This is usually not a reason to completely change the concept, but it is difficult to make changes to adjust the working environment of the team, which leads to a decrease in team productivity. Also, all agile approaches work well in product IT projects that are business-oriented. But for education, such methodologies have their drawbacks, due to the lack of motivation of students. This problem is also solved by Tasky, using its own, author's methodology, which is designed specifically for working on projects that involve grading at the end of the project, and further stimulates students to complete tasks. The Tasky program, which is the product name of this master's work, is designed to solve both of this problem. The concept is based on the constructive design of the team's working environment. This means that the manager will be able to organize the team environment during the work, quickly adding or removing components of the methodology. This methodology is convenient, because sometimes certain elements of methodologies may be unnecessary or not accepted by the team, so it will be possible to adopt a methodology for the team, not the team for the methodology. As a result of this work, a basic concept of the application was developed, which demonstrates the above constructive approach to building a working environment. To develop the frontend component of the project, the React library and Next.js were used. This set of technologies was chosen primarily because of the SSR technology [2] (server-side rendering), which allows you to effectively optimize the application for different devices, because the page is built not on the user side, but on the server side. Also, the SSR rendering approach also opens up a set of very large tools that also reveals additional functionality for building pages, such as transferring data from the backend before the page before it’s build at all. In Next.js, this functionality is called getStaticProps [3]. To develop the server (backend) part of the project, the Nest.js framework technology was used. This framework is a modern approach to building data processing servers in the ecmaScript language, and provides all the necessary functionality for building the Tasky application. A feature of Nest.js is the presence of a built-in system of modules and controllers, which allows you to quickly implement the CRUD [4] approach when building a server by creating data access controllers. Also, an additional advantage of Nest.js is its wide popularity, which follows in the form of the presence of many different framework add-ons, one of which is adapters for various databases, including the database used in Tasky, named mongoDB - a non-relational database that fully covers the requirements of the work. According to the planned schedule of work, the basic functionality of creating a working environment was implemented. Also, all the necessary functionality for the elements of the author's concept Tasky, created to organize the working time of scientific and educational projects, was implemented. After all the necessary testing activities, the application was provided for testing to a number of teams working on IT projects in various fields - marketing and software development. The application was evaluated and additional information on editing some elements of the application was received. Among the extended answers of the respondents, a positive attitude towards such an approach to the organization of the working environment was noticed, and confirmation of the relevance of such a project idea for use in the working mode.
Today, most of modern IT teams’ used to the include agile methodologies into their workflow. These methodologies were based on a number of concepts that were used in IT companies in the 1990s. Among such approaches was RAD [1], Scrum, and many other concepts. All of them were combined into one single manifesto called “Agile Software Development Manifesto”, which was released in February 2001. These methodologies interpret the rules of writing application code and how to control the development process. Among these rules, for example, in the Scrum approach, which is the most popular today, you can find daily meetings where the progress of the previous days of development is discussed. Such rules are present in most methodologies in the agile family. But sometimes these rules start to work vice versa, reducing the productivity of the team for one reason or another. Commonly this is caused by the lack of adaptability to the requirements of each team, so even teams that use the same methodologies can interpret their rules differently, creating new and new subspecies of already known methodologies types. This becomes a problem for new team members, who each time the project changes, have to adapt to work with a new team for some time, learning the rules and regulations of the new society. Also, during the implementation of the project, there may often be problems with one or another element of the concept. This is usually not a reason to completely change the concept, but it is difficult to make changes to adjust the working environment of the team, which leads to a decrease in team productivity. Also, all agile approaches work well in product IT projects that are business-oriented. But for education, such methodologies have their drawbacks, due to the lack of motivation of students. This problem is also solved by Tasky, using its own, author's methodology, which is designed specifically for working on projects that involve grading at the end of the project, and further stimulates students to complete tasks. The Tasky program, which is the product name of this master's work, is designed to solve both of this problem. The concept is based on the constructive design of the team's working environment. This means that the manager will be able to organize the team environment during the work, quickly adding or removing components of the methodology. This methodology is convenient, because sometimes certain elements of methodologies may be unnecessary or not accepted by the team, so it will be possible to adopt a methodology for the team, not the team for the methodology. As a result of this work, a basic concept of the application was developed, which demonstrates the above constructive approach to building a working environment. To develop the frontend component of the project, the React library and Next.js were used. This set of technologies was chosen primarily because of the SSR technology [2] (server-side rendering), which allows you to effectively optimize the application for different devices, because the page is built not on the user side, but on the server side. Also, the SSR rendering approach also opens up a set of very large tools that also reveals additional functionality for building pages, such as transferring data from the backend before the page before it’s build at all. In Next.js, this functionality is called getStaticProps [3]. To develop the server (backend) part of the project, the Nest.js framework technology was used. This framework is a modern approach to building data processing servers in the ecmaScript language, and provides all the necessary functionality for building the Tasky application. A feature of Nest.js is the presence of a built-in system of modules and controllers, which allows you to quickly implement the CRUD [4] approach when building a server by creating data access controllers. Also, an additional advantage of Nest.js is its wide popularity, which follows in the form of the presence of many different framework add-ons, one of which is adapters for various databases, including the database used in Tasky, named mongoDB - a non-relational database that fully covers the requirements of the work. According to the planned schedule of work, the basic functionality of creating a working environment was implemented. Also, all the necessary functionality for the elements of the author's concept Tasky, created to organize the working time of scientific and educational projects, was implemented. After all the necessary testing activities, the application was provided for testing to a number of teams working on IT projects in various fields - marketing and software development. The application was evaluated and additional information on editing some elements of the application was received. Among the extended answers of the respondents, a positive attitude towards such an approach to the organization of the working environment was noticed, and confirmation of the relevance of such a project idea for use in the working mode.
Description
Citation
Оскерко С. В. Проєкт інформаційної системи розподілу робочого часу наукових проектів : кваліфікаційна робота на здобуття освітнього ступеня магістр за спеціальністю „8.126.00.03 — Управління ІТ проектами“ / Семен Валерійович Оскерко. — Львів, 2022. — 114 с.