НовостиСобытияКонференцииФорумыIT@Work
Идеи и практики автоматизации:

Блог

Про семинары Бунича и программиста неясновидящего

Сергей Бобровский
14.10.2011 10:20:04

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

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

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

А помните семинары Бунича? Гугль выдает только одну ссылку smile:)
Единственное место, где в советское время московские программисты могли пообщаться, а работодатели активно приглашали к себе (я в 88-м так работу сменил). Кстати, крепкого здоровья Леониду! вот его ЖЖ.

Обобщу взгляд командиров программного производства на идеального программиста. Пойдем от обратного -- программиста неидеального, или, точнее, программиста, неясновидящего проект. У такого программиста может быть достаточно объемный опыт участия в относительно успешных проектах, неплохие навыки реализации техзадания по схеме "водопада". Собственно, любой более-менее сообразительный выпускник профильной вузовской специальности, знающий С++, за разумное время без проблем напишет кусок кода объемом 3-5, ну до 10 тысяч строк кода.

Самое интересное начинается далее. По мере роста объема проекта, его усложнения, изменения требований на лету, и начинает проявляться проектное неясновидение. Оно характеризуется двумя особенностями:
- поток мелких, но достаточно принципиальных багов нескончаемо растет, и время на их исправление и отладку превышает все разумные пределы;
- система работает медленно, заторможенно и неэффективно.
Неясновидящего программиста кстати можно выявить очень быстро и просто: сколь сложным бы не были требования к проекту, он рвется поскорее сесть за компьютер и начать программировать -- вместо того, чтобы потратить достаточно много времени (дни, недели...) на проектирование.

Соответственно, идеальный программист -- программист, ясно видящий проект во всех деталях, и способный менять его архитектуру на лету (что не порождает очередной поток багов). Он достаточно точно оценивает трудоемкость работ, число ошибок не выходит за небольшой разумный предел, а система всегда работает шустро. Мне известны два подхода к этому: agile-методологии проектирования и мета-программирование.

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

Для западной айтишной культуры подобные заявления абсурдны. Та же Microsoft пример -- если ее программист способен сделать в 10 раз больше кодировщика с окладом 100 тыс долл / год, то он и получит оклад в миллион.

Впрочем, примерно такие мнения, пожелания и оценки высказывались и 25 лет назад. Ничего не меняется.

Комментариев: 6

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Сергей
14.10.2011 15:48:21

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

Дмитрий Менщиков
16.10.2011 14:18:32

Все это поиск "серебряной пули" (что методология позволит избежать ошибок)
"Ясновидение" - это просто опыт...

17.10.2011 10:50:37

Методологии сегодня пока еще не серебряные))), но тенденция заметна. Например, сегодня массовые высокотехнологичные производства работают по шесть сигма (три дефекта на миллион единиц продукции), еще 5-7 лет назад такого не было!

Дмитрий Менщиков
20.10.2011 08:17:58

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

20.10.2011 10:58:13

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

17.10.2011 10:49:07

Оборот речи, конечно.

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии