Как сформировать идеальную команду программистов

Loading
loading..

Как сформировать идеальную команду программистов

05 июня, 2015 в 11:19
Олег Вергуленко

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

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

 

Агент 007

Агент 007 очень быстро вникнет в суть любой вашей проблемы и также быстро решит её. Однако, он не очень заботится о качестве кода, это вовсе ни к чему. Исправление отступов в чужом коде - это не о нём. При необходимости, «воспользуется скотчем».

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

Если программист 007 решит уволиться, исправлять проблемы во всём продукте будет достаточно сложно. Он всегда выдает результаты намного быстрее, чем от него ожидают. И заказчики и менеджеры от него без ума.

Плохо срабатывается с Перфекционистом.

 

Господин 90 %

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

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

Он прекрасно соблюдает все дедлайны, но совершенно не уживается с тестерами. Отличной командой он станет в паре с Агентом 007.

 

Любитель переписывать код

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

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

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

 

Перфекционист

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

Перфекциониста в самом деле раздражает чужой код. Ни у кого никогда не возникает желания дать свой код на проверку Перфекционисту.

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

 

Кодер-копипастер

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

Решать любые проблемы любит в рабочих средах потому, что его собственная локальная копия для разработки практически всегда в нерабочем состоянии. Половину рабочего дня Кодер-копипастер проводит на сайте Stack Overflow.

 

Экспериментатор

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

Никто не имеет ни малейшего представления о его коде, так как Экспериментатор ничего не создаёт - он безостановочно экспериментирует с новинками.

И… он отлично сработается с любителем переписывать код.

 

Спагетти-кодер

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

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

В команде с Перфекционистом ему не место, а для Любителя переписывать код он создаст море работы.

 

Псевдокодер

А это обычный менеджер, который решил, что написание некого подобия кода, поможет внятней объяснить что-то сотрудникам.

if
    price of beer is less than 10
then
    do order drink
else
    exit foobar

На самом деле это выглядит довольно смешно: «Ой, какой няшный! Принеси мамочке вон тот красный мячик! Умница, хороший программист!»

Ну, по крайней мере, повеселил...

 

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

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

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

Наша команда растёт и развивается изо дня в день.

Чего и вам желаем!