На школе для PhD студентов по Software Engineering в Копенгагене выступают не только преподаватели университета Ольборга, но и представители коммерческих компаний. Один из приглашенных докладчиков - Костас Кастриногианнис (Kostas Kastrinogiannis), ведущий разработчик Microsoft, Дания. Костас - лидер команды из двух тысяч разработчиков. В своем выступлении он вообще не говорил о программировании. По его утверждению, это самое простое, чем придется заниматься на работе, и выпускники университета, как правило, умеют это делать. Сложности связаны с другими областями деятельности.

Костас выделил три уровня программистов, причем отличаются они сосвсем не техническими навыками.

Первый уровень - “Delivery machine”. В университете студенты пишут код для решения учебных задачек. Иногда у них получается, иногда нет. Можно целую неделю не делать ничего и ночью перед дедлайном успеть все запрограммировать. В коммерческой компании в первую очередь необходимо изменить подход к режиму программирования. Разработчик должен научиться выдавать какой-то полезный код каждый день, что бы ни случилось. Код должен правильно выполнять поставленную задачу, проходить все тесты, и т.п. Костас использует для обозначения этого навыка термин “Delivery machine”. По его наблюдениям, начинающему программисту нужно 2 года, чтобы выйти на такой уровень.

Второй уровень - “In the driver’s seat”. После того, как разработчик научился стабильно писать полезный код, он начинает задумываться о том, как сделать лучше не только свой кусок кода, но и систему в целом. На этом уровне разработчик переходит в позицию лидера и берет на себя повышенную ответственность, например, за функции, которые реализуются совместно различными модулями системы. Костас поручает такому разработчику общаться с другими командами разработчиков, с партнерами и заказчиками. На этот уровень люди, по опыту Костаса, выходят за 5 лет.

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

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