Конечный итог программирования Джерри был таким: каждый раз, когда он устранял какую-нибудь неполадку, мы тут же обнаруживали другую фундаментальную проблему с функциями. Да, небольшой инкрементальный прогресс всё-таки был, баги постепенно устранялись, однако Джерри в любом случае был в невыигрышной позиции, потому что его базовая архитектура в целом была фиговой. Когда его спрашивали о статусе, он предъявлял удивительно длинный и достаточно правдоподобный список оправданий. Это были оправдания человека, который честно верил в то, что сможет справиться со всеми трудностями, и был готов засиживаться допоздна за работой. Тем не менее все время мира не могло помочь Джерри, потому что он попал в ситуацию, которая была ему явно не по зубам.
Если вы руководитель и находитесь в подобном положении, то вам необходимо внести в ситуацию значительные изменения, потому что вы не можете выпускать фигню. Существуют компании, которые так делают и получают крошечную прибыль. Однако вы не из таких, потому что однажды вас настигнет кара за выпуск фигни, вы вслепую войдете в штопор и устремитесь дорогой заурядности, которая в итоге приведет к тому, что вы будете работать в Computer Associates над продуктом, о котором никто никогда не слышал и который никого не интересует.
Существует процесс выхода из подобной ситуации, состоящий из двух шагов. Мы должны решить вопрос с Джерри, а потом нам потребуется чудо. Я начал с самого простого.
Нам нужен был Джерри. Он был единственным человеком, который знал, что, черт возьми, происходит в этой куче программного спагетти, а еще он мог устранять простейшие баги. Руководитель по разработке посадил Джерри перед собой и сказал ему, что сейчас мы должны сосредоточить свое внимание на количестве. Там повсюду были горы мелких простейших ошибок, которые ранее игнорировались, и Джерри вполне мог с ними справиться. Да, его эго пострадало, однако уже через несколько недель он был великолепен, потому что люди всегда работают лучше, когда видят прогресс и понимают, что у них есть все шансы выполнить свою задачу.
Наша проблема с Джерри помимо прочего состояла в том, что у нас оставалось всего шесть месяцев до выпуска продукта, а основная часть функционала была слеплена кое-как и едва действовала. При таком сценарии вам требуется уникальный талант. Вам нужен
Свободный электрон — это самостоятельный и самый продуктивный инженер из всех, кого вы когда-либо встречали в своей жизни. Я даже не буду приводить здесь подробное определение этого термина, потому что догадываюсь, что человек, подходящий под это описание, уже всплыл в вашем сознании.
Свободный электрон может все, что связано с программированием. Он может полностью написать приложение с нуля, может выучить новый язык за выходные, и, что самое важное, он может разобраться с гигантской кучей программного спагетти, превратив ее в нечто осмысленное и функционирующее. Вы можете построить целый бизнес на одном свободном электроне. Настолько он хорош!
Существует два типа свободных электронов:
Младшая версия свободного электрона обладает теми же способностями, просто он еще не набрался достаточного количества опыта в работе с людьми, потому что всю свою молодость он провел за написанием своей собственной операционной системы просто в качестве интеллектуальной тренировки. Если вы нанимаете сотрудников, то младшие свободные электроны будут вашей лучшей добычей. Если за 20 лет вам удалось нанять двоих таких, значит, вы всё делаете правильно.
Забота и кормежка
Если вам повезло и в вашей организации есть свободный электрон, то вы должны понимать, что имеете дело с довольно странной породой инженеров. Возможно, вам придется заботиться о таких инженерах и кормить их не так, как остальных членов команды.