Pull to refresh

Коммерческая поддержка открытого ПО, или борьба с совковым менталитетом

Reading time9 min
Views2.4K
Компания, в которой я давно работаю, занимается коммерческой поддержкой открытого ПО Asterisk.
Asterisk — это программная телефонная станция (IP АТС), распространяемая в исходном коде. Работает на базе Linux и FreeBSD.

Название свое система получила от регулярных выражений, в которых звездочка (*) означает любые символы, с намеком на то, что Asterisk будет уметь все. Как корабль назвали, так он и поплыл — Asterisk реально может все (умолчим о том, с каким качеством он делает это «все», это выходит за рамки этой статьи). У этого «всего» есть и обратная сторона — новичку разобраться с Asterisk весьма непросто. Графические интерфейсы (FreePbx, например), и готовые дистрибутивы (TrixBox) для «чайников», с одной стороны, понижают барьер входа в Asterisk, но с другой стороны, делают только хуже. Для установки и настройки «чистого» Asterisk'a без «оберток» требуется почитать документацию, после чего возникает хоть базовое понимание принципов системы IP телефонии, и проблема подключения IP АТС к провайдеру связи не вводит в ступор. Те же, кто устанавливают систему «одним кликом», потом в панике взывают о помощи на форумах, формулируя вопросы так, что на них отвечать не хочется. И на такие вопросы форумчане обычно посылают за коммерческой поддержкой. Таким образом, коммерческая техническая поддержка нужна всем :-) Но! Наши люди в подавляющем большинстве своем не умеют считать вмененные затраты. Вместо того, чтобы купить внимание специалиста к своей проблеме, быстро у него научиться, и «идти» дальше, наш человек потратит уйму времени и нервов (своих, директора и других сотрудников), но будет самостоятельно «биться об лед». А все потому, что нет массовой культуры разового привлечения консультантов и оплаты их времени. «Удавлюсь, но не заплачу» — вот он первый «таракан» типичного пост-советского IT-шника.

Кто-то может возразить, дескать, лучше самому во всем разобраться, чем тратить деньги. Соглашусь, если Вы — провайдер (не важно, маленький или большой), и вопросы телефонии возникают постоянно. Но для обычной компании больше подойдет принцип «каждый занимается своим делом». Современные телекоммуникации — это весьма непростое и «объемное» дело, и быстрое решение проблем требует богатого опыта и знаний. Временные затраты на освоение этого дела не сопоставимы со стоимостью привлечения специалиста. Но даже если Заказчик это понимает, и приходит за коммерческой поддержкой, или вовсе решением «под ключ», мы сталкиваемся со следующим пост-советским «тараканом» — недоверием. Разберем на конкретном примере. Без имен, адресов. Поэтому человеку, с которым состоялась эта переписка, не стоит обижаться. Он такой же, как и многие другие. Просто он стал «последней каплей», переполнившей чашу молчания :-) Более того, возможно, он поможет другим осознать свои заблуждения и взгянуть на мир более позитивно :-)

Итак. Переписка. Начальный запрос из города Тюмени:

Здравствуйте, Максим. требуется настройка астериск:
1.Приветствие (наш голос)
2.Минимальное IVR (наш голос, — возможность выбора менеджера звонящему)
3.Внутренняя связь — 5 телефонов
4.Внешний выход через sip местного провайдера (provider-name.ru)
5.Через префикс — межгород через sipnet.ru
6. Трансфер звонка
7. Перехват звонка
8. Факс на емайл.
Возможно ещё что нибудь…
Условия:
Установка на мое железо, (комп+2 шлюза PAP2T) будет стоять свежеустановленный Elastix, настройка шлюзов не потребуется — будет уже настроено.
FXO портов нет.

Комментарии: ничего необычного, все делается тривиально. Если конечно, знать как. Но давайте присмотримся. В этом проекте два фактора риска — неизвестный «местечковый» провайдер и установка на железо Заказчика. Заказчик не знает, сколько времени можно «убить» на бодание с провайдером, который не пропускает звонки, и утверждает, что с его стороны все нормально, а логи, доказывающие обратное, признавать отказывается. Также у Заказчика не было опыта установки Linux на материнке с дешевым RAID контроллером SASMF8I (http://asteriskpbx.ru/wiki/intel-raid-sasmf8i-install-howto ), а что за железо у Заказчика, придется познать в процессе. Заказчик очень хочет сэкономить, поэтому берет noname железо, даже сам (представляете, сам, в «один клик»), ставит на него Elastix (что занимает минут 10). Ах да! Факс!!! Заказчик не знает, что бывают такие факс-аппараты, которые отзываются работать с платами сопряжения, а еще… факс по IP… Заказчик же не знает, что такое T.38, его поддержка или отсутствие, и вообще прохождение факса по VoIP… Он ничего не знает, и поэтому хочет, чтобы все сделали за него. Отлично! Вот она модель Open Source бизнеса! Мы все знаем, мы все сделаем. Все бы хорошо, если бы не… деньги. «Назовите ориентировочную стоимость настройки» — так заканчивает Заказчик свое письмо. А теперь я опишу эволюцию наших ответов на этот ключевой вопрос.

Итак, подход первый — ТЗ. Да, Техническое Задание.
Техническое Задание — это всеобъемлющий исчерпывающий документ, составляемый Исполнителем (!) по требованиям Заказчика, где во всех мельчайших деталях прорабатываются все аспекты проекта. На написание и согласование ТЗ уходит уйма времени!
Задача ТЗ — вытрясти из Заказчика все его хотелки, сформулировать их, описать способ реализации, оценить затраты времени на их реализацию, и сделать калькуляцию, которая будет ответом на вопрос «сколько и когда». Когда-то раньше мы занимались разработкой софта, и автоматически перенесли «девелоперский подход», а именно — «оплатите сперва написание ТЗ, а потом мы узнаем, что да почем». Но только работающий в разработке софта подход начал буксовать с самого начала. Ну никак не хотел потенциальный Заказчик разуметь, за что мы деньги хотим… Аргументы, что мы тратим на это время, его мало трогали. Он говорил «Так я же выслал вам ТЗ (как в примере выше), что еще писать?». В ответ высылали ему пример ТЗ другого проекта, он в ответ детально его комментировал («Ну вот вам ТЗ»), с деталями своего окружения, чем порождал встречное письмо, где ему явно показывали, что есть еще море вопросов, на которые он снова давал ответ :-) Тем самым, в споре с Заказчиком о том, нужно ему ТЗ или нет, получалось ТЗ, и платить было уже не за что — требования обсуждены, проанализированы, описаны, время потрачено. Но не оплачено. И в проект его не включить. Но в спор ввязывались только 20% Заказчиков. Остальные после предложения оплатить ТЗ сливались навсегда, а попытки их вернуть натыкались порой на хамство и грубость :-)

Тогда мы придумали списывать ТЗ на издержки производства. И неявно раскидывать затраты времени по его написанию на проект. Получаемых заказов стало больше. Загрузка выросла настолько, что вдруг стало заметным, что времени на создание технического задания, его согласование, переделки, утверждение, уходило существенно больше, чем времени, затрачиваемого на реализацию проекта. И мы глубоко задумались — а нужно ли ТЗ вообще? оплачивать его не хотят, времени тратится уйма. Конечно же, ТЗ отличная штука, оно позволяет минимизировать риски неоправданных ожиданий и сорванных сроков. Оно позволяет вывести честную оценку стоимости проекта — Исполнитель делает в оговоренный срок оговоренные работы и Заказчик исправно за них платит. Без ТЗ могут быть три ситуации:
1) примерная оценка на начальном этапе совпадает с реальными затратами трудовых ресурсов — редкий случай;
2) примерная оценка трудозатрат, данная на начальном этапе, превышает затраченные ресурсы (проект переоценен) — Исполнитель рад, Заказчика облапошили.
3) Начальная оценка меньше реально затраченного времени — Заказчик рад, Исполнитель зол, что вынужден бесплатно работать. О качестве оказываемых в таком варианте услуг умолчим.

Но, тем не менее, специфика внедрения Asterisk такова, что проще положиться на статистику. Вывести среднюю стоимость проекта «мы все сделаем за X тыс. руб.», подписать договор, выставить счет на 50%, сделать проект, получить остальное. И на начальном этапе это работало. Но потом появились прецеденты. Заказчики по несколько раз меняли требования в процессе реализации, тянули с подписанием актов, придумывали новые требования, а в ответ на недвусмысленные намеки тыкали пальцем в договор, который в условиях неясных начальных требований был больше похож на джентльменское соглашение. Короче, чуть не попав в рабство, мы эту лавочку прикрыли, вышли на крыльцо, и снова задумались. И вспомнили далекий 2004 год, когда мы только начинали заниматься Asterisk'ом, когда в рунете о нем никто ничего не знал, и мы делали проекты западным буржуям. Подняли переписку. И были шокированы. У нас вообще не было проблем с оценкой проекта. Ее (оценки) просто не было. У каждого был тариф — $USD/час. На первое письмо буржуина отвечалось, что все можно, стоимость часа такая-то, платить на max@paypal.com, предоплата минимум за 3, 5, 10 или более часов. Заказчик в тот же день платил, мы делали работу. Далее Заказчик либо снова брал аванс, либо оплачивал постфактум. После первого же «кидоса», мы научились делать «time bomb», которая пряталась в init-скриптах, и если ее не де-активировать после оплаты, в определенный момент сносила все результаты нашего труда, запаковывала их в архив, и прятала в недрах файловой системы. Нерадивый Заказчик с радостью оплачивал остаток, и дополнительно время на восстановление :-) Мы также вспомнили, что когда спрос на коммерческую поддержку Asterisk начал формироваться в России, мы также попробовали применить старый подход с почасовой оплатой, но он сразу же «не пошел», и мы быстро от него отказались, применив подход разработчиков. Но все возвращается на круги своя :-)
И мы, познав альтернативные подходы к ценообразованию Asterisk проектов, снова стали предлагать Заказчикам оплачивать наше, время, затрачиваемое на его задачи. И Вы знаете, кое-что поменялось! Некоторые даже стали соглашаться! Лучший клиент (привет, Олег!) оплатил сразу 50 часов (на год вперед), прекрасно разбирается с Asterisk и IP телефонией, но по всем задачам, выходящим за рамки простой поддержки («нарисовать» новый функционал, или решить «грабли»), обращается к нам. Так как уверен, что мы сделаем это лучше и быстрее, и свое время он ценить умеет. Но, тем не менее, чаще всего происходят такие диалоги (текст оригинальный):

— Здравствуйте. Стоимость часа — 2,200. Ориентировочно — 3 часа. Предоплата. Счет выставлять?

— Максим, пока компьютер не собран. Как только — я обращусь к вам. Спасибо за быстрый ответ.

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

— Максим, я готов работать с вами, но какой смысл начинать работу без компьютера на котором будет астериск? У нас пока физически нет компьютера для астериска:) Вы можете, конечно, выписать счет на предоплату 50%. Завтра я скину реквизиты.

— Сергей, 3 часа, это и есть минимальное время. Никаких 50%, не хватало еще на 10 тыс. два счета выставлять…

— Я просто не понял вашу фразу про выход в кредит. Я так понимаю условия такие: наша оплата 3 часов, затем вы работаете пока не закончите? Т.е. это может быть и четыре и пять часов… и шесть?? Я вам дам точные настройки нашего сип провайдера, напишу максимально понятно для вас ТЗ. Я очень хороший клиент и знаю что мне надо. Мне кажется, мы ложимся в три часа. :)

— Сергей. Стоимость наших услуг — 2,200 руб. в час. Независимо от того, на что оно тратится. 3 часа — минимальные затраты.
Потребуется больше времени — покупается следующий пакет на тех. поддержку, 3 часа минимум. И так далее, пока Ваши хотелки не исчерпаются.

— Максим, для вас конечно такая форма оплаты очень удобна, но для меня как клиента — не очень. «3 — часа минимальные затраты» — на что? Хочу узнать что будет сделано в отведенное время, на что они будут потрачены, что будет за это время настроено?? ( можно екстеншены на 5 телефонов настроить за 15 минут, а можно их настраивать и 2 дня по 6600 за три часа) Вы можете сказать, сколько времени нужно на настройку:
1. Приветствие (наш голос) (5 минут)
2. Минимальное IVR (наш голос, — возможность выбора менеджера звонящему) (10 минут)
3. Внутренняя связь — 5 телефонов (работа на 15 минут)
4. Внешний выход через sip (тюменский провайдер) (настройка транка)
5. Через префикс — межгород через sipnet.ru (у вас 100% есть готовый конфиг, или вы его помните по памяти)
6. Трансфер звонка (диал плайн)
7. Перехват звонка (диал плайн)
8. Факс на емайл.
Настройка безопасности (сменить дефолтные пароли и т.д. )
Если не можете ответить на вышепоставленный вопрос, у меня возникает новый — У вас в компании существует какая то анкета (бриф) для изучения моих хотелок и подсчета примерной стоимости разработки?
P.S. Я уверен — у вас огромные наработки, просьба не разводить меня на время, а сказать сколько мне потребуется денег на данную работу

— Здравствуйте, Сергей. Не готов ввязываться в переписку и споры. Это наш подход и точка. Скажу только, что Ваши риски ограничены 6600 рублями. Не понравятся темпы работы и результаты — прекратите сотрудничество. При условии добросовестного отношения такая форма работы идеально подходит как Заказчику, так и Исполнителю, как минимум все честно — делается работа, и оплачивается в полном размере. Решайте.

— Здравствуйте, Максим. Я вполне четко понял ваш подход: Я покупаю ваше время, а вы можете его использовать как хотите, например пить чай 40 минут. Никаких временных границ по моему ТЗ вы мне дать не можете и меня это возмущает. Про ваш темп работы я ничего не знаю и вы мне не хотите ничего про него рассказать (меня интересует — какие работы будут выполненны за 3 часа?). Я вас правильно понимаю? Это лично ваша позиция или позиция компании?
P.S.
Если у вас есть автомобиль — Вы знаете, что стоимость ремонта\замены производится четко по нормо часам. Но общая стоимость ремонта\замены не зависит от количества затраченного времени т.к. время работ мастера СТО зависит от его квалификации, опыта и зарплаты. т.е. если замена ступицы стоит 2 тыщи рублей нормочас, я и отдам 2 тысячи! А если мастер будет ковырятся с ней полдня — т.к. это его личные проблемы. Так почему Вы мне не можете сказать что будет сделано за три часа?!

… Я не знаю, что ответить на последнее письмо Заказчика. Писать, что полноценно Asterisk внедрить — это не масло поменять? Что часто возникают различные непредусмотренные ситуации, возникающие из-за нюансов окружения заказчика… Приводить примеры того, как десятки часов были «положены» на решение проблем дребезжания голоса, и на усталую просьбу поменять сетевой свитч Заказчику ругался матом, а потом поменял, и все заработало? Почему мы вообще должны убеждать Заказчика, что он должен платить за нашу работу. Мне кажется, принцип аутсорсинга заключается в том, что Заказчик временно нанимает внешнего специалиста, который решает его задачи, и уходит, а Заказчик занимается своим профильным бизнесом, не особо отвлекаясь. Ведь можно «рискнуть» оплатить несколько часов, посмотреть, как пойдет… Ведь чаще всего «пойдет»! Заказчик же не к студентам обращается, и это сразу понятно. Откуда недоверие, подозрительность, и нелепые предположения про чай, кофе и ковыряния в носу? Риск ограничен несколькими тысячами… Попробуй… Можно, наконец, негативные отзывы в интернете поискать…
Как!? Как изгнать этих тараканов из менталитета русских IT-менеджеров и сисадминов!?
Почасовая оплата — идеальная форма сотрудничества с профессионалами своего дела. Вы платите — мы честно делаем свое дело так, как Вы никогда не сделаете, ибо у Вас не будет 6 лет догнать нас. Почему это норма для буржуев, и взрыв мозга для наших людей? Нипанятнаа…
Tags:
Hubs:
-2
Comments50

Articles