Записки автоматизатора. Профессиональная исповедь
Шрифт:
И я счастлив, что со мной много раз работали люди, мозги которых повернуты на некоторый угол по отношению к моим: понимая и складские, и торговые технологии, и даже что такое алгоритм, они умеют мыслить по-бухгалтерски.
Мало их… Я за свою жизнь встретил только трех, и все – женщины: две – великолепные бухгалтеры, одна – исполнительный директор, которая за своих бухгалтеров думает. Знаю я и мужчин, отлично ориентирующихся в бухучете, но они все почему-то занимаются не самим учетом, а его автоматизацией. Впрочем, «за свою жизнь» – это слишком сильно. Просто лет восемь назад я сам в бухучете ничего не понимал, а чтобы осознать величие
«Нам не нужна отдельная система контроля исполнения поручений, все можно сделать в модуле „Бухгалтерия“ нашей системы: когда поручение дается, датой отчета по поручению делается проводка на штраф ответственному, а если он поручение случайно выполнит, то проводка сторнируется».
Без комментариев.
Квалифицированные постановщики ныне редкость. Как ни странно, тяжелее всего найти людей, владеющих русским языком, что в результате приводит и к косноязычию на уровне программных кодов.
Быль 1. В 1995 году подобрал я компанию, готовую поставить информационную систему для фирмы, в которой я тогда работал. И стали мы обсуждать, как эту систему настроить. И мне впервые назначили менеджером проекта человека, для которого правильнописание было тайной за семью печатями.
Через некоторое время я сообщил их директору, что долго такого не выдержу, и попросил заменить внедренца или хотя бы обучить его пользоваться проверкой орфографии в Word. Следующий документ он мне вручил, торжественно заверив, что теперь, получив взбучку, он проверяет тексты очень внимательно. Документ назывался «МАТЕРЬЯЛЫ К ЭСКИЗНОМУ ПРОЭКТУ». В параметрах Word было указано не проверять слова из прописных букв…
Быль 2. Очередная организация наняла меня слишком поздно: сторонние внедренцы уже сделали вид, что провели предпроектное обследование. В результате еще месяц ушел на переделку технических заданий на доработки. Одним из требований, на котором я настаивал, было добавление в справочник контрагентов дополнительного поля для аббревиатуры в пять символов. Сокращенное название контрагента в выбранной тиражируемой системе занимало двадцать символов и не влезало в шахматки, которые широко использовались в организации.
Требование для этой системы пустяковое, руководитель проекта от внедренцев на него сразу по телефону согласился, но в очередной версии ТЗ аббревиатуры не оказалось. Звоню, удивляюсь, в ответ слышу: «Ах, простите, щас добавим». Приходит следующая версия ТЗ – нужного пункта нет. После трех итераций еду к разработчикам и понимаю, что единственной проблемой для включения требования в ТЗ было неумение написать слово «аббревиатура» менее чем с двумя ошибками кем-либо из внедренцев. А Word больше одной ошибки не исправляет…
Бригада программистов обычно бывает нужна, при этом роль главного программиста можете играть и вы, если вам удастся разумно ограничивать себя на этом поприще.
Соотношение между численностью своих программистов и программистов разработчика, занимающихся вашими задачами, зависит от наличия, качества и стоимости сопровождения, а также от ваших возможностей и желания сопровождать систему самостоятельно. Зачастую вам было бы и дешевле, и удобнее программировать какие-то куски системы самим, но разработчик отказывается их поддерживать в следующих релизах системы.
Два типа программистов и особенно их соединение в одном лице категорически противопоказаны при разработке и сопровождении любых систем –
Интерпретаторы
Они люди по-своему талантливые, хотя часто еще и абсолютно невежественные. Главной их особенностью является бурное воображение, не позволяющее адекватно воспринимать окружающий мир. В голове у таких полная картинка возникает сразу после поступления первых битов информации. Дальше попыток согласовать появившуюся картинку с информацией, продолжающей поступать извне, не происходит. Их заменяет придумывание предметной области и придумывание пользователей системы вместе с их потребностями.
Интерпретаторы практически никогда не понимают, но и не уточняют поставленную задачу, поскольку заранее знают, что вам нужно, гораздо лучше вас. Письменная формулировка задания дела не спасает, поскольку они не дочитывают написанного. Следующий диалог отражает суть проблемы и практически не утрирован:
– Дима, закрась, пожалуйста, этот рисунок красным. Это срочно.
– Я уже сделал.
– Дима, а почему все зеленое, я же просил красным?
– Но ты же сказал «закрась», а с буквы «з» начинается именно зеленый…
Наиболее печальный результат получается при попытке использовать интерпретатора для сопровождения существующий системы. В самых тяжелых случаях его не удается заставить прочесть и понять чужой программный код. Мне пришлось некоторое время просуществовать в одном подразделении с индивидом, считавшим себя крутым программистом и искренне уверенным, что чужой программный код вообще невозможно изучить. Разуверить его у меня не получилось, но получилось уволить.
Интерпретаторов более раннего возраста удается убедить посмотреть чужие коды, но эффект от этого не совпадает с ожидаемым: «понимание» функционала, реализованного изучаемым текстом, приходит к ним после прочтения первых трех строк. После этого, если не удается принять специальных мер, код правится и внедряется в программное обеспечение действующей системы. Система сразу начинает плясать краковяк, а на вопрос «Что произошло?» следует ответ: «Оказывается, эта процедура кроме того, что я думал, делает то-то и то-то. Но мне об этом никто не сказал».
Исследователи
Эти постоянно хотят осваивать что-то новое, что само по себе совсем не плохо. Но, в отличие от адекватных программистов, немедленно применяют изученное при решении текущей задачи. Собственно, выражение «колоть орехи микроскопом» уже отпраздновало свое столетие. Но если раньше от таких действий страдал только микроскоп, а орехи еще можно было съесть, то после аналогичных воздействий программиста еды может не получиться совсем. То есть по эффекту получается уже гораздо ближе к «стрелять из пушки по воробьям». Таким приходит в голову прикрутить к разрабатываемому электронному калькулятору оракловую базу данных для хранения промежуточных результатов вычислений, хотя в основном проекте используется MS SQL-сервер, который был интересен исследователю в прошлый раз, пару месяцев назад.
Из достижений исследователей за последние годы больше всего порадовали запись настроек и протоколов прикладной программы в реестр Windows и хранение информации внутри базы данных MS SQL в формате xml.
Для эксплуатации некоторых систем (пальцами не показываю) необходима новая разновидность сотрудников: бухгалтерские программисты. В идеале это люди, знающие и понимающие бухучет (зачастую в отличие от бухгалтеров организации) и умеющие записывать алгоритмы на специальном языке, который разработчики почему-то называют параметрической настройкой.