Научная статья на тему 'Показатели эффективности совместной деятельности разработчиков открытого программного обеспечения'

Показатели эффективности совместной деятельности разработчиков открытого программного обеспечения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
32
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
совместная деятельность / эффективность / открытое программное обеспечение / распределённая команда / виртуальная организация / joint activity / performance / open-source software / distributed team / virtual organization

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Панов Кирилл Алексеевич, Винокуров Федор Никитич

Цель. Цель данного исследования — операционализация понятия «эффективность совместной деятельности разработчиков открытого программного обеспечения». Методология. Исследование выполнено в рамках качественной методологии. Метод сбора данных — полуструктурированное интервью, метод анализа данных — тематический анализ. Выборку составили семь русскоговорящих администраторов проектов (maintainer) по разработке открытого программного обеспечения с опытом руководства проектной командой. Результаты. Основной целью администратор проекта видит стабильный выход необходимых функций и устранение ошибок. Он должен ясно представлять итоговый функционал продукта и разделять это представление с командой. Достижению цели и снижению темпов разработки могут помешать отток членов команды и барьеры распространения знаний между ними. Выводы. Эффективное достижение цели — это добавление в продукт новых функций без необходимости их последующей доработки с минимальными временными затратами и максимальной удовлетворённостью разработчиков совместным трудом. Производительный показатель эффективности определяется как отношение принятых и при этом не отменённых запросов на внесение изменений (pull request) ко всем запросам, а также как среднее время обработки запроса на внесение изменений. Социально-психологический показатель эффективности выражается в удовлетворённости разработчиков взаимодействием. Она может быть оценена как с помощью опроса, так и через анализ процесса коммуникации на наличие недовольства действиями другого. Ценность результатов. Предложена операционализация понятия «эффективность» для будущего эмпирического исследования социально-психологических детерминант эффективности совместной деятельности.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Панов Кирилл Алексеевич, Винокуров Федор Никитич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Indicators of the effectiveness of joint activity of opensource software developers

Purpose is to identify criteria of the effectiveness of joint activity of open-source software developers. The research was carried out in the framework of a qualitative methodology. Methodology. Data collection method is semi-structured interview; data analysis method is thematic analysis. The purposive sample of the research is seven Russian-speaking maintainers of open-source software development projects. The main goal of the project maintainer is to develop new features and fix bugs constantly. To achieve the goal, he has an image final functionality of the product shared with the team. Staff turnover and knowledge sharing barriers can prevent from reaching the goal. Findings. The analysis suggests that the effective achievement of the goal is to deliver product features without reverting commits in the shortest possible time with maximum satisfaction of developers with joint activity. The performance is measured by the ratio of accepted and not canceled pull requests to all requests and the average time of pull request review. The satisfaction with joint activity can be measured both by means of a survey, as well as by counting the manifestations of dissatisfaction with the actions of team members in the process of text communication. The results can be used for the future empirical study of the socio-psychological factors of effectiveness of joint activity of open-source software developers.

Текст научной работы на тему «Показатели эффективности совместной деятельности разработчиков открытого программного обеспечения»

Организационная психология. 2024. Т. 14. № 1. С. 158-172. DOI: 10.17323/2312-5942-2024-14-1-158-172

ОРГАНИЗАЦИОННАЯ ПСИХОЛОГИЯ

www.orgpsyjournal.hse.ru

Показатели эффективности совместной деятельности разработчиков открытого программного обеспечения

ПАНОВ Кирилл Алексеевич

ОИСГО: 0009-0001-2641-2121

ВИНОКУРОВ Федор Никитич

ОКСГО: 0000-0001-8302-374Х

Московский государственный университет имени М.В.Ломоносова, Москва, Россия

Аннотация. Цель. Цель данного исследования — операционализация понятия «эффективность совместной деятельности разработчиков открытого программного обеспечения». Методология. Исследование выполнено в рамках качественной методологии. Метод сбора данных — полуструктурированное интервью, метод анализа данных — тематический анализ. Выборку составили семь русскоговорящих администраторов проектов (maintainer) по разработке открытого программного обеспечения с опытом руководства проектной командой. Результаты. Основной целью администратор проекта видит стабильный выход необходимых функций и устранение ошибок. Он должен ясно представлять итоговый функционал продукта и разделять это представление с командой. Достижению цели и снижению темпов разработки могут помешать отток членов команды и барьеры распространения знаний между ними. Выводы. Эффективное достижение цели — это добавление в продукт новых функций без необходимости их последующей доработки с минимальными временными затратами и максимальной удовлетворённостью разработчиков совместным трудом. Производительный показатель эффективности определяется как отношение принятых и при этом не отменённых запросов на внесение изменений (pull request) ко всем запросам, а также как среднее время обработки запроса на внесение изменений. Социально-психологический показатель эффективности выражается в удовлетворённости разработчиков взаимодействием. Она может быть оценена как с помощью опроса, так и через анализ процесса коммуникации на наличие недовольства действиями другого. Ценность результатов. Предложена операционализация понятия «эффективность» для будущего эмпирического исследования социально-психологических детерминант эффективности совместной деятельности.

В эпоху экономики, основанной на знаниях, возрастает роль информационных технологий. Одним из ключевых факторов развития отрасли информационных технологий (ИТ) является открытое программное обеспечение (ПО). Открытое программное обеспечение — программное обеспечение, распространяемое с открытым исходным кодом, позволяющим

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

Введение

Адрес: 125009, Москва, ул. Моховая, 11, Стр. 9.

E-mail: [email protected]

его изменить, дополнить и изучить на наличие уязвимостей. Оно повышает эффективность применения ИТ-инфраструктуры конечными пользователями, обеспечивает стабильность использования ИТ в ситуации блокировок, а также порождает инновации благодаря сообществу разработчиков. Об интенсивном развитии открытого ПО свидетельствует несколько показателей. Согласно отчёту о состоянии открытого ПО на 2023 г., примерно 80% компаний увеличили его использование (Github, 2023), а число разработчиков открытого ПО на Гитхаб (Github)1 удвоилось за последние два года и достигло более 40 миллионов (Octoverse, 2022). В России в рамках эксперимента создается национальный репозиторий2 ПО с открытым кодом, в котором, госкорпорации, госкомпании будут размещать для всеобщего использования код и программное обеспечение, разработанное за государственный счёт (Forbes, 2023). Большая часть открытого ПО создаётся и поддерживается командами организационно и географически распределённых разработчиков. Подобные сетевые организационные структуры характеризуются размытостью границ организации и усилением роли неформальных отношений доверия (Нестик, 2004; Штроо, 2006). Совместная деятельность в новых организационных условиях порождают интерес психологов (Gerosa et al., 2021). Но, как правило, исследования в этой области ограничиваются корреляционным анализом переменных, доступных для выгрузки из платформы для совместной разработки. Например, А. Эмануэль c коллегами установили, что востребованность ИТ-проекта связана с количеством переводов документации на разные языки и его стабильностью (Emanuel et al., 2010). Такой подход зачастую приводит лишь к обнаружению очевидных закономерностей, но не позволяет изучить вопрос влияния социально-психологических детерминант на эффективность совместной деятельности.

Отечественныйопытразработкипроблемэффективностисовместнойдеятельностипред-лагает принять перед проведением исследования следующие методологические принципы. Согласно Г. М. Андреевой, эффективность должна быть исследована в контексте конкретной содержательной деятельности группы и реальных отношений, которые сложились в этом процессе на каждом этапе группового развития (Андреева, 2002). Е. М. Дубовская постулирует, что для современной социальной психологии малой группы характерны принципы системности, развития и деятельности (Дубовская, 2013). В контексте эмпирического исследования они означают необходимость выделения собственно групповых феноменов и процессов — норм, целей, ценностей, форм организации индивидуальных действий внутригрупповой активности. Не менее важно учитывать процесс группового развития как перспективного, так и регрессионного; а также учитывать разные уровни группового функционирования, как следствие, соподчинения разных уровней детерминант эффективности. Однако перед началом проведения исследования важно ответить на вопрос о показателях эффективности совместной деятельности группы, чтобы принять их в качестве зависимой переменной.

Эффективность групповой деятельности в социальной психологии

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

1 GitHub — крупнейший веб-сервис для хранения ИТ-проектов и их совместной разработки. Веб-сервис основан на системе контроля версий Git и включает также полноценную социальную сеть для разработчиков.

2 От лат. repositorium «репозиторий; гробница» — централизованное хранилище для внесения изменений в исходный код приложения и управления им.

(Донцов и др., 1998). Иная точка зрения на эффективность совместной деятельности представлена в работах Р. С. Немова, посвящённых социально-психологическому анализу эффективности коллектива. Он предлагает считать эффективным такой коллектив, который успешно реализует свои социальные функции, поэтому помимо профессионально-продуктивного критерия автор вводит идеологический и социально-образовательный. Показателями идеологического критерия являются сформированные ценностные ориентации и уровень активности в общественной жизни, а социально-образовательного — разностороннее развитие личности и удовлетворение её социальных потребностей (Немов, 1982).

Резюмируя итоги исследований, проведённых в этой области, Г. М. Андреева указывает, что «производительность труда группы есть лишь один показатель эффективности. Другой, не менее важный показатель — это удовлетворённость членов группы трудом в группе... а также стремление членов группы добиваться высоких показателей сверх необходимого задания» (Андреева, 2002, с. 163-164). Таким образом, подход отечественной социальной психологии к эффективности совместной деятельности заключается в совмещении производительных показателей совместной деятельности (качество конечного продукта, успешность производственной работы) с социально-психологическими (удовлетворённостью трудом, изменением установок, достижению сходства ценностных ориентаций).

Показатели эффективности групповой деятельности разработчиков

программного обеспечения

Востребованность у пользователей

Востребованность часто используется в качестве операционализации понятия «эффективность» благодаря доступности данных для извлечения. В качестве индикатора востребованности используются следующие показатели: (1) количество загрузок программного обеспечения (Crowston, 2004; Feitelson et al., 2006; Grewal et al., 2006; Ghapanchi, 2015); (2) количество просмотров страниц и количество добавлений в «избранное» (Sen, 2006); (3) количество копирований кода другими разработчиками (Joy et al., 2018). Некоторые исследователи в подобном случае проводят знак равенства между эффективностью и маркетинговым успехом продукта, однако технологические продукты могут быть изначально ориентированы на разное число потребителей, поэтому опора на этот показатель при сравнении деятельности команд может привести к грубым ошибкам интерпретации (Senyard, Michlmayr, 2004).

Удовлетворённость разработчиков

Открытое ПО не может развиваться без поддержки основной команды, отсюда для стабильной разработки важно сохранить ключевых разработчиков в проекте и снизить их отток. Поэтому некоторые единичные исследователи воплощают методологический принцип, выдвинутый Г. М. Андреевой, и оценивают восприятие группового членства, фокусируясь на общей удовлетворённости участников проектом и готовности продолжать работу в будущем (Chang, 2018; Crowston et al., 2003).

Прохождение проектом этапов разработки

Другие исследователи высказывают идею, что многие индикаторы эффективности деятельности группы связаны между собой, поэтому руководителю проекта необходимо отслеживать сразу несколько показателей и в их соотношении видеть позитивную или негативную динамику развития проекта (Crowston; Shamshurin, 2017; Zhao et al., 2021). Первым из исследователей этот методологический подход реализовал Чарлз Швайк, выделив комбина-

цию показателей, на основании которых можно выделить успешные и неуспешные проекты на разных стадиях — до первого релиза3, то есть стадии «инициации» проекта, и после первого релиза — стадии «роста» (Schweik, 2009). Данный показатель позволяет оценить эффективность деятельности на уровне ИТ-проекта, но оставляет без внимания частные интеракции, в ходе которых происходит добавление кода в основной репозиторий.

Вклад разработчиков в продукт

Последняя группа показателей сосредотачивает внимание на вкладе разработчиков в код программы. Существуют разные способы оценить вклад. Самый простой — подсчёт количества уникальных разработчиков, полноценно участвующих в проекте (Beecher et al., 2008; Colazo et al., 2005). Некоторые прибегают к косвенной количественной оценке результата — подсчитывают объём файла, который скачивают пользователи, или число файлов в релизе (Emanuel et al., 2010; Subramaniam et al., 2009). Другие исследователи делают акцент на активности команды и оценивают среднюю продуктивность, выраженную в количестве строк кода, добавленного в среднем за месяц (Colazo et al., 2005; Tsay et al., 2012; Peng, 2019), либо скорость ответа команды на предложение изменить код (Chang, 2018).

Более поздние работы смещают фокус с оценки количества произведённого продукта и скорости его создания на стабильность и постоянство поддержки ПО. Так Надиа Эгбал выделяет три показателя эффективности — разработчики активно разрабатывают проект и намерены продолжать разработку в будущем; проект используется частными разработчиками; исходный код проекта является составной частью других проектов (Eghbal, 2020).

Процедура сбора эмпирических данных

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

Первый этап

Чтобы предложить конкретные показатели эффективности, применимые для деятельности разработчиков открытого программного обеспечения, нами был проведён систематический обзор литературы в базах данных Web of Science и Scopus за период 2000-2023 гг. Для отбора статей одновременно использовалось несколько параметров. Результаты обзора представлены в таблице 1. Упоминание в ключевых словах, аннотации и названии комбинации следующих слов английского языка: FLOSS / OSS и effectiveness / performance / productiveness / success. Итоговый запрос выглядел так:

«TITLE-ABS-KEY((effectiveness OR productiveness OR performance OR success) AND ((floss PRE/4 project*) OR (oss

PRE/4 project*))) AND PUBYEAR > 2000».

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

• экономические;

• организационные производительные;

• социально-психологические.

3 От англ. release — «выпуск». Выпуск определённой версии программного продукта для пользователей.

Отличия зарубежного и отечественного подхода обнаруживаются в представленности показателей эффективности. В частности, социально-психологическому показателю, традиционному для отечественной социальной психологии, зарубежными авторами практически не уделяется внимание. Обращают на себя внимание отличия в содержательной трактовке понятия «удовлетворённость». Если для зарубежных авторов она выступает как общий показатель отношения к проекту без дифференциации направленности этого отношения (к результату, к отношениям в команде и так далее), то для отечественных авторов удовлетворённость непосредственно относится к совместному труду. Общим же для исследователей является принятие производительного показателя эффективности в качестве обязательного.

Таблица 1. Операционализация понятия эффективности или успешности в зарубежных исследованиях разработки ПО с открытым исходным кодом

Автор

Год

Показатель эффективности

Операционализация и методика оценки показателя

E. Raymond

K. Crowston et al.

K. Crowston

1999 Число исправленных ошибок. Выпуск новой версии продукта. Размер вклада каждого участника

2003 Факт изменения версии от альфа-версии к бета-версии и к стабильной. Время релиза новой версии проекта.

Время исправления ошибок или внедрения функционала.

Уровень проектной активности. Факт достижения проектной цели.

Количество разработчиков.

Удовлетворённость разработчиков.

2004 Количество разработчиков в проекте.

Время исправления ошибок.

C. Fershtman et al.

J. Colazo et al.

R. Sen R. Grewal

Количество загрузок. Уровень проектной активности. 2004 Объём вклада на одного участника.

2005 Количество разработчиков в проекте.

Объём вклада на одного участника.

2006 Популярность проекта.

2006 Количество внесённых в код изменений. Количество загрузок.

Не приводится. Автор намечает аспекты, на которые стоит обратить внимание при разработке открытого ПО.

Фиксация изменения статуса проекта на платформе для совместной разработки.

Промежуток времени от выпуска одной версии продукта до выпуска другой.

Промежуток времени от появления проблемы или запроса на принятие изменений до изменения его статуса на «принято» или «отклонено».

Подсчёт числа добавлений части кода в основную ветку. Сопоставление кода продукта с исходной спецификацией требований ПО.

Подсчёт числа уникальных разработчиков из списка рассылки проекта.

Количественный опрос удовлетворённости. Методика не приводится.

Количество уникальных ID пользователей, разместивших проблему или сообщение о проблеме в системе контроля версий.

Использование модели пропорциональных рисков Д. Р. Кокса (Cox proportional-hazards model). В качестве предикторов выживаемости указан приоритет проблем. Расчёт производится с помощью функции PSM в пакетах Survival and Design программы R-Studio.

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

Отношение строк исходного кода программы в момент времени к количеству уникальных разработчиков, оставляющих комментарий или делавших вклад в проект. (Количество посещений сайта проекта * (количество добавлений проекта в избранное) + 1)Л(1/2) Подсчёт числа добавлений части кода в основную ветку проекта.

Вычисляемый внутри платформы для совместной разработки SourceForge показатель скачивания проекта.

Автор

Год

Показатель эффективности

Операционализация и методика оценки показателя

D. G. Feitelson et al.

S. Comino et al.

A. Israeli and D. G. Feitelson K. Beecher et al.

V. Garousi

2006 Количество загрузок.

2007 Прохождение стадий разработки программного обеспечения.

2007 Количество загрузок.

2008 Количество разработчиков.

Количество внесенных в код изменений. 2009 Количество загрузок.

Количество разработчиков.

Количество устраняемых ошибок.

C. Subramani- 2009 Интерес разработчиков.

et al.

C. Schweik

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Интерес пользователей.

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

A. W. R. 2010 Количество загрузок. Emanuel et al.

V. Midha and 2012 Рыночный успех. P. Palvia

Количество добавлений кода в текущую версию программы. J. T. Tsay et al. 2012 Внимание разработчиков.

Вклад в работу. Интерес пользователей.

Интерес разработчиков.

Число скачиваний проекта, вычисляемое внутри

платформы для совместной разработки.

Подсчёт числа добавлений части кода в основную ветку.

Вычисляемый внутри платформы для совместной разработки SourceForge показатель скачивания проекта. Количество разработчиков, добавивших файл в репозито-рий + количество разработчиков, участвующих в обсуждении проблемы или запроса на изменение. Количество любых действий разработчиков в основной ветке репозитория.

Ежемесячное количество скачиваний проекта из платформы для совместной разработки SourceForge. Количество разработчиков, выполнивших хотя бы одно действие в проблеме или запросе на изменение. Одновременная фиксация трёх показателей: среднее время от появления проблемы до первого действия в ней; соотношение решенных проблем ко всем в разные периоды времени; среднее время от появления проблемы до изменения его статуса на «принято» или «отклонено». Количество разработчиков, выполнивших хотя бы одно действие в проблеме или запросе на изменение за месяц. Количество скачиваний проекта из платформы для совместной разработки за месяц. Количество файлов, выпущенных проектом за месяц. Успешный запуск: проект выпустил первый релиз. Провальный запуск: проект не выпустил ни одного релиза и был выпущен более года назад.

Неопределённый запуск: проект не выпустил ни одного релиза, но прошло меньше года. Успешный рост: проект осуществил минимум три выпуска, между которыми прошло более шести месяцев, и его скачали более 10 раз.

Провальный рост: проект имеет три и более релизов. При этом его скачали менее 11 раз в течение шести месяцев с даты первого релиза.

Неопределённый рост: проект выпустил один или два релиза, и прошло меньше года с последнего / или три релиза, но между ними было менее шести месяцев и прошло менее года с момента последнего релиза. Число скачиваний проекта, вычисляемое внутри платформы для совместной разработки. Вычисляемый внутри платформы для совместной разработки 8оигсеБо^е показатель скачивания проекта. Подсчёт числа добавлений части кода в основную ветку проекта.

Количество подписчиков проекта. Не указана.

Изменение количества скачиваний проекта из платформы для совместной разработки по сравнению с прошлым месяцем.

Изменение количества разработчиков, выполнивших хотя бы одно действие в проблеме или запросе на изменение по сравнению с прошлым месяцем.

Автор

Год

Показатель эффективности

Операционализация и методика оценки показателя

Устойчивость разработки.

Частота релизов. Активность проекта.

K Crowston and 2017 Достижение проектом определён-

I. Shamshurin ной стадии развития.

L. Chang 2018 Удовлетворённость разработчиков.

Готовность разработчиков продолжать работу.

A. Joy et al. 2018 Производительность проекта. G. Peng_2019 Технический успех._

Изменение количества вкладов в проект по сравнению с прошлым месяцем.

Среднее количество выпусков файлов проекта за месяц. Количество добавлений части кода в основную ветку проекта.

Факт выхода проекта из инкубатора «Apache Software Foundation».

Вопрос: «Как вы оцениваете свою общую удовлетворённость проектом по шкале от одного до пяти?». Вопрос: «Если у вас есть время, готовы ли вы продолжить (если вы активный участник) или вернуться (если вы неактивный участник) и вносить вклады в проект»? Варианты ответов: Да / Нет / Наверное. Количество ответвлений, копий основного репозитория проекта другими разработчиками (fork). Подсчёт числа добавлений части кода в основную ветку.

Второй этап

С точки зрения социальной психологии совместная деятельность является «организованной системой активности взаимодействующих индивидов, направленной на целесообразное производство объектов культуры» (Андреева и др., 1987, c. 24), а её эффективность — качественная характеристика, характеризуемая как достижением целей общественно значимой деятельности с наименьшими затратами ресурсов, так и удовлетворённостью участников совместным трудом. Отсюда для проведения эмпирического исследования социально-психологических детерминант эффективности совместной деятельности важно принять производительный и социально-психологический показатель эффективности в качестве зависимых переменных. Множественность вариантов операционализации показателей на уровне эмпирических референтов в зарубежных исследованиях побуждает нас дополнительно изучить представления руководителей проектов открытого ПО, чтобы выбрать наиболее соответствующий специфике деятельности способ операционализации.

Цель

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

Методы

В качестве метода исследования было выбрано полуструктурированное интервью. Данный метод позволял не только задавать проясняющие вопросы, но и изменять последовательность тематических блоков для сохранения контакта в беседе. Авторское интервью было разработано с целью выявить проявления активности группы, на которые ориентируются руководители проектов при оценке эффективности совместной деятельности. В рамках интервью задавались девять вопросов из трёх тематических блоков (табл. 2). Процедура обработки качественных данных — тематический контент-анализ, включающий преимущественно дедуктивное, или «направленное данными» (data-driven) кодирование (Хорошилов, Мельникова, 2020). Интервью проходило в дистанционном формате, с видеозаписью, с согласия респондентов, без цели распространения.

Таблица 2. Структура авторского интервью с примерами вопросов

Назначение вопроса

Пример вопроса

Маркеры для контент-анализа

Знакомство с контекстом проекта.

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

Уточнение категорий, выделенных на собственном опыте.

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

Как вы понимаете в процессе разработки проекта, что все идёт хорошо? Приведите примеры ситуаций из вашего проекта. На что вы ориентируетесь, когда судите, является ли проект эффективным?

Какие действия вы совершаете, чтобы все шло хорошо, а проект вами воспринимался как эффективный? Какие действия вы запрашиваете у команды? А наоборот, что именно показывает, что с проектом что-то не так? Приведите примеры подобных ситуаций из вашего проекта.

Что в таких ситуациях вам приходилось предпринимать? А команде?

Можете привести пример успешного проекта, который вы знаете? А неуспешного?

На основании чего вы их оцениваете именно так? Какие условия их привели к этому?

Можно ли ваш проект поставить в один ряд с ними, почему?

Не использовались.

Категории показателей эффективности совместной деятельности и факторов, которые могут влиять на неё.

Категории показателей эффективности совместной деятельности и факторов, которые могут

влиять на нее.

Выборка

В исследовании приняли участие семь русскоговорящих администраторов проектов по разработке открытого программного обеспечения. Администратор проекта (maintainer) — это разработчик, который несёт ответственность за приоритезацию дополнительных функций и добавление частей кода в основной репозиторий — центральное хранилище, где части программы собраны вместе. Каждый респондент имеет опыт руководства проектной командой, включающей от двух дополнительных разработчиков. Место жительства трёх участников — Москва, остальные находятся за рубежом. Уровень образования всех респондентов — высшее. Основная деятельность — профессиональная. Метод подбора — невероятностная целенаправленная выборка, позволяющая не обобщать результаты на конкретную группу, но обнаружить сходства в представлениях администраторов проектов на эффективность совместной деятельности.

Процедура исследования

Сбор данных осуществлялся в течение первой половины 2023 года. Респонденты привлекались в тематических группах через мессенджер «Telegram». Исследование проводилось в формате онлайн-беседы с респондентами по вопросам полуструктурированного интервью в течение 30 минут.

Результаты

Главной целью своей деятельности администраторы проекта видят создание итогового продукта. Основное внимание администратора сосредоточено на реализации плана по созданию необходимых функций и поддержке ПО («Всё идёт хорошо — если баги4 планомерно закрываются. Очень плохо, когда их куча и надо расхлебывать»; «Open source — это чисто про выкатывание новых фичей5»; «Эффективный — частота фичей, частота закрытия

4 От англ. bug — «насекомое». Ошибка в коде или в работе программы.

5 От англ. feature — «особенность, необычное свойство». Часть продукта, которая имеет специфические характеристики.

багов, время небольшое. Всё быстро, получил детали, два дня, отладка и поехали»; «Пушат6, ведь бизнесу быстрее нужно вывести фичи»; «Автоматик для Stable Diffusion, у него около нулевая стабильность он только на развитие фичей направлен»). Отсюда производительный показатель эффективности совместной деятельности в практике разработчиков открытого ПО может быть определён как выпуск функций продукта с минимальными временными затратами и без необходимости дополнительной доработки.

Для реализации этой цели важно, чтобы администратор проекта обладал сформированным представлением о функциональности продукта («Даже если ты пока не набрал команду, то у тебя всё равно есть вижн7 того, что считаешь версией 1.0, набор полезных фичей»; «Были ребята, которые занимались каждый своим блоком. И вроде каждый блок готов, но ничего в итоге не вышло — видение было размыто, никто себе не представлял, что должно быть на выходе»), имел возможности приоритезировать задачи и разделять их между членами команды («Есть более приоритетная задача, которую команда должна взять на себя сейчас, а есть менее, например, некоторые issues8 от пользователей»; «Если разработчик увлечённый, то важно, чтобы понимал в масштабе, что он делает, а не просто напиши функцию какую-то»; «Мы в core-команде9, поэтому в начале необходимо договориться о процессе, чтобы вместе пилить10 продукт и до конца его доводить»).

Осуществлению этой цели могут помешать преграды в распространении знаний между членами команды («Возникают какие-то склоки, недомолвки, я не очень понимаю, да, из-за чего это происходит сейчас»; «Best practice, когда чётко вовремя говорят, что всё идёт не так. Так работа идёт быстрее») и усложненное взаимодействие между участниками («Крутой чувак, но супертоксичный, с ним сложнее коммуницировать. При наборе не надо отдавать предпочтение только техническим скиллам11»; «Бывает разговаривать невозможно — большое эго. Считает, что он круче всех и говорит — читай документацию. Но у членов команды иногда времени на это нет»). Они приводят к снижению темпов разработки («Обсудил, не договорились, выкатил это в прод12. Снимаем, дорабатываем. Фича превращается в костыль»; «Не умеют говорить — это сразу технический долг, slow down13»). Удовлетворённость взаимодействием с членами команды разработки в процессе осуществления совместной деятельности — социально-психологический показатель эффективности.

Для того, чтобы преодолеть преграды на пути достижения цели деятельности, администраторы уделяют внимание тщательному подбору команды с развитыми коммуникативными навыками («Здесь важно, чтобы команда создалась сплочённая и слаженная»; «Подбор правильных прогеров14 — основное, что может быть»; «Слежу за процессом и понимаю, что надо вовремя и быстро убирать мешающих ребят»), стараются сохранить стабильный состав группы, включающий администратора и ключевых разработчиков («Нужно дать уверенность, что я тоже буду его продолжать, всё будет хорошо»; «Кнут прикладывать не получится,

6 От англ. to push — «давить». Оказывать давление с целью получить желаемое.

7 От англ. vision — «видение». Образ продукта, представление о ключевых функциях и задачах.

8 От англ. issue — «проблема». Сообщение в системе учёта ошибок.

9 От англ. core — «ядро». Основная команда разработчиков. Отвечает за стратегическое развития и принятие ключевых решений.

10 Сленг. создавать, разрабатывать.

11 От англ. skill — «умение».

12 Сокр. — продукт.

13 От англ. slow down — «снижать скорость, сбавлять темп».

14 Сокр. — программист.

нет инструментов. Нужен пряник и важно держать основных разрабов, иначе будет туго») и поддерживать инициативу других участников взаимодействия («Здесь опасность — задавить чужую инициативу. Она держит проект на плаву и порождает другие активности от модов и моделек до трёхмерного рендеринга15»).

Выводы

Ключевая цель деятельности администратора проекта с открытым исходным кодом — стабильное создание программного продукта. Эффективное достижение этой цели заключается в выпуске функций с минимальными временными затратами и без необходимости дорабатывать внесённый в код вклад. Отсюда производительный показатель эффективности совместной деятельности может быть измерен как отношение принятых и при этом не отменённых запросов на принятие изменений (pull request) ко всем запросам, а также как среднее время обработки запроса на принятие изменений. Подобная операционализация позволит оценить эффективность как на уровне проекта, так и на уровне отдельного взаимодействия по внесению изменений в код.

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

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

Литература

Андреева, Г. М. (2023). Социальная психология: Учебник для вузов. М.: Аспект Пресс. Андреева, Г. М., Яноушек, Я., Донцов, А. И., Хараш, А. У, Агеев, В. С., Брихцин, М., ... Богомолова,

Н. Н. (1987). Общение и оптимизация совместной деятельности. М.: Изд-во Моск. ун-та. Донцов, А. И., Дубовская, Е. М., Улановская, И. М. (1998). Разработка критериев анализа

совместной деятельности. Вопросы психологии, (2), 61-71. Дубовская, Е. М. (2013). Проблема совместной деятельности: традиция и перспектива.

Социальная психология и общество, 4(3), 5-12. Немов, Р. С. (1982). Психологические условия и критерии эффективности работы коллектива. М.: Знание.

Нестик, Т. А. (2004). Развивать организацию через развитие социальных сетей: роль кадровой

службы. Кадровая служба и управление персоналом предприятия, 7, 323-325. Рожков, Р. (2023). Замглавы Минцифры Максим Паршин: «Не хотим изоляции, но нам нужен свой репозиторий». Forbes. URL: <https://www.forbes.ru/tekhnologii/486349-zamglavy-mincifry-maksim-parsin-ne-hotim-izolacii-no-nam Хорошилов, Д. А., Мельникова, О. Т. (2020). Метод тематического анализа в изучении представлений о женском лидерстве. Организационная психология, 10(3), 85-99.

15 Создание фотореалистичного двумерного изображения с помощью трёхмерных моделей.

Штроо, В. А. (2006). Человек и организация в условиях модернизации экономики. В сб.: Е. Г. Ясин (ред.), Модернизация экономики и государство: мат-лы VII междунар. науч. конф. М.: Изд-во ГУ ВШЭ.

Beecher, K., Boldyreff, C., Capiluppi, A., Rank, S. (2008). Evolutionary success of open source software: An investigation into exogenous drivers. Electronic Communications of the EASST, 8.

Chang, L. (2018). Motivations, team dynamics, development practices and how they impact the success of open source software: A study of projects of code for America brigades. Electronic Theses and Dissertations, 1528. https://digitalcommons.du.edu/etd/1528

Colazo, J. A., Fang, Y., Neufeld, D. (2005). Development success in open source software projects: exploring the impact of copylefted licenses.

Comino, S., Manenti, F. M., Parisi, M. L. (2007). From planning to mature: On the success of open source projects. Research policy, 36(10), 1575-1586.

Crowston, K., Annabi, H., Howison, J. (2003). Defining open source software project success. In Proceedings of the International Conference on Information Systems (ICIS 2003), Seattle, WA, USA, December. doi: 10.1287/mnsc.1060.0550

Crowston, K., Annabi, H., Howison, J., Masango, C. (2004). Towards a portfolio of FLOSS project success measures. In Workshop on Open Source Software Engineering, 26th International Conference on Software Engineering. Edinburgh.

Crowston, K., Shamshurin, I. (2017). Core-periphery communication and the success of free / libre open source software projects. Journal of Internet Services and Applications, 8, 1-11.

Eghbal, N. (2020). Working in public: the making and maintenance of open source software. Stripe Press.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Emanuel, A. W. R., Wardoyo, R., Istiyanto, J. E., Mustofa, K. (2010). Success factors of OSS projects from sourceforge using Datamining Association Rule. In 2010 International Conference on Distributed Frameworks for Multimedia Applica.

Feitelson, D. G., Heller, G. Z., Schach, S. R. (2006). An empirically-based criterion for determining the success of an open-source project. In Australian Software Engineering Conference (ASWEC'06).

Fershtman, C., Gandal, N. (2004). The determinants of output per contributor in open source projects: An empirical examination. CEPR Discussion Papers, 4329.

Garousi, V. (2009). Investigating the success factors of opensource software projects across their lifetime. Journal of Software Engineering Studies, 4(1), 1-15.

Gerosa, M., Wiese, I., Trinkenreich, B. ... Sarma, A. (2021). The shifting sands of motivation: Revisiting what drives contributors in open source. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE). IEEE, 1.

Ghapanchi, A. H. (2015). Investigating the interrelationships among success measures of open source software projects. Journal of Organizational Computing and Electronic Commerce, 25(1), 28-46.

GitHub (2023). The state of open source software. Github. URL: https://octoverse.github.com/ (дата обращения: 03.05.2023).

Grewal, R., Lilien, G. L., Mallapragada, G. (2006). Location, location, location: How network embeddedness affects project success in open source systems. Management science, 52(7), 10431056.

Israeli, A., Feitelson, D. G. (2007). Success of open source projects: Patterns of downloads and releases with time. In IEEE International Conference on Software-Science, Technology & Engineering. IEEE (87-94).

Joy, A., Thangavelu, S., Jyotishi, A. (2018). Performance of GitHub open-source software project: an empirical analysis. In 2018 Second International Conference on Advances in Electronics, Computers.

Midha, V., Palvia, P. (2012). Factors affecting the success of Open Source Software. Journal of Systems and Software, 85(4), 895-905.

Openlogic (2023). State of Open Source Report. Openlogic: сайт. URL: https://www.openlogic. com/resources/2023-state-open-source-report?utm_source=0SI&utm_medium=content&utm_ campaign=0PL-GLB-2023Q1-C0N-State

Peng, G. (2019). Co-membership, networks ties, and knowledge flow: An empirical investigation controlling for alternative mechanisms. Decision Support Systems, 118, 83-90.

Raymond, E. (1999). The cathedral and the bazaar. Knowledge, Technology & Policy, 12(3), 23-49.

Schweik, C. (2009). The dependent variable: defining open source "success" and "abandonment" using sourceforge. Net Data. NCDG, 35.

Sen, R. (2006). Open source software development projects: determinants of project popularity. In EERI Research Paper Series, 2/2006.

Senyard, A., Michlmayr, M. (2004). How to have a successful free software project. In 11th Asia-Pacific Software Engineering Conference. IEEE, 84-91.

Subramaniam, C., Sen, R., Nelson, M. L. (2009). Determinants of open source software project success: A longitudinal study. Decision Support Systems, 46(2), 576-585.

Tsay, J. T., Dabbish, L., Herbsleb, J. (2012). Social media and success in open source projects. In Proceedings of the ACM 2012 conference on computer supported cooperative work companion, 223-226.

Zhao, Y., Liang, R., Chen, X., Zou, J. (2021). Evaluation indicators for open-source software: a review. Cybersecurity, 4(1), 1-24.

Поступила 14.09.2023

ORGANIZATIONAL PSYCHOLOGY

Indicators of the effectiveness of joint activity of open-source software developers

Kirill PANOV

ORCID: 0009-0001-2641-2121

Fedor VINOKUROV

ORCID: 0000-0001-8302-374X

Lomonosov Moscow State University, Moscow, Russian Federation

Abstract. Purpose is to identify criteria of the effectiveness of joint activity of open-source software developers. The research was carried out in the framework of a qualitative methodology. Methodology. Data collection method is semi-structured interview; data analysis method is thematic analysis. The purposive sample of the research is seven Russian-speaking maintainers of open-source software development projects. The main goal of the project maintainer is to develop new features and fix bugs constantly. To achieve the goal, he has an image final functionality of the product shared with the team. Staff turnover and knowledge sharing barriers can prevent from reaching the goal. Findings. The analysis suggests that the effective achievement of the goal is to deliver product features without reverting commits in the shortest possible time with maximum satisfaction of developers with joint activity. The performance is measured by the ratio of accepted and not canceled pull requests to all requests and the average time of pull request review. The satisfaction with joint activity can be measured both by means of a survey, as well as by counting the manifestations of dissatisfaction with the actions of team members in the process of text communication. The results can be used for the future empirical study of the socio-psychological factors of effectiveness of joint activity of open-source software developers.

Keywords: joint activity; performance; open-source software; distributed team; virtual organization.

References

Andreeva, G. M. (2023). Sotsial'naya psikhologiya: Uchebnik dlya vuzov [Social psychology: Textbook

for universities]. M.: Aspekt Press. (in Russian) Andreeva, G. M., Yanoushek, Ya., Dontsov, A. I., Kharash, A. U., Ageyev, V. S., Brikhtsin, M., ... Bogomolova, N. N. (1987). Obshcheniye i optimizatsiya sovmestnoy deyatel'nosti [Communication and optimization of joint activities]. M.: Izd-vo Mosk. un-ta. (in Russian) Beecher, K., Boldyreff, C., Capiluppi, A., Rank, S. (2008). Evolutionary success of open source software:

An investigation into exogenous drivers. Electronic Communications of the EASST, 8. Chang, L. (2018). Motivations, team dynamics, development practices and how they impact the suc-cess of open source software: A study of projects of code for America brigades. Electronic Theses and Dissertations, 1528. https://digitalcommons.du.edu/etd/1528

Address: Russian Federation, 125009, Moscow, st. Mokhovaya, 11 Bldg. 9. E-mail: [email protected]

Colazo, J. A., Fang, Y., Neufeld, D. (2005). Development success in open source software projects: ex-ploring the impact of copylefted licenses.

Comino, S., Manenti, F. M., Parisi, M. L. (2007). From planning to mature: On the success of open source projects. Research policy, 36(10), 1575-1586.

Crowston, K., Annabi, H., Howison, J. (2003). Defining open source software project success. In Proceedings of the International Conference on Information Systems (ICIS 2003). Seattle, WA, USA, December. DOI: 10.1287/mnsc.1060.0550

Crowston, K., Annabi, H., Howison, J., Masango, C. (2004). Towards a portfolio of FLOSS project suc-cess measures. In Workshop on Open Source Software Engineering, 26th International Conference on Software Engineering. Edinburgh.

Crowston, K., Shamshurin, I. (2017). Core-periphery communication and the success of free / libre open source software projects. Journal of Internet Services and Applications, 8, 1-11.

Dontsov, A. I., Dubovskaya, Ye. M., Ulanovskaya, I. M. (1998). Razrabotka kriteriyev analiza sov-mestnoy deyatel'nosti [Development of criteria for analyzing joint activities]. Voprosy psikhologii, (2), 61-71. (in Russian)

Dubovskaya, Ye. M. (2013). Problema sovmestnoy deyatel'nosti: traditsiya i perspektiva [The problem of joint activities: tradition and perspective]. Sotsial'naya psikhologiya i obshchestvo, 4(3), 5-12. (in Russian)

Eghbal, N. (2020). Working in public: the making and maintenance of open source software. Stripe Press.

Emanuel, A. W. R., Wardoyo, R., Istiyanto, J. E., Mustofa, K. (2010). Success factors of OSS projects from sourceforge using Datamining Association Rule. In 2010 International Conference on Distributed Frameworks for Multimedia Applica.

Feitelson, D. G., Heller, G. Z., Schach, S. R. (2006). An empirically based criterion for determining the success of an open-source project. In Australian Software Engineering Conference (ASWEC'06).

Fershtman, C., Gandal, N. (2004). The determinants of output per contributor in open source projects: An empirical examination. CEPR Discussion Papers, 4329.

Garousi, V. (2009). Investigating the success factors of opensource software projects across their lifetime. Journal of Software Engineering Studies, 4(1), 1-15.

Gerosa, M., Wiese, I., Trinkenreich, B. ... Sarma, A. (2021). The shifting sands of motivation: Revisiting what drives contributors in open source. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE). IEEE, 1.

Ghapanchi, A. H. (2015). Investigating the interrelationships among success measures of open source software projects. Journal of Organizational Computing and Electronic Commerce, 25(1), 28-46.

GitHub (2023). The state of open source software. Github URL: https://octoverse.github.com/

Grewal, R., Lilien, G. L., Mallapragada, G. (2006). Location, location, location: How network embed-dedness affects project success in open source systems. Management science, 52(7), 1043-1056.

Israeli, A., Feitelson, D. G. (2007). Success of open source projects: Patterns of downloads and releases with time. In IEEE International Conference on Software-Science, Technology & Engineering. IEEE (87-94).

Joy, A., Thangavelu, S., Jyotishi, A. (2018). Performance of GitHub open-source software project: an empirical analysis. In 2018 Second International Conference on Advances in Electronics, Computers.

Khoroshilov, D. A., Mel'nikova, O. T. (2020). Metod tematicheskogo analiza v izuchenii predstavleniy o zhenskom liderstve [The method of thematic analysis in the study of ideas about women's leadership]. Organizational Psychology, 10(3), 85-99. (in Russian)

Midha, V., Palvia, P. (2012). Factors affecting the success of Open Source Software. Journal of Systems and Software, 85(4), 895-905.

Nemov, R. S. (1982). Psikhologicheskiye usloviya i kriterii effektivnosti raboty kollektiva [Psychological

conditions and criteria for the effectiveness of team work]. M.: Znaniye. (in Russian) Nestik, T. A. (2004). Razvivat' organizatsiyu cherez razvitiye sotsial'nykh setey: rol' kadrovoy sluzhby [Developing an organization through the development of social networks: the role of HR]. Kadrovaya sluzhba i upravleniye personalom predpriyatiya, 7, 323-325. (in Russian) Openlogic (2023). State of Open Source Report. Openlogic: site. URL: https://www.openlogic.com/ resources/2023-state-open-source-report?utm_source=OSI&utm_medium=content&utm_ campaign=OPL-GLB-2023Q1-CON-State Peng, G. (2019). Co-membership, networks ties, and knowledge flow: An empirical investigation

controlling for alternative mechanisms. Decision Support Systems, 118, 83-90. Raymond, E. (1999). The cathedral and the bazaar. Knowledge, Technology & Policy, 12(3), 23-49. Rozhkov, R. (2023). Zamglavy Mintsifry Maksim Parshin: «Ne khotim izolyatsii, no nam nuzhen svoy repozitoriy» [Deputy Head of the Ministry of Digital Development Maxim Parshin: "We don't want isolation, but we need our own repository"]. Forbes. URL: https://www.forbes.ru/tekhnologii/ (in Russian)

Schweik, C. (2009). The dependent variable: defining open source" success" and" abandonment"

us-ing sourceforge. Net Data. NCDG, 35. Sen, R. (2006). Open source software development projects: determinants of project popularity. In

EERI Research Paper Series, 2/2006. Senyard, A., Michlmayr, M. (2004). How to have a successful free software project. In 11th Asia-Pacific

Software Engineering Conference. IEEE, 84-91. Stroh, W. A. (2006). Chelovek i organizatsiya v usloviyakh modernizatsii ekonomiki [Person and organization in the context of economic modernization]. V sb.: Ye. G. Yasin (red.). Modernizatsiya ekonomiki igosudarstvo: mat-ly VII mezhdunar. nauch. konf. M.: Izd-vo HSE. (in Russian) Subramaniam, C., Sen, R., Nelson, M. L. (2009). Determinants of open source software project success:

A longitudinal study. Decision Support Systems, 46(2), 576-585. Tsay, J. T., Dabbish, L., Herbsleb, J. (2012). Social media and success in open source projects. In Proceedings of the ACM 2012 conference on computer supported cooperative work companion, 223-226.

Zhao, Y., Liang, R., Chen, X., Zou, J. (2021). Evaluation indicators for open-source software: a review. Cybersecurity, 4(1), 1-24.

Received 14.09.2023

i Надоели баннеры? Вы всегда можете отключить рекламу.