Мобильная        
   PDA-версия  


интеллектуальная группа

KIBORG . net



@   О КОМПАНИИ

@   УСЛУГИ

@   КОНТАКТЫ

      AXAPTA / 1С

      MRP / CRM

      УПРАВЛЕНИЕ

-   ОБУЧЕНИЕ

V   СТАТЬИ

-   ПУБЛИКАЦИИ

#   ЛУЧШИЕ

-   ИССЛЕДОВАНИЯ

-   ТЕРМИНОЛОГИЯ




С т а т ь и



o   ПО ДАТАМ
o   ПО ЖУРНАЛАМ

o   ERP
==== >>   УПРАВЛЕНИЕ
o   СИСТЕМЫ





() Управление предприятием

(+) ДЕПАРТАМЕНТ ИТ

() Бизнес-конструирование

() Инновации






Как сравнивать программистов?

 
 

ERP   /\/   Управление   /\/   Системы     (Лучшие)


Управление - ДИТ - Инжиниринг - Инноватика



Как измерить качество программиста ?


Опытный поэт

 

Опытный художник

Опытный композитор

СМИ "ИТ Менеджер" 7-8 2016

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

Не правда ли, заголовок режет слух? А вот контрпример: «опытный финансист» — словосочетание логичное... Что же не так с художником или композитором? Предположим, среднестатистический опытный художник рисует лучше, чем среднестатистический неопытный. Однако искусство — это не только опыт, но и что-то еще. Если бы поэты и композиторы делились бы на «опытных» и «неопытных», то феноменов, подобных Моцарту и Лермонтову, не существовало бы. Надежда Рушева прославилась как художник в 12 лет, Кристофер Паолини написал известный «Эрагон» в 15.

А что «финансист»? Все профессии следует поделить на две категории: то, что могут все, и то, что доступно избранным. Звучит грубовато, ведь под словом «все» подразумеваются только полноценные граждане с образованием не ниже средней школы. Такое разделение нам требуется, чтобы обозначить следующий тезис: при подборе персонала в профессиях, доступных всем, «опытность» кандидата является ключевой характеристикой, а в профессиях, доступных избранным, «опытность» не является ключом, и всё определяют другие признаки. Какие? Вот первый интересный вопрос.

Про годы в профессии

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

А теперь перейдем к искусству и увидим, что детализация уплывает из-под ног. Ясной классификации жанров не существует, границы расплывчаты. «Вишневый сад» Станиславский называл трагедией, в то время как большинство критиков и сам автор считали произведение комедией. Разумеется, классическую музыку не перепутаешь с техно, однако есть невероятно большое количество известных музыкальных произведений, чей жанр вызывает споры специалистов. Примеров тому великое множество, приведу один, на мой взгляд, весьма любопытный, — это песня Shakin’ All Over группы Johnny Kidd and the Pirates, которая не вписывается ни в один известный стиль и больше всего подходит к направлениям, появившимся спустя 20 лет после создания хита. Похоже, такая неопределенность является индикатором профессий, доступных избранным...

А какие еще профессии стоит отнести к особым? Можно и дальше развивать тему искусства, но данная статья была затеяна как разговор про технологии. Физика, химия, инженерия, математика и программирование (как раздел математики) — все это профессии, доступные избранным.

Ну то есть как избранным? Пока экономика развивается, существует прослойка линейных физиков, ежедневно решающих физико-инженерные задачи (по разработанным ранее методикам). Существует море программистов, способствующих экстенсивному росту экономики, и большое количество математиков, считающих статистику рисков для банков и другие подобные задачи. Но вне зависимости от состояния экономики Гришаев делает открытия в теоретической физике, Бреслав — в кристаллографии, Дуров пишет «ВКонтакте» (а теперь уже и Telegram). А, вы не слышали про Гришаева и Бреслава? Ну так примеры выбраны специально, чтобы не противопоставлять «опытность» и «известность» и не приравнивать «известность» к «выдающейся особости», и уж тем более не уподоблять «особость» и «предпринимательский талант» — это отдельные темы. А «особость» заключается в том, что даже неопытный специалист может с точки зрения полезного результата быть на порядки эффективнее опытного. И именно такие особые специалисты нам нужны всегда, а остальные лишь иногда?

Про программистов

Из всей профессиональной технической братии нужно выделить программистов, поскольку они же принадлежат к самой массовой профессии. Вы спросите, причем туту программисты, это ведь такая же армия, как и бухгалтеры? Поспорю! Федерик Брукс в своей знаменитой книге «Мифический человеко-месяц» рассказывает, что внутри одной небольшой команды качество программистов может различаться в 100 раз (приводятся примеры исследований). Но ведь это значит, что соответственно, внутри одной юрисдикции (страны) — в 1000 раз. А ведь зарплаты отличаются не более чем на один порядок. Вам нужен программист с качеством 1 или с качеством 1000 (условно, поскольку необходимого коэффициента под рукой нет)? Именно «тысячников», которые всегда в цене и всем нужны, можно отнести к категории избранных, а «программирование» — к избранным профессиям.

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

Меня поражают вопросы, которые можно услышать на собеседовании: «А есть ли у вас опыт в пожарной промышленности?» Нет смысла задавать подобные вопросы? Задавайте правильные...

Однажды мне случилось подслушать странный разговор: «Хороший программист тоже делает ошибки, но он не делает те же самые ошибки дважды». Это напоминает изучение вопроса по верхам. Даже в известной шуточной статье 1983 года «Почему настоящие программисты не используют Паскаль» (источник: DATAMATION) Эда Поста вопрос излагается более вдумчиво: «настоящие программисты не нуждаются в комментариях в коде: текст программы все объясняет». Недавно Мэтт Бриггс предложил свой взвешенный подход в статье «Ненастоящие сеньор-девелоперы, или Почему годы опыта ни о чем не говорят». Автор пишет: «Недавно я столкнулся с товарищем, который делал софт почти 10 лет, но фактически остался все тем же начинающим разработчиком». Дальше следует рассказ про старших, средних и junior-разработчиков и описание особенностей каждой категории. Однако и в этих статьях НЕ затронуто важное свойство программистов.

Абсорбирование программного кода

Упомянутые в данных статьях критерии качества кодеров являются интересными показателями, но я хочу добавить еще один критерий. Текст программы — это большая математическая формула, которая в больших программах может представлять собой десятки тысяч страниц текста. Хороший программист — человек, способный держать в голове крупные тексты программ и заранее предполагать, как повлияют изменения в каком-либо месте на другие элементы программы. Как было написано в статье Колосс на глиняных ногах, активно используемая программа часто подвергается доработке и нередко (в результате ухода от первоначальной архитектуры) похожа на тришкин кафтан: исправишь в одном месте — поплывет в другом. Хороший программист может не только заранее предсказать, как повлияют изменения, но и предложить более точный вариант исправлений, не позволяющий программе не потерять гибкость при дальнейшем развитии. Назовем это свойство «владение кодом». Но есть и более классные специалисты, их мы будем упрощенно именовать блестящими программистами. Мне нередко приходилось встречать программистов (а также специалистов в других высокотехнологичных областях), которые, работая 10 лет на одном месте, досконально изучали свой предмет и знали про свою программу все (владели кодом). Но попытка переставить их на другое место заканчивалась провалом. То есть за следующие 10 лет они, конечно, освоились бы на новом месте не хуже, чем на прежнем... Но нам это не подходит, задачи нужно решать быстро! Таким образом, блестящий программист — не тот, кто хорошо знает свою программу, а тот, кто очень быстро умеет впитывать в себя новые огромные программы. Тот, кто умеет быстро овладевать новым кодом. Можно сделать смелое предположение, что блестящим программистом способен стать человек, который много читает. Хорошим, а вероятно, и блестящим программистом может стать высококлассный юрист (если это ему вдруг понадобится). Программирование здесь мы рассматриваем как раздел математики, так причем тут юристы? Опять же Турчин в «Феномене науки» доказывает, что математика — это логическое оперирование текстами, так что все сходится...

Про пожарную промышленность

Когда выше упоминался «хороший программист», то речь шла о программисте, хорошо знающем конкретную программу. Когда мы говорили про «блестящего», то, надеюсь, понятно, имелось в виду общее качество специалиста, не привязанное к конкретному коду. Именно такие специалисты нам и нужны. А вы говорите «пожарная промышленность»... Да блестящий программист ГОСТы по пожарке выучит наизусть за месяц…

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

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

Итак, представим, что блестящий программист попадает на новое рабочее место. Все, что описано, он быстро изучает сам. Неописанные практики добывает устно. Интеллектуальный и перцептивный навыки использования этих практик, при наличии знаний самих практик, приобретаются менее чем за три месяца. Это гораздо меньше общепринятого времени получения полезного результата от нового программиста. А какое у нас общепринятое время? Дарья Деняпкина, генеральный директор Strategic Line, в своей статье «Как найти "правильного" маркетолога» пишет: «На получение первых результатов работы специалиста по маркетингу требуется от четырех до восьми месяцев». В этом смысле маркетолог – профессия интересная. Ибо чтобы качественно обманывать людей, нужен творческий подход — два раза клиент на одни и те же грабли не наступит. Однако маркетолог оперирует в основном бытовыми понятиями, и эта профессия намного более доступна средневзвешенному выпускнику школы. А программист оперирует большим количеством математических абстракций и должен обладать высоким уровнем произвольного ассоциирования (в терминологии Турчина). По результату исследования рекрутингового портала Superjob, проведенного в декабре 2013 —январе 2014 года, программисты дольше всех осваиваются на новом рабочем месте, и их адаптационный период составляет 102 дня. Но это адаптация, а когда будет полезный результат? Вартан Минасян, глава продуктового направления компании Acronis, считает («Ведомости», № 3533 от 20.02.2014, «Адаптер для айтишника»): «Прежде чем новый сотрудник полностью мог проявить себя и опробовать свои знания на новом месте, проходил год-два». Получаем: при подборе программистов сроки результативности таковы, что никакой интеллектуальный и перцептивный навык, а также локальные практики нам не важны. Все это новый кандидат приобретет быстрее, чем овладеет программным кодом, который ему предстоит поддерживать.

Ну вот и все

Общепринятые критерии при подборе программистов никак не подходят, и «опытность» важна, но не гарантирует качества. Тем более качество не гарантируют различные сертификаты. А на что же тогда смотреть? Частично этот вопрос раскрыт в статье За все хорошее против всего плохого. Перечисленные в ней (и в других приведенных выше публикациях) признаки являются косвенными, то есть повышающими вероятность успеха. Но нам нужны еще более мощные признаки, и тут потребуются дальнейшие исследования. Например, хотелось бы научиться измерять «умение абсорбировать код»...

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

 

 

 

2016 г. Мартынов Дмитрий

 

КОПИРАЙТ

Статья разрешена к копированию любыми средствами без изменения содержания с обязательным указанием автора, источника и гиперссылки на оригинал:

гиперссылка html:
гиперcсылка для форума/блога:

 

Консалтинг по управлению ИТ проектами.
-  Аудит, анализ и тренинги


Экспертиза ....
Интеграция ERP, MRP, CRM, SCM систем
-  Настройка, обучение, доработка.



Внедрение ....
Бизнеспроцессы: описание в стандартах IDEF, ARIS, EPC, On-Target



Бизнес-анализ ....
Оптимизация бизнеса. Внедрение, электронного документооборота
-  Управление ответственностью и рисками.



Мотивация ....
Разработка регламентов управления с использованием ИТ.
-  Повышение стабильности и эффективности работы отделов.


Реорганизация ....
Гарантии качества подтверждены опытом наших экспертов.
-  Все наши специалисты сертифицированы.



Сотрудничество ....


 
  О компании    Услуги    Контакты    Axapta        Обучение    Управление   

Как сравнивать программистов?     © 2005, ООО "Интеллектуальная группа Киборг"   PDA-версия