Бригада программистов обычно бывает нужна, при этом роль главного программиста можете играть и вы, если вам удастся разумно ограничивать себя на этом поприще.
Соотношение между численностью своих программистов и программистов разработчика, занимающихся вашими задачами, зависит от наличия, качества и стоимости сопровождения, а также от ваших возможностей и желания сопровождать систему самостоятельно. Зачастую вам было бы и дешевле, и удобнее программировать какие-то куски системы самим, но разработчик отказывается их поддерживать в следующих релизах системы.
Два типа программистов и особенно их соединение в одном лице категорически противопоказаны при разработке и сопровождении любых систем – это интерпретаторы и исследователи.
Интерпретаторы
Они люди по-своему талантливые, хотя часто еще и абсолютно невежественные. Главной их особенностью является бурное воображение, не позволяющее адекватно воспринимать окружающий мир. В голове у таких полная картинка возникает сразу после поступления первых битов информации. Дальше попыток согласовать появившуюся картинку с информацией, продолжающей поступать извне, не происходит. Их заменяет придумывание предметной области и придумывание пользователей системы вместе с их потребностями.
Интерпретаторы практически никогда не понимают, но и не уточняют поставленную задачу, поскольку заранее знают, что вам нужно, гораздо лучше вас. Письменная формулировка задания дела не спасает, поскольку они не дочитывают написанного. Следующий диалог отражает суть проблемы и практически не утрирован:
– Дима, закрась, пожалуйста, этот рисунок красным. Это срочно.
– Я уже сделал.
– Дима, а почему все зеленое, я же просил красным?
– Но ты же сказал «закрась», а с буквы «з» начинается именно зеленый…
Наиболее печальный результат получается при попытке использовать интерпретатора для сопровождения существующий системы. В самых тяжелых случаях его не удается заставить прочесть и понять чужой программный код. Мне пришлось некоторое время просуществовать в одном подразделении с индивидом, считавшим себя крутым программистом и искренне уверенным, что чужой программный код вообще невозможно изучить. Разуверить его у меня не получилось, но получилось уволить.
Интерпретаторов более раннего возраста удается убедить посмотреть чужие коды, но эффект от этого не совпадает с ожидаемым: «понимание» функционала, реализованного изучаемым текстом, приходит к ним после прочтения первых трех строк. После этого, если не удается принять специальных мер, код правится и внедряется в программное обеспечение действующей системы. Система сразу начинает плясать краковяк, а на вопрос «Что произошло?» следует ответ: «Оказывается, эта процедура кроме того, что я думал, делает то-то и то-то. Но мне об этом никто не сказал».
Исследователи
Эти постоянно хотят осваивать что-то новое, что само по себе совсем не плохо. Но, в отличие от адекватных программистов, немедленно применяют изученное при решении текущей задачи. Собственно, выражение «колоть орехи микроскопом» уже отпраздновало свое столетие. Но если раньше от таких действий страдал только микроскоп, а орехи еще можно было съесть, то после аналогичных воздействий программиста еды может не получиться совсем. То есть по эффекту получается уже гораздо ближе к «стрелять из пушки по воробьям». Таким приходит в голову прикрутить к разрабатываемому электронному калькулятору оракловую базу данных для хранения промежуточных результатов вычислений, хотя в основном проекте используется MS SQL-сервер, который был интересен исследователю в прошлый раз, пару месяцев назад.
Из достижений исследователей за последние годы больше всего порадовали запись настроек и протоколов прикладной программы в реестр Windows и хранение информации внутри базы данных MS SQL в формате xml.
Для эксплуатации некоторых систем (пальцами не показываю) необходима новая разновидность сотрудников: бухгалтерские программисты. В идеале это люди, знающие и понимающие бухучет (зачастую в отличие от бухгалтеров организации) и умеющие записывать алгоритмы на специальном языке, который разработчики почему-то называют параметрической настройкой.
Кроме того, потребуется технический персонал для закупки и настройки компьютеров, генерации общесистемного софта, организации локальных сетей и интранета, кодировщики для работы в генераторах отчетов и печатных форм и программирования простейших отчетов и функций и сотрудники для работы в качестве дополнительных операторов и обучения штатного персонала при запуске системы или ее новых функций.
Для выполнения всех функций последнего абзаца я обычно набираю «на временную работу» однородный штат ребят со средним техническим образованием или студентов последних курсов – молодых, холостых и относительно дешевых, без комплекса старухи из «Сказки о рыбаке и рыбке». Они последовательно выполняют все задачи проекта, но до следующего проекта добираются немногие: большая часть остается по дороге сисадминами, администраторами баз данных и начальниками службы подготовки данных. Меня это как человека радует, но персонал приходится снова добирать и обучать. Только осторожней с кнопкодавами.
Кнопкодавы
Этот тип сотрудников мне в прошлом веке практически не встречался. Может быть, просто везло, или это следствие нашего приближения к Западу с помощью всеобщего отупения. Сейчас им несть числа. Поэтому, когда неизвестный мне «системный инженер», получив информацию, что какое-то приложение работает не так, как следует, предлагает мне прежде всего переустановить операционную систему, я начинаю смотреть на него с опаской.[3]
Дураки, конечно, и раньше встречались. Они всегда были, есть и будут. И непрофессионалов всегда было сколько угодно: «Сотрудники уносили перфоленты домой, чтобы использовать их в туалете» – это известный в 1970-х писатель-фантаст, который, наверное, сам дуршлаг использовал для тех же целей; «Я напечатал вопрос на пишущей машинке и прочел ответ на перфоленте» – это журналист образца 1976 года.
Но сейчас появилось множество людей, работающих в области вычислительной техники и информационных технологий профессионально (в смысле за деньги) и не понимающих в этой области ничего. То есть абсолютно ничего.
Как они появляются, приблизительно понятно. Вера в чудеса неистребима, хотя сейчас вряд ли кто-то допускает мысль о существовании гаррипоттерных волшебников с седой бородой и волшебной палочкой. Для многих главным источником чудес стал компьютер, а главным волшебником – человек, который умеет с ним общаться. Желание тоже стать волшебником подсказывает самый доступный способ его осуществления: выучить заклинания.
Заклинаний они действительно знают много, гораздо больше меня, и пальцами шевелят с поразительной быстротой.
Полное незнание английского помехой не является: заклинаниям положено быть непонятными. То, что сейчас виндоусы в большинстве случаев русифицированы, тоже почти не помогает: они не понимают смысла и по-русски. Главное – в правильной последовательности надавить кнопки. Объяснить, что они делают и, самое главное, зачем, они не могут: для этого нужно хоть немного понимать, как функционирует компьютер, что такое процесс операционной системы и т. д.
Заклинания бывают специальные (приворот, вызов демонов… простите, подключение к принтеру или к локальной сети, установка скринсейвера или машущего хвостика вместо курсора мыши) и общие, на все случаи жизни (простое: Ctrl+Alt+Del, крутое: переустановка виндоуса).
К общим заклинаниям относятся Заклинание Счастья (установка найденного в Интернете дефрагментатора памяти под операционной системой, которая имеет свой дефрагментатор), и разгон процессора. Компьютер начинает глючить, виснуть. Истинный кнопкодав при этом причинно-следственной связи со своими же действиями не замечает и меняет материнскую плату. Или повторяет заклинание.
Попытки выяснить, для каких задач ему не хватило штатной тактовой частоты, для каких целей установлен дефрагментатор, приводят лишь к недоуменному взгляду: вопрос непонятен.
Для заклинаний существует общее правило: если заклинание не помогло, то его надо повторить. Я лично наблюдал пять переустановок Windows XP на одном из компьютеров, у которого перед этим был разогнан процессор.
Появление новых версий любых программ вызывает у кнопкодава неустранимый зуд от желания ее немедленно установить. Зуд усиливается в тех случаях, когда установка новой версии уничтожит всю информацию, накопленную с помощью старой. Удовлетворение наступает лишь в случае установки новой неотлаженной версии на всех доступных компьютерах. Опять-таки совершенно бесполезно спрашивать, какие дополнительные функции в новой версии почтовой программы были настолько необходимы хотя бы ему, что он мне эту версию установил, загубив мою переписку за два года. В ответ вы получите лишь искреннее непонимание, зачем шефу нужны старые письма…