Обзор текущего процесса разработки ПО в НИУ ВШЭ - Пермь и методик его улучшения, Обзор текущего процесса разработки ПО в рамках учебных проектов в НИУ ВШЭ - Пермь - Методика моделирования основных процессов разработки программного обеспечения

В данной главе рассмотрены основные проблемы, решение которым будет предложено в данной работе. Помимо этого, описаны основные понятия и принципы организации процесса разработки, на основании которых будет построена модель процесса разработки для НИУ ВШЭ.

Обзор текущего процесса разработки ПО в рамках учебных проектов в НИУ ВШЭ - Пермь

В течение своего обучения в НИУ ВШЭ студенты пишут огромное количество различных научных и исследовательских работ, при этом часть из них подразумевает разработку какого-либо программного инструмента. Каждая из этих работ является своеобразным учебным проектом, близким к реальным проектам, но отличающимся определенными особенностями. Так, в данном случае упор делается на укрепление и подтверждение знаний студентов, а сам программный продукт вторичен. К учебным проектам относятся как курсовые и дипломные работы, так и любые рейтинговые задания, выполняемые в командах.

Подобные работы охватывают длительный промежуток времени, так как процесс разработки включает в себя множество различных задач, включающих не только написание кода, но создание технических описаний разрабатываемого решения, поиск и исправление ошибок и так далее.

Однако одной из наиболее сложных, но при этом неявных задач в подобных работах является выстраивание плотного взаимодействия студентов с преподавателями и другими студентами, если проект является групповым. Эта задача является неявной, потому что выстраивание эффективного взаимодействия происходит со временем, то есть как можно более долго группа работает в одном составе, тем более слаженной и эффективной будет ее работа. При этом организация согласованной работы требует постоянного обмена информацией внутри проектной группы, а время, затраченное на такой обмен информацией, может существенно увеличивать сроки выполнения самого проекта [2].

Считается, что для задач, которые могут быть разбиты на части, но требуют обмена данными между подзадачами, затраты на обмен данными должны быть добавлены к общему объему необходимых работ. При этом, если все задачи должны быть скоординированы между собой, то затраты возрастают как n(n-1)/2 (где n число работников, выполняющих эти задачи) [3]. То есть, если проектная группа состоит из трех человек, то требуется втрое больше попарного общения, чем для двух, для четырех человек - уже вшестеро.

Таким образом, взаимодействие студентов с преподавателями и другими студентами внутри своих проектных групп является затратным по времени процессом. Но также следует отметить, что состав таких групп постоянно меняется - одну работу студенты могут выполнить в одной группе, а другую в другой, либо они могут сменить преподавателя на того, чьи методы работы будут разительно отличаться. Помимо этого, у одного преподавателя может быть несколько групп студентов, с каждой из которых он должен постоянно взаимодействовать и помогать с их проектами.

Исходя из этого, работа внутри проектных групп в университете зачастую не является слаженной и достаточно эффективной, так как сам процесс организации такой работы и набор задач участников будут разниться в каждом отдельно взятом случае, что, в свою очередь, приводит к увеличению времени, необходимого на реализацию самого проекта.

При этом качественное планирование и отлаженное взаимодействие участников каждой проектной группы в условиях ограниченного времени также напрямую влияет на результат работы, насколько в полном объеме проработана сама идея и насколько корректно работает созданный программный продукт. Следует отметить, что для развития университета за счет внутренних ресурсов крайне важно, чтобы результат такой работы был максимально качественным, так как, при должной проработке решения, оно может внедряться в стенах университета и использоваться в дальнейшем. Иными словами, руководство университета заинтересовано в том, чтобы подобное развитие было устойчивым.

Поскольку длительность выполнения работ по тем или иным причинам (технологическим, организационным и т. д.) не всегда можно уменьшить, а распараллеливание выполнения задач ведет к дополнительным затратам времени на обмен информацией, то сокращение именно непроизводительных затрат времени на обмен информацией является резервом, позволяющим существенно сократить срок выполнения проекта [2].

Таким образом, основной проблемой, влияющей на длительность работы над проектами и на качество конечного решения, является низкий уровень планирования и организации работы внутри проектной группы, чему способствуют трудности при взаимодействии между членами таких проектных групп, включающих и студентов, и преподавателей. Решением такой проблемы может быть создание единой общей модели взаимодействия для подобных групп, целью которых является разработка определенного программного продукта.

Такая модель позволит определить роли участников проектной группы, общие принципы при их взаимодействии между собой, а также общие этапы процесса разработки программного обеспечения внутри университета с разбивкой данного процесса на конкретные задачи и подзадачи для каждой из ролей. Так, следуя данной модели в процессе своей работы, участникам проектной группы не нужно будет тратить время на обсуждение организации и распределения своих задач, а также дальнейших этапов работ.

При этом грамотное распределение ролей между участниками и их совмещение в процессе разработки позволит досконально освоить соответствующий каждой роли набор компетенций. Это отличается от случая, когда студенты распределяют задачи как попало, что приводит не только к снижению уровня организации рабочего процесса и его прозрачности для всех участников, но и негативно влияет на качество получаемых ими знаний.

Помимо помощи при планировании и организации текущих работ, данная модель также может помочь при работе с будущими и планируемыми проектами.

Дело в том, что многие учебные проекты связаны между собой и вытекают из друг друга. Так, например, в последнее время становится распространенной практика разбиения учебных работ на несколько лет или циклов, которые будут выполнять различные группы студентов. То есть, например, несколько дипломных или курсовых работ будут постепенно, год за годом дополнять друг друга. Таким образом, в настоящее время разработка программных продуктов в рамках учебных проектов ведется итерационно, то есть весь большой проект разбивается на отдельные задачи, которые и выдаются определенным студенческим проектным группам в виде их основной учебной работы.

При этом не существует определенных обязательств между студентами по прямой передаче знаний и технологий, используемых в решениях, и данная работа ложится на плечи преподавателей, причем зачастую в устной форме, что, при большом количестве студентов у каждого из них, может быть проблематично.

Разрабатываемая модель включает основные шаги по документированию своих действий и наработок, что позволит облегчить процесс передачи знаний между разными поколениями студентов. В данном случае, например, не нужно будет просматривать весь текст работы других студентов, достаточно будет прочитать отдельно составленные техническое описание и план работ.

Похожие статьи




Обзор текущего процесса разработки ПО в НИУ ВШЭ - Пермь и методик его улучшения, Обзор текущего процесса разработки ПО в рамках учебных проектов в НИУ ВШЭ - Пермь - Методика моделирования основных процессов разработки программного обеспечения

Предыдущая | Следующая