Глава 6, в которой выясняется, Кто есть Кто

— О чем говорили, о чем говорили… — замялся Иван. – Да так, ни о чем. А вы что, подслушивали?

— Нет конечно! – возмутилась Валерия.

— Ну и отлично! – улыбнулся Иван и зашагал к лестнице.

— Постойте!

Валерия засеменила вслед, пытаясь догнать Ивана, но на высоких (к тому же, красных) каблуках это сделать сложно. Иван, все-таки, притормозил – не дай Бог еще навернется, потом объясняйся.

— Чего вам, Валерия? – с тяжелым вздохом спросил он.

— Про меня говорили?

— Нет. Про варианты дихотомического мажорирования матрицы в условиях современной экономики.

— Все шутки шутите?

— Нет. – серьезно ответил Иван. – До свидания, Валерия. Работы много.

В кабинете все было тихо и спокойно – как всегда. Стас пристально пялился в свой монитор, подперев рукой подбородок. Игорян, развалившись в кресле, уныло листал колесом мыши какую-то документацию – как всегда, с полным отсутствием понимания во взгляде. Увидев Ивана, немного приосанился, и натянул на лицо подобие улыбки. Олег пил кофе – опять, наверное, без сахара. При мыслях о таком напитке – дешевом, растворимом, да еще и горьком, Ивана передернуло. Только бородатый Гена, неплохо понимавший тонкости человеческих взаимоотношений, при виде начальника широко улыбнулся и отвлекся от компьютера.

— Так, рукожопы, кто хочет мировой славы? – устало спросил Иван.

— Машину директору помыть? – шутки Игоряна не всегда были удачными. Далеко не всегда.

— А ты еще не помыл что ли? – вторил ему Иван. – Чего сидишь тогда, сопли на кулак наматываешь? Давай, ноги в руки и вперед.

— Да пошутил я… — угрюмо сказал Игорян.

— Давно ты у нас в шутники заделался? Ну-ка, быстро, состав аналитики распределения затрат. Быстро!

— Да я…

— Садись, два. – Иван похлопал Игоря по плечу. – Так, пацаны, кто славы-то хочет?

— Че надо, говори. – не отвлекаясь от компьютера, спросил Стас.

— Че надо, говори. – передразнил Иван. – От тебя ничего не надо. У тебя зимой лопаты снега не допросишься, крохобор. Сиди, дальше ковыряйся.

— Вот и поговорили. – засмеялся Олег.

— Да ну вас. – махнул рукой Иван. – Скучно живете, скучно работаете. Надоели.

— Ты чего опять взъелся? – подал голос Гена. – Стимул опять придали? Тот самый?

— Что за стимул? – спросил Олег.

— А, ты же не знаешь… — загадочно улыбнулся Гена. – С производства кто-то рассказывал такую шутку. Стимулом раньше называлась палка, которую смазывали перцем и вставляли в задницу слону, чтобы быстрее бежал во время боя. Наверное, и Ивану придали стимул – смотри, какой понурый.

— Я не от того понурый, а от вашего болота. Столько возможностей перед вами, столько полезного, интересного, классного можно сделать, а вы…

— Да мы согласны, что ты! – с иронией сказал Гена. – Давай, мы хотим мирового господства! Что сделать надо?

— Отвали. – коротко сказал Иван и сел за свой ноутбук.

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

Чтобы совершенно точно ничего не слышать, Иван сделал погромче – благо, в плеере заиграла одна из его любимых мелодий. Раньше он любил послушать что-нибудь бешеное, вроде Металлики, но постепенно, с опытом, понял, что такая музыка слишком отвлекает мозг – намного лучше какой-нибудь транс, особенно от израильских команд. Настроение стало быстро подниматься.

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

Особенно старались Гена и Стас. Гена пришел в команду недавно, Иван еще плохо его знал, и не понимал душу этого парня до конца. Как программист он был не очень хорош, любил пользоваться чужими заготовками, часто сидел на Инфостарте и тырил оттуда куски кода. С одной стороны, Иван этого не любил – в конце концов, что за программист, который не может решить задачу сам? Ладно там какую-то редкоприменимую бумажку скачать, вроде ТОРГ-2, чтобы не тратить время, но обычный-то код зачем брать? Пару раз об этом разговаривали, но единого мнения не было даже в голове у Ивана. Ладно, черт с ним, пусть пока на чужих идеях поездит, может встанет голова на место.

Стаса Иван знал давно – вместе работали на птицефабрике. Иван пришел туда начальником, чтобы внедрять УПП, а Стас сидел на поддержке семерки, Производство+Услуги+Бухгалтерия вроде называлась – черт его знает, Иван никогда с семеркой не работал, только остатки из нее переносил. Вместе со Стасом тогда быстро перевели курятник на УПП, за один месяц – времечко было жаркое, и команда получилась неплохой – Иван делал все, что касалось программирования, а Стас окружил его очень качественной заботой – не подпускал пользователей, выполняя первичный прием обращений, фильтруя и превращая в понятные задачи. Постепенно и сам въехал в УПП и восьмерку, и когда Иван уволился, Стас остался на птицефабрике, и стал там главным программистом. После курятника он еще где-то помурыжился, и Иван переманил его к себе.

Олега Иван знал дольше всех – вместе учились в институте, вместе бухали в общежитии, вместе ковыряли карандашами начертательную геометрию, вместе делали курсовую – оптический измеритель толщины полимерных пленок. Хотя, если не врать, курсовую делал один Олег, потому что Иван был занят – делал за деньги другую курсовую, оптический измеритель шероховатости поверхности, по тому же предмету. Наверное, потому и получили четверку, а те, кому делали за деньги – пятерку. Потом вместе работали во франче несколько лет, пока дорожки не разошлись – Иван ушел искать счастья на заводах, Олег остался. Теперь, вот, опять дорожки соединились.

Игорян тоже учился вместе с Иваном и Олегом. После института пошел на большой металлургический комбинат – туда же, где работал его отец, только Игорян, обладая инженерным дипломом, устроился в КИПиА. Потом шарашился по другим конторам, нигде не имея успеха и работая системным администратором, с зарплатой тысяч в двадцать. В среду 1С попал случайно, и, как положено случайностям – по пьяни. На встрече выпускников, вместе с Иваном и Олегом, надулись крафтового пива, и Иван, выслушав слезливый рассказ Игоряна о его мытарствах, и обладая странной склонностью к спасению мира, взял его под свое крыло. Уговорил директора на эксперимент – взять задешево толкового инженера, ничего не понимающего в 1С, и научить его. Понятно, что «дешево» в 1С – это «дорого» для системного администратора, поэтому у Игоряна случился резкий скачок в доходах – в полтора раза. Не сказать, что Иван успел многому его научить, но обузой Игорян не был, и он это чувствовал, оттого и был вечно признателен Ивану за такой поворот в его судьбе.

И вот сидит вся эта братия, и весело потешается над начальником. Иван не боялся – знал, что ничего страшного или обидного про него не говорят, а если и говорят – без разницы. Настроение уже было на высоте, пришла пора снимать наушники и делать очередную попытку.

— Так, хайло завалили. – Иван снял наушники. – Или как правильно? Хайлы?

— Мы поняли, спасибо. – ответил за всех Гена.

— Если гора не идет к Магомету, то Магомет идет к горе. – улыбнулся Иван, встал с места и начал расхаживать туда-сюда. – Если не хотите мировой славы, то…

— Да мы хотим! – опять встрял Гена.

— Трындеть команды не было. – строго сказал Иван. – Так, тема номер раз. Кто не любит бухгалтерию?

Поднялись две руки – Стаса и Игоряна. Не просто поднялись, а подняли вслед за собой оба тела со стульев. Как будто преподаватель на консультации спросил, кто хочет четверку автоматом.

— Так… — задумался Иван. – Игорян будет слишком долго сопли жевать, а директор ждет ответа сегодня. Стас, тебе достанется задача.

— Ура! – картинно обрадовался Стас. – Что надо?

— Надо сделать бухгалтерии обрезание. Они задумали расширяться, и подсели на ухо директору – говорят, что обороты выросли вдвое, и у них, соответственно, вырос объем работы. Тут все просто – консолькой глянь, стало ли больше документов.

— Отгрузок? – переспросил Стас.

— Не только, все доки посмотри. Перемещения, поступления, комплектации, ОПзСы, и так далее. Все, что они делают. Да, вот еще – количества доков мало, надо еще строки посчитать. Сможешь?

— Канеш.

— Ну вот. В кучу мешать не надо, посчитай отдельно документы, отдельно – строки. Пусть будет две строки.

— А там не могла сложность вырасти? – вмешался Олег.

— Теоретически, могла. – задумался Иван. – Но я что-то не припомню, чтобы какие-то изменения были серьезные в законодательстве. Если что и менялось, то в зарплате, а этим одна Ольга занимается, и вроде справляется.

— Понял. – кивнул Стас. – Сделаю.

— Давай. Так, дальше. Кто будет делать перерасчет себестоимости? Ну, про который говорили с Евгенией?

— Я! Я! Можно я! – вскочил Игорян. – Я тоже хочу славы!

— Не, Игорян, ты рукожопый. – ответил Иван. – Тут надо быстро, а ты быстро только… Блин, Игорян, ты ничего быстро не умеешь делать.

Игорь понуро сел и уставился в монитор, всем своим видом демонстрируя отсутствие интереса к происходящему.

— Ну вот, опять распсиховался. – раздраженно сказал Иван. – Чего ты как баба, а? На меня смотри!

Игорь повернулся и уставился на Ивана. Глаза были мутноватые – наверное, из-за цвета, светло-голубого. А может, сейчас слезы потекут. Господи, что за зоопарк – подумал Иван.

— Игорян, я бы с радостью отдал тебе эту задачу. – как мог, мягко сказал Иван. – Но ее надо решить срочно. А ты в РАУЗе плаваешь, как какашка в проруби.

— Да понял я. – хмуро ответил Игорь. – Интересы команды превыше всего.

— Я обязательно придумаю, или найду для тебя задачу. – с улыбкой ответил Иван. – Прям, чтобы тебе в масть была. Хорошо?

— Хорошо. – по лицу Игоряна скользнула улыбка.

— Вот, например… — Иван взял стул, подкатил его к Игорю, и уселся рядом. — Ты же у нас техподдержка, а значит что?

— Что?

— Лучше всех знаешь проблемы пользователей. Какие у них трудности, в основном?

— Сделают какую-нибудь херню, и начинают названивать и орать, как это исправить теперь.

— Переводя на русский, ошибаются часто?

— Ну да. – кивнул Игорь.

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

— Все, кончились задачи? – прервал молчание Гена.

— Нет. – задумчиво ответил Иван – мысли еще были заняты Игоряном. – Еще мы с директором придумали механизм проверки данных.

— Это чего?

— Это невероятная красота, гармония и всемирная слава. – ответил, не задумываясь, Иван. — Ну давай, рассказывай, чего молчишь-то. – улыбнулся Гена.

— Смысл такой. Мы сейчас как проверки делаем?

— Какие проверки?

— Ну в документах, справочниках, не даем записывать, если что-то пользователь не так ввел.

— Кодом, а еще как?

— Как-как, никак. Знаете такую шутку: как назвать запор?

— Ну давай, удиви нас.

— Как – никак.

— Ясно. – улыбнулся Гена, потом усмехнулся, и, когда смысл дошел, начал смеяться.

— Тебе пальчик покажи, ты смеяться будешь. – строго глядя на Гену, сказал Иван. – Так вот, проверки. Что при программировании проверок вызывает наибольшие трудности?

— Ну, не знаю… — отфыркавшись, ответил Гена. – Какие трудности…

— К данным привязываться трудно. – подал голос Олег. – Когда проверка не абстрактная, а связанная с данными. Например, проверить, что номенклатура в документе – из конкретной папки.

— Ну вот. – удовлетворенно кивнул Иван. – Всем брать пример со старого коня, который борозды не испортит.

— Потому что никуда не поедет. – засмеялся Гена.

— Сиди и учись. – ответил Иван. – Олег дело говорит. Когда надо сделать проверку, привязанную к данным, начинается геморрой. Такие, как Игорян – без обид, дружище – как поступают? По коду или наименованию данные ищут. Мы с вами затычку сделали.

— Справочник констант? – вставил Гена.

— Да, справочник констант.

— Что за справочник? – спросил Олег.

— Просто справочник, в который мы добавляем предопределенные элементы, а потом на них ссылаемся в коде. Например, «папка номенклатуры Продукция» — добавляешь в предопределенные, потом, после обновления, указываешь значение, и из кода обращаешься. Но это, все-таки, затычка. Пока добавишь, пока обновишься…

— А какой выход? – прищурился Гена.

— СКД, какой еще.

— Другого я не ожидал. – улыбнулся Гена.

— Ой, все, Гена догадался, как же быть теперь…

— Обращайтесь, если что.

— Хоть он и бородатый, но мысль уловил правильно. СКД – единственный приличный способ настроить проверку объекта с привязкой к данным, потому что схему мы можем делать прямо в режиме предприятия – там все данные под рукой. Что немаловажно – СКД позволяет делать мегакрутые отборы – там тебе и группировка условий, и возможность логического ИЛИ, и, самое крутое, на мой взгляд – можно сравнивать поля друг с другом, а не только с абсолютными значениями параметров или данных.

— А как проверять-то? – спросил Олег. – Все объекты скопом? Как отчет?

— Нет, все объекты проверять уже поздно. Нам же нужна проверка при записи, а не потом. Потом бухгалтерия сама проверит, когда месяц закрывать будет – только этим они и занимаются. Нам надо проверять до записи, ну или при записи – короче, чтобы была возможность пользователя послать подальше.

— Выполнять СКД при записи? – удивился Олег. – Это ж трындец. В два раза дольше будет записываться, нас сожрут потом.

— Верно подмечено. – кивнул Иван. – Не про то, что сожрут, а про падение производительности. Наверное, поэтому такая очевидная идея до сих пор не реализована – все, как и ты, думают, что производительность резко упадет, потому и не берутся. А мы возьмемся. Надо сделать, и посмотреть, отладить, найти способы ускорить выполнение СКД.

— Как? – не унимался Олег.

— Не знаю пока. – пожал плечами Иван. – Там много секретов, мне кажется, и способов исполнения, о которых мы пока не знаем. Надо ковыряться.

— Ты мне эту задачу поручишь? – хмуро спросил Игорян.

— А ты хочешь?

— Нет. – замялся Игорь. – Я СКД плохо знаю, у меня каша в голове.

— Как ты достал уже со своей кашей. – улыбнулся Иван. – Нет, ты эту задачу решать не будешь. Ты будешь потом проверками ее наполнять, систему эту.

— Почему я?

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

— Блин, ты хочешь интересную задачу, или нет? – возмутился Иван. – Все в тебя впихивать приходится. Давай, приди в себя, потесни свою кашу в голове, чтобы хоть что-то еще влезло.

— Ладно.

— Что у заводских программистов, что у разработчиков из 1С, цикл обратной связи очень длинный. – продолжал Иван. – Когда появляется информация о том, на чем пользователи тупят и ошибаются, она проходит через сотни кругов ада – анализ, согласование, постановка задачи, приоритизация, написание и тестирование кода. В продакшн код, нивелирующий ошибочное поведение пользователя, попадет очень поздно, если вообще попадет. Разрыв настолько большой, что ни в головах пользователей, ни в системном мышлении разработчиков этот контур не прослеживается.

— Какой контур? – спросил Гена.

— Контур обратной связи самообучаемой системы. Отдельно живет информация об ошибках, отдельно – поток исправлений. Потому пользователям кажется, что ничего особо не происходит, система не развивается, и вообще, 1С – фигня полная, а все программисты – надутые жлобы. Мы же сделаем этот контур очень коротким, быстрым и четким.

— Как это? – нахмурился Игорь. Вообще, нахмуриться было его любимой эмоцией.

— Блин, ты достал уже Игорян. Кто еще не понимает?

— Я. – сразу ответил Гена.

— О, тогда сорян, Игорь. – улыбнулся Иван. – Ты не один такой. Допустим, у нас все получилось – с проверкой данных через СКД. И вот представь – звонят Игоряну, говорят – ааа, ошибка! Мы тут что-то понаделали, что-то понажимали, теперь ничего не работает! Игорян заходит в документ, смотрит, быстро понимает, чего они понаделали, и тут же делает проверку. Создает элемент, настраивает схему – быстро, или она вообще сама настраивается, когда он указывает тип документа. И бац! – в отборе указывает условия воспроизведения ошибки. И все, больше такой ошибки не будет никогда. Когда руку набьет, сможет зафигачить проверку, пока разговаривает с пользователем. Представь, Игорян – они еще ноют в микрофон, как у них все плохо, а ты перебиваешь и говоришь – так, спокойно, больше такой ошибки не повторится. Они хлопают глазами, или чем там… И говорят – Игорь, вы просто чудо!

— Я согласен. – улыбнулся Игорян. – Покажешь, как это делать?

— Когда механизм сделаем, тогда и покажу. Ну что, кто хочет эту штуку сделать?

— Я! Я хочу! – поднял руку Гена.

— Хм… — задумался Иван. – Может, лучше Олег?

— Нет, только не Олег! – картинно запричитал Гена.

— Ладно, давай ты. – пожал плечами Иван. – Задачу понял?

— Да!

— Ок, начинай. Сделай сначала тупо – чтобы при записи выполнялась схема. Справочник какой-нибудь приделай, где схемы будут лежать. Когда сделаешь – скажи, поглядим на замеры времени выполнения.

— А перерасчет себестоимости кто делать будет? – отвлекшись от консоли запросов, спросил Стас.

— Сам сделаю. Будет блюдо от шеф-повара.

Внезапно дверь в кабинет отворилась, и в нее ворвалась Галина Кузьменко, директор по качеству. Лицо у нее было перекошено гневом, что, как это часто бывает, не предвещало ничего хорошего.

— Какого черта никто не отвечает? – закричала она. – Кто на тех.поддержке? Я уже полчаса не могу дозвониться!

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

— У нас совещание. – строго ответил Иван. – Тебе чего надо?

— Мне работать надо! – крикнула Галина.

— Так иди работай. – улыбнулся Иван.

— Да ты… — немного растерялась Галина. – Совсем охренел, что ли? Зачем делать тех.поддержку, которая ни черта не отвечает?

— А ты нам процесс нарисуй, как она должна работать. – еще больше расплылся в улыбке Иван.

— Ну ты дождешься у меня… — злобно процедила Галина и выбежала из кабинета.

— Мда… задумчиво произнес Олег. – Ты чего так с женщиной разговариваешь.

— О, это целая история! – ответил вместо Ивана Гена. – Она ж его начальницей была. С тех пор у них такая любовь, такая любовь…

— Галина была твоей начальницей? – округлил глаза Олег.

— Ну да… — пожал плечами Иван. – Недолго, правда, но была. Ладно, работайте давайте, мне пора.

— Куда опять? – спросил Гена.

— Обучение какое-то. – пожал плечами, вставая со стула, Иван. – Харэ-директор собирает.