Научная статья на тему 'Метод оценки квалификации и оптимизация состава профессиональных групп программистов'

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

CC BY
498
52
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММИСТ / ТЕХНОЛОГИЯ / ИНСТРУМЕНТАРИЙ / КВАЛИФИКАЦИЯ / ГРУППА ПРОГРАММИСТОВ / СОСТАВ ГРУППЫ / ОПТИМИЗАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Прихожий А.А., Ждановский А.М.

Рассматривается проблема формирования и оптимизации команд программистов с учетом квалификации и уровня владения технологиями и инструментами программирования. Известные технологические среды для организации работы команд, такие как Agile, формулируют лишь общие требования и принципы формирования коллективов и распределения работ между ними. Предлагается метод формализации оценки квалификации отдельных программистов и целых программистских групп. Исходными являются данные о наиболее востребованных технологиях и инструментах программирования, их рейтинге, а также результаты опроса программистов об уровне владения ими. Квалификация группы программистов оценивается с учетом требований к конкретному проекту как величина, интегрирующая три составляющие: среднюю квалификацию программистов, включаемых в группу; квалификацию группы по лучшим представителям по каждой из технологий; пороговые значения уровней квалификации программистов и групп программистов по каждой из технологий, а также пороговые значения интегрированной квалификации, отражающие специфику конкретного проекта. Вклад каждой составляющей определяется варьируемыми. весовыми коэффициентами. Метод положен в основу генетического алгоритма, выполняющего поиск количества, размера и состава программистских групп, которые имеют максимальную суммарную квалификацию. Разработано программное обеспечение и проведены вычислительные эксперименты на выборке программистов, окончивших белорусские университеты. Полученные результаты демонстрируют реальную способность системы находить количество, состав и размеры групп программистов, увеличивающие суммарную квалификации групп до 30% при минимизации числа незадействованных разработчиков. Результаты доказывают практическую значимость разработки в сфере технологий и средств управления профессиональными коллективами программистов.

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

The problem of building and optimizing the teams of programmers taking into account the qualification and the level of skills in programming technologies and tools is considered. Known technological environments for the management of teamwork, such as Agile, formulate only general requirements and principles for building the teams and the distribution of work between them. A method for formalizing and evaluating the qualification of individual programmers and entire groups of programmers has been proposed. The input data are attributes of the most popular technologies and programming tools, including technology rating, as well as the results of a survey of programmers on their level of skills. The qualification of a group of programmers is evaluated taking into account the requirements for a particular project, which integrates three components: the average qualification of programmers included in the group; the qualification of the group with respect to the best repre-sentatives for each of the technologies; threshold values of the levels of programmer qualification and group qualification for each of the technologies, as well as threshold values of the integrated qualification, reflecting the specifics of the given project. The contribution of each component is determined by appropriate weights. The proposed method is a basis for a genetic algo-rithm that performs the search for the number, size and staff of groups of programmers which yield a maximum of total qualification. Software has been developed and computer experiments have been carried out on a set of programmers who graduatd from Belarusian universities. The obtained results demonstrate the real ability of the system to find the number, size and staff of groups of programmers, which increase the overall qualification of groups by 30% while minimizing the number of unemployed developers. The results prove the practical importance of the method and software in the field of technologies and tools for the management of professional teams of programmers.

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

УДК 004.4-004.9

А.А. ПРИХОЖИЙ, А.М. ЖДАНОВСКИЙ

МЕТОД ОЦЕНКИ КВАЛИФИКАЦИИ И ОПТИМИЗАЦИЯ СОСТАВА ПРОФЕССИОНАЛЬНЫХ ГРУПП ПРОГРАММИСТОВ

Белорусский национальный технический университет

Рассматривается проблема формирования и оптимизации команд программистов с учетом квалификации и уровня владения технологиями и инструментами программирования. Известные технологические среды для организации работы команд, такие как Agile, формулируют лишь общие требования и принципы формирования коллективов и распределения работ между ними. Предлагается метод формализации оценки квалификации отдельных программистов и целых программистских групп. Исходными являются данные о наиболее востребованных технологиях и инструментах программирования, их рейтинге, а также результаты опроса программистов об уровне владения ими. Квалификация группы программистов оценивается с учетом требований к конкретному проекту как величина, интегрирующая три составляющие: среднюю квалификацию программистов, включаемых в группу; квалификацию группы по лучшим представителям по каждой из технологий; пороговые значения уровней квалификации программистов и групп программистов по каждой из технологий, а также пороговые значения интегрированной квалификации, отражающие специфику конкретного проекта. Вклад каждой составляющей определяется варьируемыми. весовыми коэффициентами. Метод положен в основу генетического алгоритма, выполняющего поиск количества, размера и состава программистских групп, которые имеют максимальную суммарную квалификацию. Разработано программное обеспечение и проведены вычислительные эксперименты на выборке программистов, окончивших белорусские университеты. Полученные результаты демонстрируют реальную способность системы находить количество, состав и размеры групп программистов, увеличивающие суммарную квалификации групп до 30% при минимизации числа незадействованных разработчиков. Результаты доказывают практическую значимость разработки в сфере технологий и средств управления профессиональными коллективами программистов.

Ключевые слова: Программист, технология, инструментарий, квалификация, группа программистов, состав группы, оптимизация.

Введение

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

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

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

затрат на интерфейсы между программистами при увеличении числа программистов в группе. На решение подобного рода проблем ориентированы эволюционные методы оптимизации [3, 4]. В работе [5] предложен генетический алгоритм решения проблемы, однако он не учитывает уровень владения программистами технологиями и инструментами программирования, необходимыми для работы над проектом.

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

Рейтинг технологий и инструментов программирования

Анализ результатов исследований компании RedMonk [6] о популярности языков и инструментальных средств программирования и результатов исследований организации IEEE Spectrum [7] о рейтинге языков позволил разработать таблицу, описывающую множество T из 16 основных технологий и инструментов. Для каждой технологии указан рейтинг, показывающий значимость и широту применения технологии, а также требование обязательного владения ею хотя бы одним членом группы программистов. По назначению все множество технологий делится на 6 подмножеств. Системы контроля версий и управления проектами включают Git, Tortoise SVN, VJR и TFS с рей-

Ключевые технологии и инструменты нрограммирования

№ Название Код Рейтинг Обязать

l Git VGT O3 нет

2 Tortoise SVN VTS O3 нет

З TFS VTF O3 нет

4 Jira VJR O3 нет

5 Visual Studio DVS O^ да

б Eclipse DEC O^ да

l Oracle SQL OBM O.5 нет

S Microsoft SQL Server DBM O^ нет

9 Java LJ l.O да

lO C# LC# O.9 да

ll Visual Basic LVB O.l нет

l2 C++ LCP O.9 да

1З Java script LJS O.S да

l4 XSL LXS O^ нет

l5 Windows OSW O^ да

Linux OSL O.5 да

тингом O3 каждая. К средам разработки относятся Visual Studio и Eclipse, рейтинг обоих OA Системы управления базами данных представлены Oracle SQL (рейтинг O.5) и Microsoft SQL Server (рейтинг O^). Языки программирования представлены Java, C#, Visual Basic, C++, Java Script и XSL с рейтингом l.O, O.9, O.l, O.9, O.S и O^ соответственно. Операционные системы представлены Windows и Linux с рейтингом O^ и O.5 соответственно. Следует подчеркнуть, что высокий рейтинг технологии показывает необоснованность создания коллективов программистов, в которых нет ни одного эксперта по данной технологии.

Уровень владения программистом технологией / инструментом

Для решения второй задачи оценки уровня владения программистами технологиями и инструментами использован метод опроса. Каждому из опрашиваемых программистов предложено заполнить анкету, в которой он указывает уровень level владения каждой из технологий. Уровень level определяется по пятибалльной шкале: O - отсутствие знания технологии; O.25 - минимальное знание; O.5 - промежуточные навыки; O.75 - расширенный опыт владения технологией; l - знания и опыт эксперта. Экспертом считается программист, который владеет теоретическими экспертными знаниями, разработал не менее двух крупных проектов и проработал не менее двух лет с данной технологией. Программист обладает расширенными навыками, если выполняются два критерия из трех, и обладает промежуточными навыками, если выполняется один из критериев.

Результаты опроса 24 программистов (множество P) с высшим образованием, окончивших белорусские университеты и работающие в программистских фирмах, представлены на рис. l, где строки соответствуют программистам, столбцы - технологиям из таблицы. На пересечении строкиp и столбца t стоит прямоугольник, высота которого указывает на один из пяти уровней O, O.25, O.5, O.75 и l владения программистом p технологией t. Отсутствие прямоугольника означает нулевой уровень. Строки с большей суммарной площадью прямоугольников показывают более квалифицированных программистов. Столбцы с боль-

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

Квалификация программиста

Квалификация программиста p е P с учетом уровня знания/владения технологиями из множества T оценивается по отношению к максимальному уровню знания/владения выражением

Qualif (p) = ^ rank(t) • factor(p, t) /MaxQualif

teT /

(1)

где

factor(p, t) = \level(p,t), ССЛИ level(p,t) " [0, в противном случае

(2)

и

MaxQualif = ^ rank(t)

teT

(3)

Значение гапЩ) из диапазона [0, 1] берется из таблицы. Значение ¡еуе1(р, 0 из диапазона [0, 1] определяется результатами опроса, представленными на рис. 1. Пороговое значение КР!р1 уровня ¡еуе1(р, 0 позволяет снизить шансы допуска к работе над проектом программистов, обладающих недостаточно высоким уровнем квалификации. Значение выбирается из диапазона [0, 1]. Если @ 0, то к проекту могут подключаться начинающие программисты или программисты, владеющие частью технологий. Если @ 1, то проект ориентирован на разработку экспертами. Как следствие, значение Qua¡ifp) находится в диапазоне [0, 1]. Согласно формуле (1), программисты, владеющие предпочтительно технологиями с высоким рейтингом, обладают более высокой квалификацией по сравнению с программистами, владеющими предпочтительно технологиями с низким рейтингом.

Рис. 2 показывает квалификацию Qua¡if(p) каждого из 24 программистов в отношении значимости/владения всеми 16 технологиями с учетом их рейтинга. Значение квалификации находится в диапазоне [0, 1] и является относительным к максимальному значению Мах-Qua¡if = 9,5. Лидером в квалификации является программист с номером 18, за ним идут программисты с номерами 12 и 16.

Квалификация группы программистов

Пусть все множество Р программистов разбито на k групп с образованием множества G = {#1, ..., gk}. Программисты группы g образуют множество Pg. Средняя квалификация группы включающая программистов, определяется как среднее значение квалификаций Qua¡if(p) по всем программистам р е Р^

Рис. 1. Уровень 24 программистов владения 16 технологиями

Рис. 2. Квалификация каждого из 24 программистов, усредненная по 16 технологиям

Qualif avg (g) = £ Qualif (p) /ng (4)

pePg /

Помимо средней квалификации Qualif avg(g), важнейшим параметром, характеризующим группу g, является квалификация Qualif best(g) по лучшим представителям, которая определяется формулами (5) и (6).

Qualifbest (g) =

0, если 3t, ob lg t(t) и mxlevel(g,t) < RLg £ rank (t) • mxlevel (g, t)

teT

(5)

MaxQualif

иначе

mxlevel (g, t) = max (level (p, t))

PePg

(6)

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

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

Qualif (g )=

Qualif w(g), если Qualif w(g)>RQg 0, в противном случае.

Формула (5) использует следующие величины: oblgt(t) - предикат, принимающий значение истина, если технология является обязательной для группы (таблица); mxlevel(g, 0 -уровень лучшего представителя группы g по технологии ^ RLgt - пороговое значение уровня лучшего представителя по технологии t.

Согласно формуле (5), квалификация по лучшим представителям Qualif получает нулевое значение, если существует хотя бы одна обязательная для группы технология t, для которой оЬ^^) истинно, а уровень тх^еК^, 0 лучшего представителя группы g меньше порогового значения RLg. Это объясняется тем, что группа не способна выполнять проекты без высококвалифицированных специалистов по ключевым технологиям.

Взвешенная квалификация Qualif w(g) группы g оценивается в виде суммы квалификации Qualif Ьest(g) по лучшим представителям с весом 1 и средней квалификации Qualif asg(g) с весом 1 - 1:

Qualifw( g )=1^иаП^ (g )+(1 - Х^иаП^ (g).

(7)

Взвешенная квалификация при 0 < 1 <1 может принимать любое значение в диапазоне [0, 1]. Чем больше значение 1, тем больший вес придается квалификации по лучшим представителям, и наоборот, чем меньше значение 1, те больший вес придается средней квалификации программистов группы. Средняя квалификация отражает состояние дел на текущий момент. Квалификации по лучшим представителям показывает возможности роста членов ко-

(8)

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

Группа g называется избыточной по квалификации, если в ней найдется программистр е g такой, что Qualif(g\{p}) > Qualif(g). Другими словами, квалификация группы g после вывода из нее программиста р оказывается не ниже квалификации до вывода программиста. Такое может произойти при выполнении двух условий:

1. Программист р не является единственным лучшим представителем группы g ни по одной технологии t е Т.

2. Квалификация Qualif(p) программиста р

ниже средней квалификации Qualif ayg(g) группы g.

Если множество программистов разбито на множество О групп, то общая квалификация всех групп оценивается в виде суммы пороговой взвешенной квалификации по всем группам:

Qualification(G) = £ Qualif (g) (9)

gеG

Общая квалификация групп Qualification(О) принимает значение в диапазоне от k■RQg до k, где k - число групп.

Задача оптимизации размера и состава программистских групп

Определим оптимизируемый параметр, критерий оптимизации и допустимое множество

задачи оптимизации. Оптимизируемым параметром является суммарная квалификация всех групп Qualification(G). Целевую функцию запишем в виде:

max Qualification(G) (10)

GeW

где W - множество всех возможных разбиений G программистов из множества P на группы.

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

Требование 1. Оно относится к минимально-пороговому уровню RLpt владения технологией t каждым программистом p из множества P. Требование к минимальному уровню по всем технологиям представим вектором RLp = {RLp1, ..., RLpm}. Реальный уровень Lp определяется выражением:

Lp = rank (t) • level (p, t) (11)

Требование 2. Оно относится к минимально-пороговому уровню RLg владения технологией t лучшим представителем группы программистов g е G. Для всех технологий минимально-пороговый уровень представляется вектором RLg = {RLg1, ..., RLgm}. Реальный уровень Lg владения лучшим представителем группы g технологией t определяется выражением:

Lg = rank (t) • max (level (p, t))

pePg

Требование 3. Оно относится к минимально-пороговой взвешенной квалификации RQg каждой группы программистов g e G. Требуемая минимальная квалификация одинакова для всех групп. Реальная взвешенная квалификация Qualif w(g) группы оценивается формулой (7).

Решение задачи оптимизации генетическим алгоритмом

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

Генетический алгоритм (GA) реализует случайный процесс эволюции популяции хромосом с целью нахождения наилучшего по совокупной квалификации разбиения программистов на группы. Хромосома строится из генов, соответствующих программистам. Значение гена есть номер группы, в которую включается программист. Фитнес функцией является общая квалификация Qualification(G). Генетиче-

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

Результаты вычислительных экспериментов

Для проведения вычислительных экспериментов использовано разработанная программа, реализующая генетический алгоритм. Установлены следующие требования: ограничение снизу на квалификацию КЦр = {0.1, 0, 0.1, 0, 0.3, 0.25, 0, 0.15, 0.6, 0, 0, 0.25, 0, 0.2, 0.4, 0.2} программиста по каждой из 16 технологий, перечисленных в таблице; ограничение снизу на квалификацию Ш = {0.2, 0, 0.2, 0, 0.4, 0.3, 0, 0.3, 0.75, 0.4, 0, 0.5, 0, 0.3, 0.5, 0.25} группы программистов по каждой из 16 технологий; ограничение снизу на пороговую взвешенную квалификацию = 0.5 группы программистов по всем технологиям; вес 1 = 0.7 квалификации группы по лучшим представителям во взвешенной квалификации группы.

Результаты экспериментов представлены на рис. 3-7. Рис. 3-5 показывают динамику работы генетического алгоритма в процессе эволюции популяции хромосом. Суммарная по всем группам пороговая взвешенная квалификации выросла (рис. 3) с 3.5 до 5.04 на протяжении 25 поколений. Рост составил около 30%. За это время число групп, удовлетворяющих всем выдвинутым требованиям по квалификации, увеличилось с 5 до 8 (рис. 4, сплошная линия), а число включенных в них программистов возросло с 15 до 23 (рис. 5, сплошная линия). Число групп, не удовлетворяющих требованиям, колебалось от 1 до 2 (рис. 4, пунктирная линия), а число попавших в них программистов колебалось от 9 до 1 (рис. 5, пунктирная линия). В итоге, эволюционный процесс сопровождался устойчивым ростом суммарной

I Qualification in generation

I

^m^ff TT

10 IS

Number of generation

Рис. 3. Зависимость суммарной по всем группам поро говой взвешенной квалификации Qualification(О) от но мера поколения в GA

Рис. 4. Число групп, удовлетворяющих требованиям (сплошная) и неудовлетворяющих требованиям (пунктирная), в зависимости от номера поколения в GA

Рис. 5. Число программистов в группах, удовлетворяющих требованиям (сплошная), и в резерве (пунктирная) в зависимости от номера поколения в GA

пороговой взвешенной квалификации групп, представленных лучшими хромосомами, доля которых от размера популяции показана на рис. 6.

Лучшее распределение программистов по группам представлено на рис. 7. Всего сформировано 8 групп с суммарным уровнем квалификации 5.04 и средним уровнем 0.63, из которых 4 группы включают по 4 программиста, одна - 3 программиста, одна - 2 программиста, и две группы включают по 1 программисту. Неиспользованным (в резерве) оказался только один программист.

Заключение

Предложен метод оценки квалификации групп разработчиков по уровню знания и владения технологиями и инструментами программирования. Разработан генетический ал-

Рис. 6. Доля в % числа хромосом с лучшим значением функции полезности в популяции в зависимости от номера поколения в GA

Рис. 7. Распределение программистов по группам в оптимальном решении (группа 1 - резерв)

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

Литература

1. Joshi, S. Agile Development - Working with Agile in a Distributed Team Environment / S. Joshi // MSDN Magazine, 2012, Vol.27, No.1, pp.1-6.

2. Прихожий, А. А. Конспект лекций по дисциплине «Моделирование и оптимальное проектирование технических систем» / А.А. Прихожий // БНТУ, кафедра ПОВТиАС, 2013, с. 58-69.

3. Barricelli, N. A. Symbio genetic evolution processes realized by artificial methods / N. A. Barricelli // Methodos, 1957, pp. 143-182.

4. Müller, J. P., Rao, A. S., Singh, M. P. A-Teams: An Agent Architecture for Optimization and Decision-Support, Proceedings 5th International Workshop, ATAL'98 Paris, France, July 4-7, 1998, pp. 261-276.

5. Прихожий, А. А. Эволюционный метод оптимизации состава групп разработчиков с целью сокращения затрат и времени на выполнение проекта / А.А. Прихожий, А.М. Ждановский // Материалы научно-технической конференции «Информационные технологии в технических и социально-экономических системах», Минск, РИВШ, 2016. - С. 16-20.

6. Red Monk [Электронный ресурс] / сайт аналитической компании Red Monk. - Режим доступа: http://redmonk. com/sogrady/2016/07/20/language-rankings-6-16/. - Дата доступа: 26.02.2017.

7. Cass, S. The 2016 Top Programming Languages [Электронный ресурс] / IEEE Spectrum, 2016. - Режим доступа: http://spectrum.ieee.org/ computing/software/the-2016-top-programming-languages. - Дата доступа: 26.02.2017.

References

1. Joshi, S. Agile Development - Working with Agile in a Distributed Team Environment / S. Joshi // MSDN Magazine, 2012, Vol.27, No.1, pp.1-6.

2. Prihozhy, A. Lecture notes on "Modeling and Optimization for Engineering Systems Design" / A. Prihozhy // BNTU, Software for Computers and Automated Systems Dpt., 2013, pp. 58-69.

3. Barricelli, N. A. Symbio genetic evolution processes realized by artificial methods / N.A. Barricelli // Methodos, 1957, pp. 143-182.

4. Müller, J. P., Rao, A. S., Singh, M. P. A-Teams: An Agent Architecture for Optimization and Decision-Support, Proceedings 5th International Workshop, ATAL'98 Paris, France, July 4-7, 1998, pp. 261-276.

5. Prihozhy, A. Evolutionary Method of Software Teams Optimization for Reducing Time and Resources of Project Execution / A. Prihozhy, A. Zhdanouski // Proc. Conf. "Information Technologies in Engineering and Business", Minsk, RIHS, 2016, pp.16-20.

6. Red Monk [Электронный ресурс] / сайт аналитической компании Red Monk. - Режим доступа: http://redmonk. com/sogrady/2016/07/20/language-rankings-6-16/. - Дата доступа: 26.02.2017.

7. Cass, S. The 2016 Top Programming Languages [Электронный ресурс] / IEEE Spectrum, 2016. - Режим доступа: http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages. - Дата доступа: 26.02.2017.

Поступила После доработки Принята к печати

20.03.2018 12.04.2018 01.06.2018

Prihozhy A., Zhdanouski A.

METHOD OF QUALIFICATION ESTIMATION AND OPTIMIZATION OF PROFESSIONAL TEAMS OF PROGRAMMERS

prihozhy@yahoo.com

The problem of building and optimizing the teams of programmers taking into account the qualification and the level of skills in programming technologies and tools is considered. Known technological environments for the management of teamwork, such as Agile, formulate only general requirements and principles for building the teams and the distribution of work between them. A method for formalizing and evaluating the qualification of individual programmers and entire groups of pro-grammers has been proposed. The input data are attributes of the most popular technologies and programming tools, includ-ing technology rating, as well as the results of a survey ofprogrammers on their level of skills. The qualification of a group of programmers is evaluated taking into account the requirements for a particular project, which integrates three components: the average qualification ofprogrammers included in the group; the qualification of the group with respect to the best representatives for each of the technologies; threshold values of the levels ofprogrammer qualification and group qualification for each of the technologies, as well as threshold values of the integrated qualification, reflecting the specifics of the given project. The contribution of each component is determined by appropriate weights. The proposed method is a basis for a genetic algo-rithm that performs the search for the number, size and staff of groups ofprogrammers which yield a maximum of total quali-fication. Software has been developed and computer experiments have been carried out on a set of programmers who graduat-ed from Belarusian universities. The obtained results demonstrate the real ability of the system to find the number, size and staff of groups of programmers, which increase the overall qualification of groups by 30% while minimizing the number of unemployed developers. The results prove the practical importance of the method and software in the field of technologies and tools for the management ofprofessional teams ofprogrammers.

Keywords: Programmer, technology, tool, qualification, skills, programmer team, team staff, optimization.

Прихожий Анатолий Алексеевич - профессор кафедры программного обеспечения вычислительной техники и автоматизированных систем БНТУ, доктор технических наук (1999), профессор (2001). Научные интересы в области языков программирования и описания цифровой аппратауры, распараллелтвающих компиляторов, инструментальных средств проектирования программных и аппаратных систем на логическом, поведенческом и системном уровнях. Имеет более 300 научных публикаций в Восточной и Западной Европе, США и Канаде.

Anatoly Prihozhy is a full professor at the Computer and system software department of Belarusian national technical university, doctor of science (1999) and professor (2001). His research interests include programming and hardware description languages, parallelizing compilers, and computer aided design tools for software and hardware at logic, high and system levels. He has over 300 publications in Eastern and Western Europe, USA and Canada.

Ждановский Арсений Матвеевич - аспирант кафедры «Программное обеспечение вычислительной техники и автоматизированных систем» БНТУ, инженер программист компании «EPAM Systems», научные интересы в области языков и технологий программирования и методов оптимизации.

Zhdanouski Arseni is a postgraduate of the Computer and system software department of Belarusian national technical university, and a software engineer at EPAM Systems. His research interests include programming languages and techlogies and methods of optimization.

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