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