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