Введение 4
1. Существующие работы на данную тему 7
2. Постановка задач 8
3. Метрика 9
3.1. Построение метрики 9
3.2. Примеры использования метрики 10
3.3. Достоинства метрики 10
4. Проведения анализа пользователей Германии 12
4.1. Структура данных 12
4.2. Анализ пользователей 15
5. Проведение анализа самых популярных программистов мира 19
6. Ручной алгоритм 20
6.1. Самые важные характеристики со страницы профиля 20
6.2. Ручной алгоритм 22
7. Заключение 25
Список литературы 26
GitHub самая популярная система контроля версий для создания open source продуктов. Свою популярность данный сайт получил не только благодаря инструментам, обеспечивающим сам процесс разработки, но и благодаря встроенной системе социальных отношений [1]. Многие люди пользуются GitHub , чтобы создавать и поддерживать существующие продукты, но не меньшее количество людей приходит из-за популярности данного сервиса. Ввиду всего этого на GitHub происходят явления социального характера [1], которые не могут быть объяснены в терминах данной системы (например, пользователь с большим числом подписчиков, но совсем без программного кода).
Уже на протяжении нескольких лет GitHub активно развивается, в данный момент сложно найти разработчика, не исользующего данный сервис. Каждый программист, который зарегестрирован на GitHub, должен иметь профиль, содержащий важную информацию о нём. В связи с этим GitHub стал интенсивно использоваться HR менеджерами для поиска сотрудников.
Перечислим информацию, доступную в профиле программиста, котрую может использовать HR менеджер:
1) Organizations - организации в которых состоит пользователь;
2) Repositories - репозитории (репозиторий - ’’папка с кодом” какого-либо проекта);
3) Stars - количество звёзд, которые поставил пользователь другим репозиториям. Также можно просмотреть непосредственно эти репозитории;
4) Followers - количество тех, кто подписался на данного пользователя. Также можно просмотреть непосредственно этих пользователей;
5) Following - количество людей в подписке пользователя с возможностью просмотреть профили этих людей;
6) Popular repositories - самые популярные репозитории пользователя, которые были специально выбраны для экспозиции их на главной странице. В настройках пользователь может поменять список выбранных репозиториев (тогда их называют pinned repositories, то есть специально поставленные пользователем);
7) Contribution - поле, характеризующие вклад пользователя в какие-либо проекты за последний год. Является натуральным числом.
Ниже вы можете видеть, как это выглядит на сайте GitHub (элементы пронумерованы).
Рис. 1: Страница профиля программиста
Также можно просмотреть репозитории пользователя, которые содержат следующую информацию:
1) код проекта;
2) Watchers - количество людей, наблюдающих за репозиторием. Также можно просмотреть профили непосредственно этих людей;
3) Stargzers - количество пользователей поставивших звёздочку репозиторию с возможностью просмотреть принадлежащие им профили;
4) Forks - количество ’’копий” данного репозитория в терминах GitHub, с возможностью просмотреть данные копии.
Благодаря этой информации, менеджеры по персоналу могут в ручную оценивать любого пользователя. Обычно они смотрят количество подписчиков, которое говорит о популярности пользователя, в ручную просматривают код, пробегая по некоторым из его репозиториев, однако практически невозможно проводить полный анализ или сравнивать сразу нескольких кандидатов (ввиду объёма информации). В итоге данный анализ превращается в сравнение полей, доступных в профиле кандидата, что ненадёжно в смысле корректной оценки.
Очевидно, проблема невозможности HR менеджера пробежаться по всем данным пользователя могла бы быть успешно решена при автоматизации данного процесса, но, к сожалению, сейчас не существует подобных подходов. Также, очевидно, что проблема автоматизации - это непростая задача, так как программисты могут проявлять одинаковую активность, иметь одно и тоже количество репозиториев, но писать существенно разный по ценности код.
Построение метрики, которая поможет в автоматизации оценки разработчиков, могло бы существенно упростить работу HR менеджеров, а также помочь выработать глубокое понимание того, как должна проводиться ручная оценка.
В данной работе была продемонстрирована удобная с практической точки зрения метрика (3.1), которая позволяет оценивать программистов на сайте GitHub. Данная метрика делает акцент на реальных вкладах программистов, поэтому является корректной и осмысленной в нашей предметной области. Также в работе был проведён анализ немецких разработчиков (4), в том числе с использованием построенной метрики. В конце был приведён на практике реализуемый ручной алгоритм, который позволяет предсказать результат по метрики с довольно хорошей точностью (6.2), используя характеристики доступные на странице профиля.
Данная работа может служить руководством для внедрения подобной оценки в реальные системы поиска разработчиков, что сильно поможет в работе HR специалистам. Подходы продемонстрированные в этом тексте могут способствовать в доказательстве оправданности иных построенных метрик для сайта GitHub, а также в выработки ручных алгоритмов на основе построенных метрик.