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