Это было начало 2000-х. Мы уже вовсю заключали договора на автоматизацию на десятки и сотни тысяч рублей. Проекты с такой ценой были тогда редкостью в сообществе 1С. Помню свою встречу с партнером, у которого мы брали коробки 1С. Он спросил у меня: "Ты почем продал проект на завод?". "200 тысяч". "Ничего себе. Я думаю, мы маловато берем".
А дальше все получилось как в анекдоте.
— Скажите, пожалуйста, а как вы заработали свой первый миллион?
— Очень просто. Я купил яблоко за доллар, помыл, продал за два доллара. Потом купил два яблока, помыл, продал их за четыре.
— Потом за 8, 16, 32… ?
— Нет, потом умерла тётя и оставила мне миллион.
А меня разыскал друг, с которым мы вместе автоматизировали Водоканал. В Водоканале я писал программу для расчета зарплаты, а он автоматизировал бухучет. Салават рассказал мне о том, что уже давно ушел из Водоканала и устроился в Теплосеть. Он узнал от общих знакомых, что я занимаюсь 1С, и спросил меня, нельзя ли на 1С написать программу для расчетов с абонентами. Почему он обратился ко мне? Все просто, кроме расчета зарплаты, я в свое время написал неплохую биллинговую программу для расчетов с абонентами Водоканала (об этом — в отдельном рассказе), и он вспомнил о ней, когда увидел, как мучаются с экселем в службе сбыта Теплосети.
- Как думаешь, на 1С можно автоматизировать теплосбыт?
- Ну, готовой программы нет. Но платформа супер. У вас же в бухгалтерии семерка стоит?
- Да, она, родная.
- Отлично. Значит, мы на 7.7. напишем код и интегрируемся с бухгалтерией. Вообще можно будет потом все в 1С автоматизировать.
- Да не вопрос, но самый первый проект должен взлететь, чтобы было продолжение.
- Конечно. Но ты помнишь, как несколько лет создавали биллинг в Водоканале? Предметная область непростая, думаю, в теплосбыте все еще сложнее. Без проектного подхода не обойтись. Будет много бумаги.
- Я твоим подходам доверяю. А так как я директор ИТ, то отвечаю за технологию разработки и внедрения. У тебя будет карт-бланш по этим вопросам, единственное, цену надо будет обосновать.
С обоснованием цены была засада. Конечно, я мог взять трудоемкость с потолка, умножив количество моих работников на 9 месяцев. Вообще я давно понял, что 9 месяцев — это не только срок рождения ребенка. Но и срок, требующийся на разработку и внедрение серьезной программы. Но на вопрос «почему трудоемкость именно такая?» другого ответа, кроме «мне интуиция так подсказывает», у меня не было.
И тут меня осенило! Черт возьми, как я мог забыть? Ведь еще в начале 90-х у нас в ходу была небольшая, но очень ценная книжица - «Типовые нормы времени на программирование задач для ЭВМ», выпущенная «Центральным бюро нормативов по труду» в 1989 году. В чем была ценность расчета трудоемкости, выполненного по этим нормативам? В том, что такой расчет был прост, основывался на измеримых показателях (количестве входных и выходных форм документов), и был выполнен на основе утвержденных на уровне государства норм. И поэтому вызывал доверие и легко принимался множеством заказчиков, особенно теми, кто сам вышел из СССР. А Теплосеть была именно оттуда, это было одно из старейших предприятий города.
Я порылся в своей библиотеке, откопал сильно потрепанную книжицу, собрал нужные данные, опросив пользователей теплосети, и составил мощную смету. Вот так у нас появился первый проект на миллион рублей.
Но заключить договор — это полдела. Самое главное — сделать его. Когда я хочу произвести впечатление на заказчиков, я до сих пор показываю пять томов того проекта. Почему пять томов? Да потому, что купленный тогда фирменный и дорогой брошюратор не давал сшивать больше 300 листов. И нам пришлось сделать пять томов, чтобы собрать техпроект в один документ. Больше 1000 листов. Несколько месяцев работы команды из 4-х человек.
В техпроекте вошли функциональные модели «как есть» и «как будет» в нотациях DFD и IDEF0, информационная модель «как будет» в нотации IDEF1, все интерфейсы программы, примеры входных и выходных форм и описание всех алгоритмов. Фундаментальный труд, позволивший в дальнейшем разработать программу, в основном соответствующую требованиям заказчика. Ну да, вы наверное ожидали услышать «полностью соответствующую»? Нет, ребята, так не бывает в реальной жизни. Хотя мы честно согласовали документ со всеми стейкхолдерами, сделать конфетку с первой попытки — не получилось.
Да и не могло получится. Дело в том, что в реальной жизни заинтересованные стороны:
- Забывают рассказать о некоторых своих требованиях, потому что они живые люди, и у них обычная память, а не фотографическая;
- Вообще не понимают, что такое диаграмма декомпозиции IDEF0 и как ее читать;
- Могут легко заблудиться в паутине связей между сущностями на диаграмме IDEF1;
- Не могут по картинке «Интерфейс экрана» точно понять, как это все будет работать;
- Ленятся читать 1000 страниц, и надеются, что имеют дело с порядочными людьми, которые точно не подсунут им туфту.
И поэтому, в основном, подписывают ровно то, что им принесут. Встретить по настоящему хорошего специалиста заказчика, способного качественно проверить документацию на разработку — скорее удача, чем правило. Поэтому мы никогда не обижаемся, если заказчик говорит «вы сами все придумали, и нам подсунули на подпись». И всегда оставляем больше времени на этап опытной эксплуатации. Тут и происходит основной эджайл, позволяющий получить то, что нужно заказчику. Когда пользователи видят работающий прототип, они намного лучше формулируют требования к нему, и разработка идет веселее :)
Итак, проект был готов, и пора было приступать к программированию. И тут я понял, что с таким объемом кода мои программисты в срок не справятся. Нам нужен был еще один герой. И мы нашли его, купив на углу газету «Работа для вас» и позвонив по номеру телефона в объявлении.
Вася Белый был хорош собой, энергичен и целеустремлен. Он тут же взялся за работу, и целый день проводил за компьютером, бодро стуча про клавишам. Глядя на него, я не мог нарадоваться его горящему взгляду. Единственное, что меня смущало — немного красные белки глаз и то, что он никак не мог показать мне работающий код. «После нового года точно все покажу, но мне надо будет поработать в праздники». И только когда я решил проверить, как идет работа в новогодние каникулы, я понял, что происходит. Рядом с Васей у компьютера стоял полуторалитровый баллон с пивом. К которому он прикладывался каждые пятнадцать минут. Да, мы приняли на работу алкоголика, и потеряли месяц времени, которое было уже не вернуть. Я попросил Васю оставить ключи от офиса внутри, когда он будет уходить. На следующий день мы его рассчитали. При увольнении Вася сознался, что потерял последнюю работу из-за пьяного прогула, и просил дать ему «еще один шанс», но я был неумолим.
Васе Белому я очень благодарен за его урок. Если бы не он, я бы еще не скоро понял, как важно правильно подбирать сотрудников. Немного позже я прошел специальное обучение в фирме 1С по управлению персоналом, и внедрил у себя многоэтапный процесс отбора кадров, включающий в себя не только психологическое и профессиональное тестирование, но и сбор рекомендаций с предыдущих мест работы кандидата.
До конца проекта оставалось три месяца, а у нас не было даже и половины кода. Звонить по объявлениям в газете мне больше не хотелось, и я решил дать свое собственное объявление. После того, как на него никто не откликнулся за два газетных выпуска, я почувствовал настоящее отчаяние. Помню, как я шел домой из гаража морозным вечером, смотрел в небо и думал, что меня может спасти только чудо. Сейчас вы будете смеяться, но тогда я не придумал ничего лучше, кроме как мысленно обратиться ко Вселенной со словами «Мировой разум, если ты существуешь, неужели ты не видишь, как мне плохо? Ты просто обязан мне помочь!». Я думаю, что это простое совпадение, но на следующий день раздался звонок, и у нас появился новый программист, Руслан. Он перешел к нам от другого партнера 1С, занимавшегося типовыми программами, где Руслану приходилось выполнять обязанности и сервис-инженера, и консультанта. А он хотел программировать. Руслан быстро врубился в проект и написал очень хороший код, который потом лег в основу типового решения.
И мы опять, пройдя по самой грани, сделали и сдали проект в срок. И получили еще три проекта у этого заказчика, в итоге создав комплексную систему управления теплосетью. Которая, кроме автоматизации биллинга, включала в себя регламентированный учет, управление финансами, складами и закупками.
Как мы превратили уникальное решение для биллинга теплосети в типовое и стали продавать его по всей России — в следующих рассказах.
Присоединяйтесь к ОК, чтобы посмотреть больше фото, видео и найти новых друзей.
Комментарии 5
(правдиво как)