Інкрементний підхід до планування роботи студентів над спільним програмним проєктом
Abstract
На сьогоднішній день відомі продуктові і аутсорсингові IT-компанії використовують гнучкі (Agile) моделі для життєвого циклу (ЖЦ) розроблення програмного забезпечення, переваги яких полягають у швидкій адаптації до змін, постійному зворотному зв’язку, покращені якості продукту, підвищені залученості команди, фокусі на цінності для клієнта, прозорості та контролі, а також у зменшенні внутрішніх і зовнішніх ризиків. Всі гнучкі моделі є ітеративними, тобто процес розроблення поділяється на окремі однотипні ітерації, які мають різні назву в різних моделях. Ознайомлення і опрацювання на практиці здобувачами першого (бакалаврського) рівня вищої освіти галузі інформаційних технологій сучасних Agile-моделей є важливим завданням для майбутніх IT-фахівців. Для виконання цього завдання було обрано найпопулярнішу Agile-модель Scrum, яка також є
ще і інкрементною, тобто такою, що на кожній ітерації видає додаткову готову до
експлуатації функціональність. Розглянуті основні ролі учасників і їх обов’язки, артефакти і церемонії Scrum-процесу. У статті пропонується застосувати Scrum-модель для ітераційного і інкрементного розроблення програмного забезпечення, яке буде розв’язувати задачу багатокритеріальної оптимізації з використанням теоретико-ігрового підходу. Подано постановку і загальний алгоритм розв’язання задачі багатокритеріальної оптимізації з використанням теоретико-ігрового підходу, а також приклад формулювання Product Backlog’у, який містить дванадцять функціональних вимог, що мають бути реалізовані студентською Scrum-командою за дванадцять ітерацій (спринтів). Описано рекомендований процес розбиття здобувачів на Scrum-команди і призначення ролей учасникам. Також наведено приклад інкрементної реалізації на основі Scrum-моделі ЖЦ розв’язання задачі багатокритеріальної оптимізації з використанням теоретико-ігрового підходу. As of today, well-known product and outsourcing IT companies use Agile
models for the software development life cycle (SDLC), the advantages of which
include rapid adaptation to changes, continuous feedback, improved product quality,
increased team engagement, focus on customer value, transparency and control, as
well as the reduction of internal and external risks. All Agile models are iterative, meaning the development process is divided into separate, similar iterations, which
have different names in different models. Familiarization with and practical application
of modern Agile models by students at the first (bachelor’s) level of higher education
in the field of information technology is an important task for future IT specialists. To
achieve this task, the most popular Agile model, Scrum, was chosen, which is also
incremental, meaning that each iteration delivers additional functionality that is ready
for use. The main roles of participants and their responsibilities, artifacts, and
ceremonies of the Scrum process are reviewed. The article proposes applying the
Scrum model for iterative and incremental software development that will solve a multicriteria
optimization problem using a game-theoretic approach. The formulation and
general algorithm for solving the multi-criteria optimization problem using a gametheoretic
approach are presented, as well as an example of formulating the Product
Backlog, which contains twelve functional requirements to be implemented by the
student Scrum team over twelve iterations (sprints). The recommended process for
dividing students into Scrum teams and assigning roles to participants is described. An
example of incremental implementation based on the Scrum model of the SDLC for
solving the multi-criteria optimization problem using a game-theoretic approach is also
provided.