Как с нами работать — различия между версиями

Материал из Меасофт
Перейти к: навигация, поиск
м (Почему мы задаем вопросы)
м (Корректно обратиться в поддержку)
(не показано 45 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
Уважаемый (потенциальный?) пользователь системы "Курьерская служба 2008"!
 
Уважаемый (потенциальный?) пользователь системы "Курьерская служба 2008"!
  
В этой статье я опишу теорию и практику взаимодействия с нашей компанией, отвечу на часто задаваемые вопросы касающиеся этого взаимодействия.  
+
В этой статье я опишу теорию и практику взаимодействия с нашей компанией, отвечу на часто задаваемые вопросы касающиеся этого взаимодействия. Я постараюсь максимально открыто описать нашу кухню.
 
Обладая этой информацией Вам будет гораздо быстрее и проще решать свои задачи по автоматизации.
 
Обладая этой информацией Вам будет гораздо быстрее и проще решать свои задачи по автоматизации.
 +
 +
<div style="text-align: right;">''Руководитель MeaSoft<br>'''Евгений Милевский'''''</div>
  
 
==О системе==
 
==О системе==
Немного цифр: по состоянию на момент написания статьи (март 2017) наша система существует и развивается 14 лет. Над ней ежедневно трудятся 7 программистов. Ежедневно решается около 30-ти тикетов. Система установлена более чем в 300 компаниях. В географию установок входят Россия, Казахстан, Украина, Белоруссия, Киргизия, Латвия. С помощью системы, ежедневно 4,5 тысячи курьеров доставляют 60 тысяч отправлений от 11 тысяч клиентов. База данных состоит из 207 связанных друг с другом таблиц, в некоторых из которых встречается по 50 млн записей.
+
На сегодняшний день система «Курьерская служба» отметила своё четырнадцатилетние. За это время её положительно оценили и активно с нами сотрудничают более 300 компаний. Наши партнёры находятся в разных странах: Россия, Казахстан, Украина, Белоруссия, Киргизия, Латвия. С помощью нашего сервиса ежедневно 4,5 тысячи курьеров доставляют 60 тысяч отправлений от 11 тысяч клиентов.
 +
Сама созданная нами «Курьерская служба» состоит из 200 связанных друг с другом таблиц, в некоторых из которых встречается по 50 миллионов записей. Мы постоянно работаем над её совершенствованием, чтобы наши клиенты всегда были впереди конкурентов.
  
 
===Бизнес-модель===
 
===Бизнес-модель===
 +
Наших клиентов, как существующих, так и потенциальных (а еще больше, конечно, меня самого!) часто интересует вопрос успешности и финансовой стабильности нашей компании. Это естественно, т.к. в случае ухода компании с рынка покупатели системы лишаются поддержки и прочих сервисов, без которых система утрачивает возможность адаптироваться под меняющиеся условия рынка. С такой "мертвой" системы компании придется куда-то переходить в максимально сжатые сроки. Поэтому здесь я расскажу, как мы зарабатываем.
 +
 +
Я делю рынок курьерских компаний на 3 части:
 +
*'''Мелкие компании''' - стартапы и прочее, со штатом до 10 курьеров. Такие компании не очень интересно автоматизировать - выигрыш производительности труда от ведения базы данных, штрих-кодирования, расчета зарплаты и т.д. - минимальный, если вообще есть. Такие компании неплохо (если такое слово вообще применимо к подобным компаниям) себя чувствуют и в экселе, а учет отправлений сводится к фразе "ну я тебе давал отправление, ты его доставил?". Понятно, что для вменяемой автоматизации у такой компании нет ни денег ни потребности. Мы на такие компании никогда не нацеливались, и в свое время у нас получался неплохой симбиоз с системами вроде "Аурамы", которая позволяла подобной компании начать работать "в один клик" за 3 копейки. Это позволяло компании слегка подрасти, и при приближении к 10 сотрудникам их система переставала справляться, они переходили в следующую категорию и приходили к нам. "Конкуренты" "выращивали" нам клиентов! В последнее время ситуация изменилась: подобные системы стали дороже нашей, и клиенты из данной категории стали к нам приходить сразу. Надо, может, приподнять цены уже наконец? Подумаю.
 +
*'''Средние компании''' - со штатом курьеров от 10 до 200 курьеров. Это наша ниша рынка. Самая распространенная, созревшая к автоматизации. Здесь можно добиться действительно большого роста эффективности труда. В тоже время, как правило, компаниям из этой категории хватает функциональности нашей системы "из коробки", процесс внедрения прост и надежен. Хотелки по доработкам если и возникают, то уже в процессе работы, а не на старте, что сильно упрощает их реализацию.
 +
*'''Крупные компании''' - более 200 курьеров. Данная ниша гораздо меньше предыдущих, компании как правило уже чем-то автоматизированы, что создает много проблем при внедрении: в "их" системе что-то было реализовано по-другому, пользователям всегда не удобно переучиваться, они устраивают саботаж. Бизнес-процессы уже отлажены, и встроиться в них, повторить, нужно практически без репетиции. Нужно вести длительные переговоры, совещания, анализировать бизнес-процессы, составлять ТЗ на доработки для тех участков, которые у них уже были как-то реализованы, дорабатывать без тестирования на продакшене, как мы любим. В общем, очень много непродуктивной деятельности. В проекте внедрения занято куча народа, всякого рода <rspoiler text="руководители направлений">Риторический вопрос: Сколько руководителей нужно привлечь к проекту, чтобы его провалить?</rspoiler> и даже "менеджеры самого среднего звена". Вероятность успеха проекта внедрения граничит с авантюрой. Такие клиенты у нас тоже есть, в основном выросшие из 2-й категории. Не бросать же людей из-за того, что они выросли! Мы в ответе за тех, кого приручили ©.
 +
 +
Еще есть небольшие группы не профильных компаний, вроде интернет-магазинов, турагентств и прочее - можно не обсуждать.
 +
 +
Итак, наши клиенты из второй группы, со средним чеком в районе 20 т.р. в месяц, но их [http://courierexe.ru/our_clients.htm достаточно]. У нас нет <rspoiler text="якорного">Какое правильное слово кто-то придумал для обозначения того, что тянет вниз, не дает двигаться куда нужно!</rspoiler> клиента: поступления от самого крупного клиента не превышают 5% всего бюджета. Это позволяет мне быть действительно не предвзятым и уверенным в надежности выстроенной структуры. Так же, очень важный момент: это позволяет мне не играть в политику, балансируя между "хочу" отдельных клиентов и правильностью разработки с точки зрения системы, а ставить во главу угла именно архитектуру, гибкость, масштабируемость и поддерживаемость системы.
 +
 +
Бюджет, в основном, складывается из регулярных платежей наших клиентов: за аренду и поддержку. Продажа системы, равно как и платная доработка, в финансовом отношении мало эффективна, т.к. это разовые вещи, на которых построить надежный прогнозируемый бюджет невозможно. Подобные разовые платежи в сумме обеспечивают нам 10-15% бюджета, что, согласитесь, пренебрежимо мало. Поэтому мы ориентируемся на долгосрочное взаимовыгодное сотрудничество со всеми нашими клиентами. Мы заинтересованы в росте бизнеса всех наших клиентов, и способствуем этому всеми доступными нам способами.
 +
 +
===Эффективность===
 +
Моя главная задача - эффективность использования всех ресурсов для получения максимальной отдачи для бизнеса наших клиентов на каждый потраченный рубль. Для этого я применяю все возможные подходы. У каждого из этих методов есть свои плюсы и минусы, поэтому я постараюсь их все здесь описать, чтобы Вы понимали, откуда берутся некоторые минусы в работе с нами, и что Вы получаете взамен.
 +
====Команда====
 +
Для эффективной работы команда должна быть компактной. Оптимальный размер команды для разработки ПО - 7-15 человек. Это тот объем, который позволяет руководителю дотянуться до каждого сотрудника, проконтролировать работу, объединить усилия всех сотрудников в единый организм и комплексно, целенаправленно решать стратегические задачи. Понятно, что написать Windows с такой командой невозможно, ее нужно сильно расширять. Однако это требует существенного расширения сопутствующего персонала. К сожалению, речь идет не только о найме проект-менеджера на каждую группу по 7 человек (зарплаты которых измеряются сотнями тысяч рублей), но и раздутии штата прочими сотрудниками, напрямую в процессе разработки/сопровождения не занятыми, поскольку работу групп нужно координировать, большую задачу нужно разбить на блоки, требования, функциональность, методы тестирования, интерфейсы взаимодействия которых нужно полностью задокументировать. Объем технической документации при "правильном" подходе занимает больше времени и стоит дороже, чем сам процесс разработки. После разработки каждого куска его надо тестировать отдельными штатными единицами, а потом пытаться склеить эти блоки вместе. В случае же с компактной командой ее можно просто собрать вместе, и сказать: "Давайте сделаем вот это. Ты делаешь это, а ты - вон то, через 2 дня собираемся вместе и проверяем". Поэтому я стараюсь удержать размер команды в оптимальном диапазоне. Пусть мы не можем такими силами взяться за какие-то глобальные мегапроекты, зато предельно эффективно решаем конкретные текущие задачи, которые ставят перед нами наши клиенты.
 +
 +
Мы, конечно, разбираемся в предметной области. Я начинал свою карьеру с работы курьером еще в 2000-м году, потом в офисе курьерской службы. Коммерческий директор - обязательно с опытом руководящей работы в курьерской службе. Мы лично встречаемся, общаемся с клиентами. Остальные сотрудники обязательно начинают свою работу с изучения предметной области. Полное погружение в нее - обязательное условие нормальной работы каждого сотрудника. К сожалению, большинство разработчиков подходят к своей работе только с позиции "мы умеем писать код, нам заказчик скажет, что написать, мы сделаем". Лично сталкивался с "автоматизаторами", которые только от меня узнавали, что после распределения заказов по курьерам их нужно еще физически на складе сортировать, а не просто скинуть курьерам полученные списки. Поэтому мы прикладываем все усилия к тому, чтобы такими не быть.
 +
 +
====Задачи====
 +
Для максимизации эффективности труда необходимо выполнять только самые эффективные задачи. Есть такое <rspoiler text="правило 20 и 80 процентов">20% людей выпивают 80% пива. 20% работы приносит 80% пользы.</rspoiler>. Конечно, мы не делаем только 20% работы, но делаем 90%. Как мы выбираем наиболее востребованные задачи, чтобы не работать впустую?
 +
*Мы никогда не придумываем сами себе задачи. У нас есть много клиентов, которые "на местах" сталкиваются с живыми ситуациями, и передают нам свои пожелания. Зачем нам изобретать свой велосипед?
 +
*К нам постоянно поступает множество "хотелок" от клиентов. Им нужно как-то выдавать приоритеты. Для этого я их делю на 2 категории. Первая категория содержит:
 +
**То, что просят многие.
 +
**То, без чего реально процесс у клиента не работает.
 +
**То, что можно сделать быстро и без <rspoiler text="хвостов.">Бывает, что задача вроде быстрая и простая, но когда ее сделаешь, клиент начинает уточнять: "а нам надо не так, а сделайте вот так", и мы вязнем в переговорах, уточнениях того, что же ему на самом деле нужно, многократных переделках. А время идет и другие, серьезные задачи стоят. Такую задачу нужно поставить в очередь, запланировать на нее время чтобы все согласовать, утрясти и реализовать по четко поставленному ТЗ.</rspoiler>
 +
**То, что входит в поддержку пользователей.
 +
**То, за что <rspoiler text="платят.">Плата за доработку, как я буду писать ниже, не столько заработок, сколько демонстрация заинтересованности клиента в доработке. Так же, оплата работы предполагает установку конкретных сроков, которых мы должны придерживаться. Впрочем, что касается сроков, то выбирая между сделать наспех но к сроку, или завалить срок но сделать качественно я всегда выбираю второе.</rspoiler>
 +
Вторая категория - все остальное:
 +
**То, что просит только один клиент, и ему это не критично, он не считает это важным чтобы сделать платно.
 +
**То, что <rspoiler text="очень объемное">Месяц работы программиста, например.</rspoiler>, а польза не очевидна.
 +
**То, что <rspoiler text="не понятно, как делать.">Понятно, что было бы удобно, если бы программа сама доставляла отправления, или печатала на принтере зарплаты курьеров, но как это сделать мы ПОКА не знаем. Может придумаем в будущем?</rspoiler>
 +
Естественно, сначала мы делаем задачи из первой категории, и по остаточному принципу - остальные (даже если в теме обращения написано "ОЧЕНЬ ВАЖНО!!!"). Такой подход приводит к тому, что некоторые задачи могут стоять в очереди вечно. Но их процент не очень большой, а сделать все и сразу попасть в светлое будущее, конечно, невозможно.
 +
 +
====Экстремальное программирование====
 +
В своей работе в разной степени мы используем принципы [https://ru.wikipedia.org/wiki/Экстремальное_программирование экстремального программирования]. Мое самое любимое положение из него - код должен максимально быстро начинать приносить реальную пользу (прибыль!) нашим клиентам. При классическом подходе к разработке, как я уже писал, сначала пишется документация всей доработки, потом разбивается на подзадачи, реализуется, тестируется, отлаживается и т.д., на все это уходит куча времени и денег. Потом ее пытаются сдать заказчику, и тут оказывается, что задачу изначально не совсем так поняли. Чтобы этого всего избежать, мы сходу пишем небольшие куски, и сразу, даже без тестирования, отдаем заказчику. Да, при этом могут быть ошибки. Но заказчик сразу начинает пользоваться, решать свои бизнес-задачи, т.е. экономить деньги. Ошибки, замечания, пожелания, которые он обнаруживает уже в промышленной эксплуатации, а не на примере [https://ru.wikipedia.org/wiki/Научный_юмор#Сферический_конь_в_вакууме сферических коней в вакууме], как это делает тестировщик, в реальном времени передаются разработчикам и так же быстро устраняются. В результате мы получаем огромный прирост эффективности - в разы, если не на порядки. С одной стороны сильно сокращаются издержки на документирование, тестирование, случаи решения несуществующих задач, а с другой стороны - клиент получает самую свежую функциональность со скоростью горячих пирожков и сразу начинает на этом зарабатывать. Пусть эта функциональность и не обязательно полная или надежная - это лучше, чем ничего. Иногда задача даже может остаться не очень доделанной - главное, что она решает поставленную перед ней конкретную задачу на конкретных данных. Поэтому иногда бывает, что клиент пытается воспользоваться функцией, а она не работает, т.к. писалась для конкретной задачи. С точки зрения клиента это <rspoiler text="глюк">- Исправьте немедленно!!!</rspoiler>, а с нашей - это недофича, которой могло и не быть, и <rspoiler text="никто бы не узнал, что она могла быть">Если, конечно, она не заявлена в перечне функциональности системы: в этом случае мы должны обеспечить корректность ее работы в соответствии с документацией и/или здравым смыслом</rspoiler>.
 +
 +
====Коммуникация====
 +
Для оперативного решения задач необходимо всегда быть в тесном контакте. В рамках поддержки мы работаем на расстоянии телефонного звонка, многие вопросы решаются в реальном времени. Для руководителей компаний на 3-м тарифе поддержки мы предоставляем еще больший сервис: они могут звонить лично мне на мобильный, и получать консультации на максимально высоком уровне. Прямо в реальном времени, находясь, например, на встрече, можно подключить нашу компанию в моем лице к диалогу!
 +
 +
====Бюрократия====
 +
 +
====Поддержка====
 +
Поддержка системы является крайне важным элементом ее совершенствования. Когда мы видим, что с каким-то вопросом к нам обращаются регулярно - мы понимаем, что что-то там сделано не идеально, и это нужно исправлять.
 +
 +
====Эволюция====
 +
Наша компания, как и наша система, растет. Примерно на 30% в год. Есть плюсы:
 +
*Скорее всего мы не закроемся :-)
 +
*Система становится все более функциональной, и "из коробки" позволяет решать все больше задач.
 +
*Мы совершенствуем свои процессы, их надежность и эффективность постоянно повышаются. <spoiler text="Примеры">
 +
*Когда-то документы оформлялись вручную, и лицензионные ключи на аренду также делались вручную. Ключ после оплаты можно было ждать неделю, старожилы помнят.
 +
*Мы разработали и внедрили тикетную систему. Уже через несколько месяцев мы задавались вопросом "а как же мы работали до этого?". Сейчас через нее проходят все обращения, задачи. Она позволяет нам не потерять ни одного вопроса или хотелки (хотя не скрою, некоторые вопросы у нас могут висеть и очень долго, т.к. решения их пока нет. Но все-равно мы о них помним!)
 +
*Недавно мы сделали интерактивное [https://home.courierexe.ru/whatsnew средство отслеживания изменений] в системе. Теперь в реальном времени можно смотреть, что сделали программисты, по каким тикетам, в каких блоках.</spoiler>
 +
Но есть и минусы:
 +
*Система становится все сложнее, и любая доработка в ней требует все больше усилий. Это общая беда больших систем: по подсчетам Microsoft программисты тратят 90% времени на поиск места в коде их ERP-систем, куда нужно внести изменение, и только 10% - на написание этих изменений.
 +
*Уменьшается объем личного присутствия. Еще 5 лет назад я лично приезжал к каждому клиенту в Москве, с ноутбуком, и что-то для них дописывал. Но это и хорошо: компания гораздо лучше работает, когда она выстроена как система, а не ручное управление одним человеком.
 +
 +
==Отказ от ответственности==
 
==Что входит в покупку (аренду) системы==
 
==Что входит в покупку (аренду) системы==
 
==Что входит в поддержку==
 
==Что входит в поддержку==
Строка 15: Строка 77:
 
==Как получить качественную поддержку==
 
==Как получить качественную поддержку==
 
===Корректно обратиться в поддержку===
 
===Корректно обратиться в поддержку===
Когда человек обращается за помощью, он хочет получить максимально квалифицированную и быструю поддержку. Для того, чтобы упростить и ускорить этот процесс есть несколько пунктов, которые нужно выполнить:
+
Мы готовы оказать нашим клиентам максимальную поддержку и помощь, и в то же время ждём от них разумного и делового подхода, который позволит максимально упростить процесс получения и рассмотрения Вашей заявки. В частности, есть несколько пунктов, которые стоит знать, если Вы нуждаетесь в помощи.
 +
 
 +
Для того, что бы проблема была решена максимально быстро и правильно, нам нужна вся необходимая информация. Это нормально и логично, поэтому, собираясь связываться с нами, необходимо:
 +
 
 +
*'''Обратиться "по адресу"''' Обратиться в поддержку можно по будням '''(а теперь и в выходные с 10 до 18!)''' (в соответствии с трудовым календарем Российской Федерации) с 8:00 до 21:00 по московскому времени любым удобным для Вас способом: Почта [mailto:support@courierexe.ru support@courierexe.ru], Телефон +7 (495) 987-17-12, бесплатный по России 8 (800) 707-90-35 или skype: courierexe, courierexe1, courierexe2, courierexe3.
 +
 
 +
*'''Представиться''' При обращении любым из способов Вам понадобится представиться: назвать ФИО и компанию, в которой Вы работаете. Возможно, продиктовать телефон и адрес электронной почты для обратной связи. В случае отсутствия данной информации (особенно по почте) специалисты технической поддержки, прежде чем начать решать проблему, сначала будут выяснять эту информацию, на что уходит драгоценное время. Мы не принимаем анонимки ни в каком виде! Особенно частая ошибка - когда пользователи пишут с общей почты организации, вида "info@courier.ru" и в подписи, вместо контакта человека написано что-то вроде "С уважением, команда курьерской службы". Нужна конкретная заявка от конкретного человека: мы должны знать, с чем работаем.
 +
 
 +
*'''Предоставить полную информацию''' Очень важно предоставить исчерпывающую информацию о своем вопросе. Номер заказа, с которым возникла проблема, или название клиента, если проблема с клиентом. Обратите внимание: если проблема касается сразу группы заказов – это хорошо, что Вы например, заметили "Во всех позавчерашних заказах происходит ...", и это даже может нам помочь, но номер конкретного заказа, хотя бы одного из той группы, нужно назвать. Сотрудник технической службы должен увидеть проблему, иначе может случиться так, что, просмотрев несколько заказов и не увидев никаких ошибок, он сочтёт, что дело в «человеческом факторе» и закроет тикет. Это абсолютно нормально и логично: люди ошибаются намного чаще машин! Если вопрос по отчету – укажите точную последовательность действий для его получения, какие пункты меню выбирали, какие данные вводили, приложите сам отчет. Если загружаете файлы – обязательно приложите исходные файлы и опишите, как загружаете. Будьте точны в формулировках! Неправильно сформулированное описание проблемы может привести к тому, что наш специалист будет искать возникшую проблему совсем не там, где она находится, и потеряет Ваше и наше время. Например, после получения формулировки "В подключении дата стоит не такая" последует вопрос о том, что же такое, в Вашем представлении "подключение", и эту потерю времени можно предотвратить, указав понятные нашим сотрудникам термины, а еще лучше – приложить скрин-шот, на котором было бы сразу видно, и какую именно Вы имеете в виду дату.
  
*'''Обратиться по адресу''' Обратиться в поддержку можно по будням (в соответствии с трудовым календарем Российской Федерации) с 8:00 до 21:00 по московскому времени любым удобным для Вас способом: Почта [mailto:support@courierexe.ru support@courierexe.ru], Телефон +7 (495) 987-17-12 или skype: courierexe, courierexe1, courierexe2.
+
*'''Убедиться в создании задачи''' При любом обращении сотрудник технической поддержки должен создать так называемый "тикет" - это номер обращения по одному конкретному вопросу, в рамках которого решается Ваша задача. Тикет - это крайне удобное средство контроля за выполнением задач, он гарантирует, что ни один вопрос не потеряется бесследно. О создании тикета Вам на электронную почту придет письмо. Так же, Вы можете просматривать свои тикеты в [https://home.courierexe.ru личном кабинете], и контролировать - что делается, а на что от Вас ожидают реакции.
  
*'''Представиться''' При обращении любым из способов Вам понадобится представиться: назвать ФИО и компанию, в которой Вы работаете. Возможно, продиктовать телефон и адрес электронной почты для обратной связи. В случае отсутствия данной информации (особенно по почте) специалисты технической поддержки, прежде чем начать решать проблему, сначала будут выяснять эту информацию, на что уходит драгоценное время. Мы не принимаем анонимки ни в каком виде! Особенно частая ошибка - когда пользователи пишут с общей почты организации, вида "info@courier.ru" и в подписи, вместо контакта человека написано что-то вроде "С уважением, команда курьерской службы".
+
Условия, описанные выше, нормальны и понятны любому здравомыслящему человеку, но часто из-за волнения, собственных проблем клиентов и по другим причинам мы получаем заявки без необходимых нам для выполнения поставленных задач сведений. Вместо быстрого и эффективного решения вопроса начинается длинная переписка с выяснением, кто и откуда прислал претензию и что же его, собственно, не устраивает.
  
*'''Предоставить полную информацию''' Очень важно предоставить исчерпывающую информацию о своем вопросе. Номер заказа, с которым возникла проблема, или название клиента, если проблема с клиентом. Обратите внимание: если проблема касается сразу группы заказов - это хорошо, что Вы например, заметили "Во всех позавчерашних заказах происходит ...", и это даже может нам помочь, но номер конкретного заказа, хотя бы одного из той группы, нужно назвать. Сотрудник службы технической поддержки должен будет посмотреть на этот заказ, и увидеть, что именно Вам не нравится - не надо заставлять его рыться в вашей программе в поисках заказов, подходящих под какие-то условия, в противном случае он найдет первый попавшийся заказ, не увидит в нем проблемы и закроет тикет, и будет абсолютно прав. Если вопрос по отчету - укажите точную последовательность действий для его получения, какие пункты меню выбирали, какие данные вводили, приложите сам отчет. Если загружаете файлы - обязательно приложите исходные файлы и опишите, как загружаете. Обратите внимание на разницу терминологии, например: У нас есть понятие "Заказ" (вкладка заказы). В разных компаниях его называют "Заявка", "Загрузка", "Реестр", "Подключение", "База", "Рассылка"  - список можно продолжать бесконечно. Очевидно, что на вопрос "В подключении дата стоит не такая" последует вопрос о том, что же такое, в вашем представлении "подключение", и эту потерю времени можно предотвратить указав понятные нашим сотрудникам термины, а еще лучше - приложить скрин-шот, на котором было бы сразу видно, и какую именно Вы имеете в виду дату.
+
'''Важно! Такие задачи, как наименее продуктивные, получают низший приоритет, поэтому потратьте пять минут и сформулируйте всё в деловом ключе: чётко, полно, объективно.'''
  
С одной стороны, приведенные здесь рекомендации, казалось бы, очевидны каждому. Однако, факт: до 50% рабочего времени сотрудников поддержки уходит на "вытягивание клешнями" указанных сведений. А самое обидное, когда из-за того, что человек, почему-то, элементарно не сообщил кто он, откуда, номер заказа, на который жалуется - решение его вопроса откладывается на длинную переписку с выяснениями. Хочу так же обратить внимание на то, что подобные задачи, требующие длительной переписки для выяснения, получают низший приоритет, как наименее продуктивные.
+
'''UPDATE''' В последнее время получил несколько вопросов о программе по Whatsapp'y на личный мобильный телефон с неизвестных номеров. Такие обращения сразу отмечаются как спам, и номера банятся. '''''Коллеги! Ну давайте уже уважать друг друга!'''''
  
 
===Контроль качества===
 
===Контроль качества===
 
Если Вы не удовлетворены качеством решения Вашего вопроса, есть несколько способов повлиять на ситуацию:
 
Если Вы не удовлетворены качеством решения Вашего вопроса, есть несколько способов повлиять на ситуацию:
 
*'''Проголосовать по телефону''' После окончания телефонного разговора с нашими специалистами, система предлагает поставить им оценку.
 
*'''Проголосовать по телефону''' После окончания телефонного разговора с нашими специалистами, система предлагает поставить им оценку.
*'''Проголосовать из письма''' (разрабатывается) В письме об изменении тикета по Вашему обращению Вам предлагают выбрать оценку.
+
*'''Проголосовать из письма''' В письме об изменении тикета по Вашему обращению Вам предлагают выбрать оценку.
*'''Обратиться к директору''' По почте [mailto:admin@courierexe.ru admin@courierexe.ru] или, в экстренных ситуациях, даже телефону: +7 (916) 114-79-92. При обращении нужно представиться, назвать номер тикета и/или максимально точное время телефонного общения с нашими сотрудниками - мы поднимем историю вопроса, записи телефонных разговоров, дадим оценку ситуации и обязательно примем меры!
+
*'''Обратиться к директору''' По почте [mailto:admin@courierexe.ru admin@courierexe.ru] или, в экстренных ситуациях, даже телефону: +7 (916) 114-79-92. При обращении нужно представиться, назвать номер тикета и/или максимально точное время телефонного общения с нашими сотрудниками - я лично подниму историю вопроса, записи телефонных разговоров, дам оценку ситуации и обязательно приму меры! Надо понимать, что голословные, не проверяемые, претензии вроде "я звонил когда-то, не помню когда, и мне плохо ответили" я принять не могу.
  
 
===Почему не нужно обращаться к программистам или директору===
 
===Почему не нужно обращаться к программистам или директору===
 +
 +
Ответ на этот вопрос очевиден: первое, что Вас спросят: какой ответ Вы получили, обратившись в службу поддержки? Не забывайте, что все мы – люди, у всех есть масса важных и нужных дел, и отрывать от них и требовать внимания к себе в обход наших внутренних корпоративных правил – не лучший способ заручиться нашей поддержкой. Вас просто направят прочитать, кому нужно звонить в случае возникновения проблем, а приоритет Вашего дела может быть понижен.
 +
 +
==Почему вы не сообщаете об изменениях?==
 +
===Текущие изменения функциональности и логики работы===
 +
Сообщаем, и постоянно! На [https://home.courierexe.ru/whatsnew специальной странице] в реальном времени публикуются все изменения. Зайдите, и посмотрите на нее. Вряд ли Вы хотите ежедневно получать длинные простыни с различными изменениями и дополнениями, вносимыми в программу. Любое изменение вначале анализируется на предмет того, оно отразится на работе существующих процессов наших клиентов. Мы подходим к этому с особой тщательностью. Именно поэтому нам очень важно знать, как Вы используете систему, и стараться своевременно предотвратить использование ее механизмов не по назначению. Однако клиентов у нас сотни, процессов у них тысячи, а мы одни, и поэтому иногда, очень редко, бывают и несовместимые изменения, которые мы всегда стараемся быстро исправить, если так случилось. Единственный способ это надежно предотвратить - никогда ничего не менять. Не делать никаких доработок, не обновлять систему клиентам, не добавлять новых функций, интеграций, поддержки нового оборудования и т.д. Наверное, это не совсем то, что вы ожидаете от поставщика ПО, верно?
 +
 +
===Добавление новых функций===
 +
Мы постоянно добавляем новые функции, расширяющие возможности системы.  Однако на работу такой функции оказывают влияние тысячи процессов, уже происходящих в системе. Поэтому мы вначале тестируем её на внутренних серверах, да и потом долгое время следим за корректностью её работы: собираем информацию об опыте использования, дописываем, улучшаем, переделываем. Поэтому, сразу после выхода новую функцию нет смысла документировать – она еще будет меняться и не раз.
 +
В случае возникновения погрешностей – в процессе эксплуатации они выявляются и устраняются. У программистов есть такая поговорка "Каждая последняя ошибка, найденная в программе, на самом деле является предпоследней". Т.о. мы никогда не можем сказать, какой-то процесс идеален. Он может быть таковым до очередного улучшения, которое начнёт с ним конфликтовать, или возникновения ещё какой либо особой ситуации. 
 +
 +
Наше правило: спустя год, например, если функция прижилась, оказалась полезной и ею пользуются, возможные недочёты появляются в исключительных случаях и легко устранимы –  можно утверждать, что она рабочая.
 +
 +
Отсюда вытекает понимание, что у новой функции нет одного момента, когда она становится продуктом, и о ней нужно всем сообщить. Есть только постепенно растущая степень нашей уверенности в этой функции. Если Вы ранее обращались к нам с вопросом о добавлении подобной функции – мы стараемся об этом помнить, и сообщить Вам о ней, но это тоже не всегда возможно. Поэтому рекомендуется периодически просматривать вики – как различные описания функций, так и страницу истории версий.
 +
 +
==Ошибки в программе==
  
 
==Как осуществить доработку==
 
==Как осуществить доработку==
 
===Почему мы задаем вопросы===
 
===Почему мы задаем вопросы===
Как я уже писал, в день, в среднем, мы обрабатываем 30 обращений. Из них 2-3 шт звучат примерно как "А добавьте в карточку курьера галку "Выдан фирменный портфель"" (№1) или "А сделайте, чтобы на каждый район на карте можно было назначить отдельного курьера на каждый день недели" (№2). "А добавьте в отчет "количество доставок по клиентам"" поле "Среднее отношение количества выездов курьера к километражу между точками, умноженному на средний счет клиента" (№3). Посчитаем: за 200 (примерно) рабочих дней в году мы бы за год добавили бы минимум 500 таких галок, кнопок и полей, а за 10 лет - 5000. На самом деле - добавили бы гораздо больше, т.к. они тянут друг друга: По №1 я задаю вопрос клиенту: А завтра Вы, наверное, попросите добавить галку "Выдан планшет", а потом "Выдан проездной", плащ-палатка, футболка и солнечные очки. Они говорят "Ну, видимо, да...". Представляете, насколько система была бы не управляема сейчас? На практике, конечно, мы находим решение задач, главное - понимать, что именно он хочет. В первой - клиенту нужно учитывать выдачу сотрудникам и прием неограниченного количества видов инвентаря. И так в модуле складского учета, в номенклатуре, появилась галка "инвентарь", и клиент, помимо того, что просил, получил еще средство контроля за остатками своих фирменных портфелей на складе. По второму пункту - понятно же, что в 95% случаев на одном районе курьер будет работать каждый день недели, а то, что в выходные у них работает другой курьерский состав на тех же районах - это исключение. С гораздо большей вероятностью, вместо разных курьеров по дням недели, нашим клиентам понадобятся разные курьеры в зависимости от массы отправления (пешие/вело/авто курьеры), или срочности. Если бы мы добавляли возможность указания разных курьеров для всех этих вариаций (а сколько их еще можно придумать!), схемами на карте стало бы невозможно пользоваться. Понимая задачу, которую решает клиент, мы делаем возможность копирования схем. И клиент может нарисовать районы, скопировать схему, и 2 схемы назвать "будни" и "выходные", и назначить разных курьеров. А можно - сделать 7 схем по дням недели. А можно - отдельно для пеших, и отдельно - для автокурьеров. По третьему эпизоду совсем все просто: Делается отдельный отчет в "доп. возможности", в котором выводятся те показатели, которые нужны клиенту, считающиеся по его ТЗ. Вот, кстати, про отчеты частая проблема недопонимания, на которую уходит много времени и нервов: Обращается клиент с просьбой добавить ему в раздел "Адреса" какое-то поле, например, количество поездок по отправлению в выдаче. На самом деле, добавление такого поля практически исключено по чисто технической причине: для вывода отправлений серверу придется для каждого из них "заглядывать" в "выдачу", и считать их количество. Для 99.999% задач, решаемых пользователями в адресах, эти данные не нужны, но их расчет будет происходить, и замедлять работу всех систем всех наших клиентов. Но возникает и другой вопрос: "зачем вам это поле?". А клиент говорит "Мы будем выводить это поле, выгружать все 10 тыс. заказов с ним в эксель, там формулами считать наценку за лишние поездки, а потом загружать обратно этот эксель с рассчитанными ценами. Сейчас у нас круглосуточно работают 3 человека, которые в каждое отправление заходят, открывают закладку "История выдачи", смотрят, сколько там строк, и вписывают в эксель." Занавес! :-) Чтобы Вы понимали - я не сильно утрирую, когда это пишу: люди действительно совершают ненужные подвиги каждый день. Здесь, если подходить формально, можно просто сказать "Нет, мы этот столбец не добавим". Если немного подумать - можно сделать отдельный отчет, который выведет в эксель требуемый клиентом показатель. Но если подойти к задаче действительно качественно, то в тариф клиента можно добавить услугу повторной доставки, которая сразу будет рассчитываться по тому алгоритму, который нужен клиенту, и процесс расчетов в экселе выпадет полностью, значительно упростив всем жизнь. Чем мы и занимаемся. Главный принцип хорошего программиста гласит "Клиенту надо дать не то, что он просит, а то, что ему действительно нужно". Тут Вы, наверное, думаете, что пишут Вам тут про каких-то дураков, а Вы-то действительно знаете, как правильно решать Вашу проблему, и не нужно больше ничего выяснять, надо делать то, что Вы говорите. Но на самом деле, люди придумывают такие не конструктивные подходы не потому, что они глупые, а по тому, что они не профессионалы в данной области, они не знают всех технических возможностей и невозможностей. Поэтому есть мы - мы подходим к решению каждой бизнес-задачи системно, прилагая все усилия, чтобы понять корень проблемы, и тогда предлагаем такое решение, которое максимально автоматизирует Ваши процессы, и при этом будет соответствовать базовым принципам построения информационных систем, будет учитывать возможное развитие предложенных процессов.
+
[[Файл:Workflowrus.jpg|thumb|450px|right|Старый баян о недопонимании при разработке, заботливо переведенный на русский для Вас лично мной.]]
 +
Как я уже писал, в день, в среднем, мы обрабатываем 30 обращений. Из них 2-3 шт звучат примерно как "А добавьте в карточку курьера галку "Выдан фирменный портфель"" (№1) или "А сделайте, чтобы на каждый район на карте можно было назначить отдельного курьера на каждый день недели" (№2). "А добавьте в отчет "количество доставок по клиентам"" поле "Среднее отношение количества выездов курьера к километражу между точками, умноженному на средний счет клиента" (№3).  
 +
 
 +
За ~200 рабочих дней в году мы добавили бы минимум 500 таких галок, кнопок и полей, а за 10 лет - 5000. На самом деле - гораздо больше, т.к. они тянут друг друга.
 +
 
 +
По первому примеру: А завтра Вы, наверное, попросите добавить галку "Выдан планшет", а потом "Выдан проездной", плащ-палатка, футболка и солнечные очки? Клиент говорит "Ну, видимо, да...". Представляете, насколько система была бы не управляема сейчас? На практике, конечно, мы находим решение задач, главное - понимать, что именно он хочет. В данном случае клиенту нужно учитывать выдачу сотрудникам и прием неограниченного количества видов инвентаря. И так в модуле складского учета, в номенклатуре, появилась галка "<rspoiler text="инвентарь">Сейчас она уже преобразилась в выпадающий список "Тип номенклатуры", поскольку наши клиенты пожелали еще вести учет расходных материалов вроде "незамерзайки", и упаковки, которую система еще и [[Модуль складского учета#Расчет упаковки|подбирать]] под конкретные товары умеет!</rspoiler>", и клиент, помимо того, что просил, получил еще средство контроля за остатками своих фирменных портфелей на складе.  
 +
 
 +
По второму пункту - понятно же, что в 95% случаев на одном районе курьер будет работать каждый день недели, а то, что в выходные у них работает другой курьерский состав на тех же районах - это исключение. С гораздо большей вероятностью, вместо разных курьеров по дням недели, нашим клиентам понадобятся разные курьеры в зависимости от массы отправления (пешие/вело/авто курьеры), или срочности. Если бы мы добавляли возможность указания разных курьеров для всех этих вариаций (а сколько их еще можно придумать!), схемами на карте стало бы невозможно пользоваться. Понимая задачу, которую решает клиент, мы делаем возможность копирования схем. И клиент может нарисовать районы, скопировать схему, и 2 схемы назвать "будни" и "выходные", и назначить разных курьеров. А можно - сделать 7 схем по дням недели. А можно - отдельно для пеших, и отдельно - для автокурьеров.
 +
 
 +
По третьему эпизоду совсем все просто: Делается отдельный отчет в "доп. возможности", в котором выводятся те показатели, которые нужны клиенту, считающиеся по его ТЗ.
 +
 
 +
Очень частая проблема недопонимания: отчеты. Обращается клиент с просьбой добавить ему в раздел "Адреса" какое-то поле, например, количество поездок по отправлению в выдаче. На самом деле, добавление такого поля практически исключено по чисто технической причине: для вывода отправлений серверу придется для каждого из них "заглядывать" в "выдачу", и считать их количество. Для 99.999% задач, решаемых пользователями в адресах, эти данные не нужны, но их расчет будет происходить, и замедлять работу всех систем всех наших клиентов. Но возникает и другой вопрос: "зачем вам это поле?". А клиент говорит "Мы будем выводить это поле, выгружать все 10 тыс. заказов с ним в эксель, там формулами считать наценку за лишние поездки, а потом загружать обратно этот эксель с рассчитанными ценами. Сейчас у нас круглосуточно работают 3 человека, которые в каждое отправление заходят, открывают закладку "История выдачи", смотрят, сколько там строк, и вписывают в эксель." Занавес! :-) Чтобы Вы понимали - я не сильно утрирую, когда это пишу: люди действительно совершают ненужные подвиги каждый день. Здесь, если подходить формально, можно просто сказать "Нет, мы этот столбец не добавим". Если немного подумать - можно сделать отдельный отчет, который выведет в эксель требуемый клиентом показатель. Но если подойти к задаче действительно качественно, то в тариф клиента можно добавить услугу повторной доставки, которая сразу будет рассчитываться по тому алгоритму, который нужен клиенту, и процесс расчетов в экселе выпадет полностью, значительно упростив всем жизнь. Чем мы и занимаемся. '''Главный принцип хорошего программиста гласит "Клиенту надо дать не то, что он просит, а то, что ему действительно нужно".''' Тут Вы, наверное, думаете, что пишут Вам тут про каких-то дураков, а Вы-то (именно Вы!) действительно знаете, как правильно решать Вашу проблему, и не нужно больше ничего выяснять, надо делать то, что Вы говорите. Но на самом деле, люди придумывают такие не конструктивные подходы не потому, что они глупые, а потому, что они не профессионалы в данной области, они не знают всех технических возможностей и невозможностей. Поэтому есть мы - мы подходим к решению каждой бизнес-задачи системно, прилагая все усилия, чтобы понять корень проблемы, и тогда предлагаем такое решение, которое максимально автоматизирует Ваши процессы, и при этом будет соответствовать базовым принципам построения информационных систем, будет учитывать возможное развитие предложенных процессов.
  
Надеюсь, что данная статья поможет нам с Вами лучше друг друга понимать, и работать максимально слаженно на общее благо.
+
====А я все-равно не скажу, это моя коммерческая тайна!====
 +
С нами нужно работать как с врачом: нужно просто <rspoiler text="доверять">Мы понимаем всю степень деликатности вопросов, и, если бы мы не соблюдали "врачебную тайну", наверное, не смогли бы столько лет успешно работать с нашими клиентами.</rspoiler>, а все, что не скажете сделает хуже только вам. Если это для вас не приемлемо - лучше пишите сами. Причем в прямом смысле сами лично, а не с помощью наемных программистов.
  
 
===Почему на доработки требуется время===
 
===Почему на доработки требуется время===
Строка 43: Строка 141:
 
===Почему доработки стоят денег===
 
===Почему доработки стоят денег===
 
Иногда наши клиенты говорят "Я же придумываю вам функциональность, которую вы включите в свою систему и она станет лучше, вы это будете продавать, почему я должен платить за разработку?" На это у нас есть ряд ответов:
 
Иногда наши клиенты говорят "Я же придумываю вам функциональность, которую вы включите в свою систему и она станет лучше, вы это будете продавать, почему я должен платить за разработку?" На это у нас есть ряд ответов:
*Мы практически не зарабатываем на продажах. На самом деле, мы и на доработках не зарабатываем. Продажи и доработки вместе составляют менее 15% нашего оборота (см. "бизнес-модель"). А увеличение стоимости системы за счет какой-то отдельно взятой доработки и вовсе лежит в пределах погрешности любого измерения.  
+
*Мы практически не зарабатываем на продажах. На самом деле, мы и на доработках не зарабатываем. Продажи и доработки вместе составляют менее 15% нашего оборота (см. [[#Бизнес-модель|бизнес-модель]]). А увеличение стоимости системы за счет какой-то отдельно взятой доработки и вовсе лежит в пределах погрешности любого измерения.  
 
*Вся та функциональность, которая сейчас есть в системе, и которую Вы приобретаете за смешные, для подобных систем, деньги, так же была до Вас кем-то придумана и оплачена, что позволяет Вам сразу пользоваться всеми этими идеями.
 
*Вся та функциональность, которая сейчас есть в системе, и которую Вы приобретаете за смешные, для подобных систем, деньги, так же была до Вас кем-то придумана и оплачена, что позволяет Вам сразу пользоваться всеми этими идеями.
 
*Мы, естественно, не все доработки делаем платно. При принятии решения о стоимости и сроках выполнения доработки мы опираемся на множество факторов, таких, как востребованность (возможно, потенциальная) другими нашими клиентами, трудозатратность, реальная необходимость доработки именно для Вашего процесса, обслуживаемость данной функциональности в будущем. И на практике, большинство доработок мы делаем по себестоимости. Некоторые - бесплатно, некоторые, если доработка нужна только вам, и больше о ней никто не спрашивал и подобных процессов больше ни у кого нет - то по рыночной цене. Бывают и такие доработки, за которые мы выставляем завышенный ценник, если видим, что подобная доработка может негативно сказаться на стабильности, скорости работы системы, ее масштабируемости. В этом случае ценой можно показать клиенту, что другое решение правильнее, дешевле, а клиент может, так же деньгами, сказать что ему это действительно нужно, что ему это выгодно, и он действительно будет этим пользоваться.
 
*Мы, естественно, не все доработки делаем платно. При принятии решения о стоимости и сроках выполнения доработки мы опираемся на множество факторов, таких, как востребованность (возможно, потенциальная) другими нашими клиентами, трудозатратность, реальная необходимость доработки именно для Вашего процесса, обслуживаемость данной функциональности в будущем. И на практике, большинство доработок мы делаем по себестоимости. Некоторые - бесплатно, некоторые, если доработка нужна только вам, и больше о ней никто не спрашивал и подобных процессов больше ни у кого нет - то по рыночной цене. Бывают и такие доработки, за которые мы выставляем завышенный ценник, если видим, что подобная доработка может негативно сказаться на стабильности, скорости работы системы, ее масштабируемости. В этом случае ценой можно показать клиенту, что другое решение правильнее, дешевле, а клиент может, так же деньгами, сказать что ему это действительно нужно, что ему это выгодно, и он действительно будет этим пользоваться.
*Если бы мы принимали все идеи к разработке бесплатно, то каждый наш пользователь генерировал бы идеи каждый день, не заботясь о качестве этих идей, их реальной востребованностью в его процессе. Подходил бы с позиции "ну вы сделайте, вдруг пригодится". При этом наш ресурс разработки, как и любой другой ресурс в этом мире, ограничен. Поэтому задачи в работу принимаются либо платно, либо, если их выгода очевидна - бесплатно или дешево, либо, в рамках поддержки, но там тоже есть лимит трудозатрат, включенных в стоимость поддержки, поэтому клиенту приходится подходить ответственно к генерации идей.
+
*Если бы мы принимали все идеи к разработке бесплатно, то каждый наш пользователь генерировал бы идеи каждый день, не заботясь о качестве этих идей, об их реальной востребованности в его процессе. Подходил бы с позиции "ну вы сделайте, вдруг пригодится". При этом наш ресурс разработки, как и любой другой ресурс в этом мире, ограничен. Поэтому задачи в работу принимаются либо платно, либо, если их выгода очевидна - бесплатно или дешево, либо, в рамках поддержки, но там тоже есть лимит трудозатрат, включенных в стоимость поддержки, поэтому клиенту приходится подходить ответственно к генерации идей.
 +
*Не нужно считать нас "по ту сторону баррикад", пытаясь получить как можно больше за как можно меньше. Мы - продолжение вашей команды, ваши сотрудники. Мы для вас хорошо работаем, а вы - хорошо платите. Лично я всегда с удовольствием повышаю зарплаты сотрудникам. Если я повышаю, это значит сотрудник принес мне больше прибыли, значит я стал богаче. Сотрудник и дальше будет лучше работать и проносить еще больше прибыль! Это ли не повод для радости?
 +
*Для еще более активного развития, решения ваших задач, нам нужно расширяться: нанимать больше программистов, руководителей, специалистов поддержки, платить им зарплаты. Экономя сейчас, пытаясь получить услугу бесплатно, вы стреляете себе в ногу: так завтра нам некем будет решать ваши задачи!
  
 +
====Интеграции====
 
Наиболее "больная" тема платных разработок в последнее время - интеграции. Себестоимость разработки интеграции с партнером начинается от 100 т.р., и это объективная реальность. Почему? Дело в том, что в большинстве случаев, одна только техническая документация под API какой-либо компании - это 50-ти страничный документ, описывающий методы, поля, структуры данных и подходы к организации обмена информацией, как правило, чуждые нашей системе (и любой другой, кроме той, от которой приводится документация). Данные нужно адапировать. Статусы нужно транслировать. Далеко не всегда понятно, откуда именно брать требуемые данные, и куда складывать ответные, т.к. объектов, придуманных партнерами в нашей системе просто нет. В большинстве случаев на это еще накладывается "сырость" программного кода на чужой стороне - он работает не так, как описано в документации, и программисты на той стороне на ходу что-то дописывают и исправляют. В лучшем случае исправляют, а в худшем - они просто не идут на контакт. А в случае ошибки в передаче данных приходится поднимать всю историю, трассировать работу ПО, сравнивать данные и т.д. - это большая и кропотливая работа. Самое печальное, что через месяц-другой успешной работы, вдруг что-то ломается. Мы получаем негатив - клиент звонит с претензиями, что не может работать и т.д., мы сутки выясняем, в чем проблема, и оказывается, что партнер просто молча изменил свое API. Поэтому - да, мы делаем интеграции себе в убыток с такими популярными партнерами как СДЭК или Боксберри. Но если Вам нужно интегрироваться с каким-то мало известным партнером, клиентом или сервисом - это стоит денег, причем скорее всего не только разработка интеграции, но и ее поддержка, т.к. сюрпризы подстерегают нас на всем протяжении совместной работы. Наиболее простые интеграции - с провайдерами SMS. Как правило, их API достаточно простое, и программист может его настроить за 1 рабочий день. Однако, это 5 т.р.+ обновление системы, которое тоже бывает платным. В большинстве случаев это не выгодно делать, если какой-то провайдер Вам позвонил, и предложил цену сообщения на 3-5 копеек меньше, чем Вы платите сейчас.
 
Наиболее "больная" тема платных разработок в последнее время - интеграции. Себестоимость разработки интеграции с партнером начинается от 100 т.р., и это объективная реальность. Почему? Дело в том, что в большинстве случаев, одна только техническая документация под API какой-либо компании - это 50-ти страничный документ, описывающий методы, поля, структуры данных и подходы к организации обмена информацией, как правило, чуждые нашей системе (и любой другой, кроме той, от которой приводится документация). Данные нужно адапировать. Статусы нужно транслировать. Далеко не всегда понятно, откуда именно брать требуемые данные, и куда складывать ответные, т.к. объектов, придуманных партнерами в нашей системе просто нет. В большинстве случаев на это еще накладывается "сырость" программного кода на чужой стороне - он работает не так, как описано в документации, и программисты на той стороне на ходу что-то дописывают и исправляют. В лучшем случае исправляют, а в худшем - они просто не идут на контакт. А в случае ошибки в передаче данных приходится поднимать всю историю, трассировать работу ПО, сравнивать данные и т.д. - это большая и кропотливая работа. Самое печальное, что через месяц-другой успешной работы, вдруг что-то ломается. Мы получаем негатив - клиент звонит с претензиями, что не может работать и т.д., мы сутки выясняем, в чем проблема, и оказывается, что партнер просто молча изменил свое API. Поэтому - да, мы делаем интеграции себе в убыток с такими популярными партнерами как СДЭК или Боксберри. Но если Вам нужно интегрироваться с каким-то мало известным партнером, клиентом или сервисом - это стоит денег, причем скорее всего не только разработка интеграции, но и ее поддержка, т.к. сюрпризы подстерегают нас на всем протяжении совместной работы. Наиболее простые интеграции - с провайдерами SMS. Как правило, их API достаточно простое, и программист может его настроить за 1 рабочий день. Однако, это 5 т.р.+ обновление системы, которое тоже бывает платным. В большинстве случаев это не выгодно делать, если какой-то провайдер Вам позвонил, и предложил цену сообщения на 3-5 копеек меньше, чем Вы платите сейчас.
  
 
====Как сделать дешевле====
 
====Как сделать дешевле====
 +
Давайте разговаривать! Сейчас при оценке задачи, ее объема и стоимости мы исходим из того, что есть некоторое ТЗ, которое нужно согласовать, реализовать и поддерживать. И всегда есть риск что-то не учесть, потратить на какой-то блок не 1 день, как планировалось, а неделю. Это все, конечно, приходится закладывать в цену и сроки. На рынке, однако, есть и другие способы взаимодействия. Например, мы можем совместно проработать экономику того или иного процесса, посчитать, сколько это должно приносить прибыли и отталкиваться от нее - как в сторону упрощения и удешевления разработки, так и, где это оправдано цифрами - сжатия сроков, установки более точной задачи и т.д.
 +
 +
===Почему доработки доступны всем===
 +
Иногда наши клиенты говорят "Я же сам придумал функциональность, и я оплачиваю ее разработку. Она должна быть нашим конкурентным преимуществом и не должна доставаться конкурентам". Отвечаю:
 +
* Если доработка полезная еще кому-то: Представьте, что мы с Вами договорились на такие условия - вы платите (с наценкой за эксклюзивность), мы делаем только для вас. Через месяц к нам приходит другой клиент и просит примерно тоже самое. Мы должны ему отказать в самой возможности реализации его хотелки? Или мы должны взять с него денег как за обычную, не эксклюзивную доработку, и открыть эту функциональность всем остальным?
 +
* Если доработка не полезная другим: Я понимаю, что вы свято верите в то, что именно ваша идея - самая нужная всем. Но на практике - большинством доработок надо людей еще заставить пользоваться, если мы знаем, что они им полезны. А в других случаях и заставить не удастся.
 +
* Вы тоже получаете все доработки от других клиентов. И из этого состоит вся наша система. Если бы все заказывали доработки только для себя - наша система не существовала бы. И вам пришлось бы нанимать программистов и писать систему самостоятельно с нуля. Собственно, что вам мешает сделать это сейчас? То, что наша система заведомо впереди? Это и доказывает правильность нашей политики разработки.
  
 
===Примеры доработок===
 
===Примеры доработок===
 
====Правильные задачи====
 
====Правильные задачи====
 
====Не правильные задачи====
 
====Не правильные задачи====
 +
 +
==Почему обновления платные==
 +
Вы купили систему и пользуетесь. В это время наши программисты работают, реализуют множество новых функций, улучшают существующие. Клиенты генерируют идеи, оплачивают их разработку, платят за поддержку, участвуют в тестировании новых функций. Согласитесь, не справедливо, если вы просто придете и все это даром получите? Так же сам процесс обновления связан с трудозатратами как на само обновление, так и дальнейшую поддержку. Обновление - это когда что-то меняется. А значит пользователей нужно обучать. Возможно - договариваться и перестраивать бизнес-процессы. Поэтому после обновления мы поддерживаем клиентов еще 2 недели. И чем больше времени прошло с последнего обновления - тем больше изменений, тем сложнее перейти на новую версию. Поэтому стоимость обновления зависит от времени, прошедшего с последнего обновления. Так же обновления входят в техническую поддержку по 2-му и 3-му тарифам.
 +
=== А если я нашел ошибку? ===
 +
Как я писал выше, в программе всегда есть ошибки, и есть что-то не очень работающее, чего могло и не быть. Соответственно, если бы мы обновляли при любом нахождении ошибки - люди выискивали бы мелкие ошибки специально. Если ошибка действительно серьезная - конечно мы сразу исправим и обновим. Такие ошибки, если они вдруг есть, всплывают сразу - у вас же бизнес-процессы постоянно происходят! Согласитесь, мало вероятно, что через год использования вы нашли какую-то проблему, которая делает невозможным ваши процессы.
 +
 +
=== А сейчас продается версия уже новее??? ===
 +
Как-то у нас спрашивали "А как же так не справедливо - я купил программу год назад, и в ней не было такой функции. А сейчас она продается за те же деньги, уже с этой функцией, и те, кто покупают сейчас, ее получают бесплатно, а мне нужно заплатить за обновление". Объясняю: 10 лет назад за те деньги, за которые вы сейчас покупаете Iphone, продавались монохромные Siemens с кнопочками и полифонией. Но вы же не считаете, что зря купили тот старый телефон? Или что сейчас производители вас обманывают - подсовывают мех гораздо лучше (с)? Вопрос в том, что товар или услуга, которую вы приобретаете в конкретном времени и месте, за конкретные деньги, на этот данный момент вам выгоден. Вы же посмотрели рынок, посчитали окупаемость и выбрали то, что наиболее эффективно будет приносить прибыль в вашем бизнесе. И весь этот год зарабатывали на этой системе, в отличие от того, кто ее только сейчас покупает. Ну и, конечно, это же очень хорошо, что наша система постоянно развивается. На самом деле, это даже происходит не в какой-то жесткой конкурентной борьбе, а просто наши клиенты обращаются с потребностями, а мы их решаем. И каждый день делаем работу всех наших клиентов все более эффективной. Мы работаем на то, чтобы все ваши конкуренты, у которых нет нашей системы остались за бортом! А те, у кого есть - взаимовыгодно сотрудничали, и процветали.

Версия 15:09, 11 мая 2020

Уважаемый (потенциальный?) пользователь системы "Курьерская служба 2008"!

В этой статье я опишу теорию и практику взаимодействия с нашей компанией, отвечу на часто задаваемые вопросы касающиеся этого взаимодействия. Я постараюсь максимально открыто описать нашу кухню. Обладая этой информацией Вам будет гораздо быстрее и проще решать свои задачи по автоматизации.

Руководитель MeaSoft
Евгений Милевский

Содержание

О системе

На сегодняшний день система «Курьерская служба» отметила своё четырнадцатилетние. За это время её положительно оценили и активно с нами сотрудничают более 300 компаний. Наши партнёры находятся в разных странах: Россия, Казахстан, Украина, Белоруссия, Киргизия, Латвия. С помощью нашего сервиса ежедневно 4,5 тысячи курьеров доставляют 60 тысяч отправлений от 11 тысяч клиентов. Сама созданная нами «Курьерская служба» состоит из 200 связанных друг с другом таблиц, в некоторых из которых встречается по 50 миллионов записей. Мы постоянно работаем над её совершенствованием, чтобы наши клиенты всегда были впереди конкурентов.

Бизнес-модель

Наших клиентов, как существующих, так и потенциальных (а еще больше, конечно, меня самого!) часто интересует вопрос успешности и финансовой стабильности нашей компании. Это естественно, т.к. в случае ухода компании с рынка покупатели системы лишаются поддержки и прочих сервисов, без которых система утрачивает возможность адаптироваться под меняющиеся условия рынка. С такой "мертвой" системы компании придется куда-то переходить в максимально сжатые сроки. Поэтому здесь я расскажу, как мы зарабатываем.

Я делю рынок курьерских компаний на 3 части:

  • Мелкие компании - стартапы и прочее, со штатом до 10 курьеров. Такие компании не очень интересно автоматизировать - выигрыш производительности труда от ведения базы данных, штрих-кодирования, расчета зарплаты и т.д. - минимальный, если вообще есть. Такие компании неплохо (если такое слово вообще применимо к подобным компаниям) себя чувствуют и в экселе, а учет отправлений сводится к фразе "ну я тебе давал отправление, ты его доставил?". Понятно, что для вменяемой автоматизации у такой компании нет ни денег ни потребности. Мы на такие компании никогда не нацеливались, и в свое время у нас получался неплохой симбиоз с системами вроде "Аурамы", которая позволяла подобной компании начать работать "в один клик" за 3 копейки. Это позволяло компании слегка подрасти, и при приближении к 10 сотрудникам их система переставала справляться, они переходили в следующую категорию и приходили к нам. "Конкуренты" "выращивали" нам клиентов! В последнее время ситуация изменилась: подобные системы стали дороже нашей, и клиенты из данной категории стали к нам приходить сразу. Надо, может, приподнять цены уже наконец? Подумаю.
  • Средние компании - со штатом курьеров от 10 до 200 курьеров. Это наша ниша рынка. Самая распространенная, созревшая к автоматизации. Здесь можно добиться действительно большого роста эффективности труда. В тоже время, как правило, компаниям из этой категории хватает функциональности нашей системы "из коробки", процесс внедрения прост и надежен. Хотелки по доработкам если и возникают, то уже в процессе работы, а не на старте, что сильно упрощает их реализацию.
  • Крупные компании - более 200 курьеров. Данная ниша гораздо меньше предыдущих, компании как правило уже чем-то автоматизированы, что создает много проблем при внедрении: в "их" системе что-то было реализовано по-другому, пользователям всегда не удобно переучиваться, они устраивают саботаж. Бизнес-процессы уже отлажены, и встроиться в них, повторить, нужно практически без репетиции. Нужно вести длительные переговоры, совещания, анализировать бизнес-процессы, составлять ТЗ на доработки для тех участков, которые у них уже были как-то реализованы, дорабатывать без тестирования на продакшене, как мы любим. В общем, очень много непродуктивной деятельности. В проекте внедрения занято куча народа, всякого рода руководители направлений
    и даже "менеджеры самого среднего звена". Вероятность успеха проекта внедрения граничит с авантюрой. Такие клиенты у нас тоже есть, в основном выросшие из 2-й категории. Не бросать же людей из-за того, что они выросли! Мы в ответе за тех, кого приручили ©.

Еще есть небольшие группы не профильных компаний, вроде интернет-магазинов, турагентств и прочее - можно не обсуждать.

Итак, наши клиенты из второй группы, со средним чеком в районе 20 т.р. в месяц, но их достаточно. У нас нет якорного
клиента: поступления от самого крупного клиента не превышают 5% всего бюджета. Это позволяет мне быть действительно не предвзятым и уверенным в надежности выстроенной структуры. Так же, очень важный момент: это позволяет мне не играть в политику, балансируя между "хочу" отдельных клиентов и правильностью разработки с точки зрения системы, а ставить во главу угла именно архитектуру, гибкость, масштабируемость и поддерживаемость системы.

Бюджет, в основном, складывается из регулярных платежей наших клиентов: за аренду и поддержку. Продажа системы, равно как и платная доработка, в финансовом отношении мало эффективна, т.к. это разовые вещи, на которых построить надежный прогнозируемый бюджет невозможно. Подобные разовые платежи в сумме обеспечивают нам 10-15% бюджета, что, согласитесь, пренебрежимо мало. Поэтому мы ориентируемся на долгосрочное взаимовыгодное сотрудничество со всеми нашими клиентами. Мы заинтересованы в росте бизнеса всех наших клиентов, и способствуем этому всеми доступными нам способами.

Эффективность

Моя главная задача - эффективность использования всех ресурсов для получения максимальной отдачи для бизнеса наших клиентов на каждый потраченный рубль. Для этого я применяю все возможные подходы. У каждого из этих методов есть свои плюсы и минусы, поэтому я постараюсь их все здесь описать, чтобы Вы понимали, откуда берутся некоторые минусы в работе с нами, и что Вы получаете взамен.

Команда

Для эффективной работы команда должна быть компактной. Оптимальный размер команды для разработки ПО - 7-15 человек. Это тот объем, который позволяет руководителю дотянуться до каждого сотрудника, проконтролировать работу, объединить усилия всех сотрудников в единый организм и комплексно, целенаправленно решать стратегические задачи. Понятно, что написать Windows с такой командой невозможно, ее нужно сильно расширять. Однако это требует существенного расширения сопутствующего персонала. К сожалению, речь идет не только о найме проект-менеджера на каждую группу по 7 человек (зарплаты которых измеряются сотнями тысяч рублей), но и раздутии штата прочими сотрудниками, напрямую в процессе разработки/сопровождения не занятыми, поскольку работу групп нужно координировать, большую задачу нужно разбить на блоки, требования, функциональность, методы тестирования, интерфейсы взаимодействия которых нужно полностью задокументировать. Объем технической документации при "правильном" подходе занимает больше времени и стоит дороже, чем сам процесс разработки. После разработки каждого куска его надо тестировать отдельными штатными единицами, а потом пытаться склеить эти блоки вместе. В случае же с компактной командой ее можно просто собрать вместе, и сказать: "Давайте сделаем вот это. Ты делаешь это, а ты - вон то, через 2 дня собираемся вместе и проверяем". Поэтому я стараюсь удержать размер команды в оптимальном диапазоне. Пусть мы не можем такими силами взяться за какие-то глобальные мегапроекты, зато предельно эффективно решаем конкретные текущие задачи, которые ставят перед нами наши клиенты.

Мы, конечно, разбираемся в предметной области. Я начинал свою карьеру с работы курьером еще в 2000-м году, потом в офисе курьерской службы. Коммерческий директор - обязательно с опытом руководящей работы в курьерской службе. Мы лично встречаемся, общаемся с клиентами. Остальные сотрудники обязательно начинают свою работу с изучения предметной области. Полное погружение в нее - обязательное условие нормальной работы каждого сотрудника. К сожалению, большинство разработчиков подходят к своей работе только с позиции "мы умеем писать код, нам заказчик скажет, что написать, мы сделаем". Лично сталкивался с "автоматизаторами", которые только от меня узнавали, что после распределения заказов по курьерам их нужно еще физически на складе сортировать, а не просто скинуть курьерам полученные списки. Поэтому мы прикладываем все усилия к тому, чтобы такими не быть.

Задачи

Для максимизации эффективности труда необходимо выполнять только самые эффективные задачи. Есть такое правило 20 и 80 процентов
. Конечно, мы не делаем только 20% работы, но делаем 90%. Как мы выбираем наиболее востребованные задачи, чтобы не работать впустую?
  • Мы никогда не придумываем сами себе задачи. У нас есть много клиентов, которые "на местах" сталкиваются с живыми ситуациями, и передают нам свои пожелания. Зачем нам изобретать свой велосипед?
  • К нам постоянно поступает множество "хотелок" от клиентов. Им нужно как-то выдавать приоритеты. Для этого я их делю на 2 категории. Первая категория содержит:
    • То, что просят многие.
    • То, без чего реально процесс у клиента не работает.
    • То, что можно сделать быстро и без хвостов.
    • То, что входит в поддержку пользователей.
    • То, за что платят.

Вторая категория - все остальное:

    • То, что просит только один клиент, и ему это не критично, он не считает это важным чтобы сделать платно.
    • То, что очень объемное
      , а польза не очевидна.
    • То, что не понятно, как делать.

Естественно, сначала мы делаем задачи из первой категории, и по остаточному принципу - остальные (даже если в теме обращения написано "ОЧЕНЬ ВАЖНО!!!"). Такой подход приводит к тому, что некоторые задачи могут стоять в очереди вечно. Но их процент не очень большой, а сделать все и сразу попасть в светлое будущее, конечно, невозможно.

Экстремальное программирование

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

Коммуникация

Для оперативного решения задач необходимо всегда быть в тесном контакте. В рамках поддержки мы работаем на расстоянии телефонного звонка, многие вопросы решаются в реальном времени. Для руководителей компаний на 3-м тарифе поддержки мы предоставляем еще больший сервис: они могут звонить лично мне на мобильный, и получать консультации на максимально высоком уровне. Прямо в реальном времени, находясь, например, на встрече, можно подключить нашу компанию в моем лице к диалогу!

Бюрократия

Поддержка

Поддержка системы является крайне важным элементом ее совершенствования. Когда мы видим, что с каким-то вопросом к нам обращаются регулярно - мы понимаем, что что-то там сделано не идеально, и это нужно исправлять.

Эволюция

Наша компания, как и наша система, растет. Примерно на 30% в год. Есть плюсы:

  • Скорее всего мы не закроемся :-)
  • Система становится все более функциональной, и "из коробки" позволяет решать все больше задач.
  • Мы совершенствуем свои процессы, их надежность и эффективность постоянно повышаются. Примеры

Но есть и минусы:

  • Система становится все сложнее, и любая доработка в ней требует все больше усилий. Это общая беда больших систем: по подсчетам Microsoft программисты тратят 90% времени на поиск места в коде их ERP-систем, куда нужно внести изменение, и только 10% - на написание этих изменений.
  • Уменьшается объем личного присутствия. Еще 5 лет назад я лично приезжал к каждому клиенту в Москве, с ноутбуком, и что-то для них дописывал. Но это и хорошо: компания гораздо лучше работает, когда она выстроена как система, а не ручное управление одним человеком.

Отказ от ответственности

Что входит в покупку (аренду) системы

Что входит в поддержку

Тариф 1

Тариф 2

Тариф 3

Как получить качественную поддержку

Корректно обратиться в поддержку

Мы готовы оказать нашим клиентам максимальную поддержку и помощь, и в то же время ждём от них разумного и делового подхода, который позволит максимально упростить процесс получения и рассмотрения Вашей заявки. В частности, есть несколько пунктов, которые стоит знать, если Вы нуждаетесь в помощи.

Для того, что бы проблема была решена максимально быстро и правильно, нам нужна вся необходимая информация. Это нормально и логично, поэтому, собираясь связываться с нами, необходимо:

  • Обратиться "по адресу" Обратиться в поддержку можно по будням (а теперь и в выходные с 10 до 18!) (в соответствии с трудовым календарем Российской Федерации) с 8:00 до 21:00 по московскому времени любым удобным для Вас способом: Почта support@courierexe.ru, Телефон +7 (495) 987-17-12, бесплатный по России 8 (800) 707-90-35 или skype: courierexe, courierexe1, courierexe2, courierexe3.
  • Представиться При обращении любым из способов Вам понадобится представиться: назвать ФИО и компанию, в которой Вы работаете. Возможно, продиктовать телефон и адрес электронной почты для обратной связи. В случае отсутствия данной информации (особенно по почте) специалисты технической поддержки, прежде чем начать решать проблему, сначала будут выяснять эту информацию, на что уходит драгоценное время. Мы не принимаем анонимки ни в каком виде! Особенно частая ошибка - когда пользователи пишут с общей почты организации, вида "info@courier.ru" и в подписи, вместо контакта человека написано что-то вроде "С уважением, команда курьерской службы". Нужна конкретная заявка от конкретного человека: мы должны знать, с чем работаем.
  • Предоставить полную информацию Очень важно предоставить исчерпывающую информацию о своем вопросе. Номер заказа, с которым возникла проблема, или название клиента, если проблема с клиентом. Обратите внимание: если проблема касается сразу группы заказов – это хорошо, что Вы например, заметили "Во всех позавчерашних заказах происходит ...", и это даже может нам помочь, но номер конкретного заказа, хотя бы одного из той группы, нужно назвать. Сотрудник технической службы должен увидеть проблему, иначе может случиться так, что, просмотрев несколько заказов и не увидев никаких ошибок, он сочтёт, что дело в «человеческом факторе» и закроет тикет. Это абсолютно нормально и логично: люди ошибаются намного чаще машин! Если вопрос по отчету – укажите точную последовательность действий для его получения, какие пункты меню выбирали, какие данные вводили, приложите сам отчет. Если загружаете файлы – обязательно приложите исходные файлы и опишите, как загружаете. Будьте точны в формулировках! Неправильно сформулированное описание проблемы может привести к тому, что наш специалист будет искать возникшую проблему совсем не там, где она находится, и потеряет Ваше и наше время. Например, после получения формулировки "В подключении дата стоит не такая" последует вопрос о том, что же такое, в Вашем представлении "подключение", и эту потерю времени можно предотвратить, указав понятные нашим сотрудникам термины, а еще лучше – приложить скрин-шот, на котором было бы сразу видно, и какую именно Вы имеете в виду дату.
  • Убедиться в создании задачи При любом обращении сотрудник технической поддержки должен создать так называемый "тикет" - это номер обращения по одному конкретному вопросу, в рамках которого решается Ваша задача. Тикет - это крайне удобное средство контроля за выполнением задач, он гарантирует, что ни один вопрос не потеряется бесследно. О создании тикета Вам на электронную почту придет письмо. Так же, Вы можете просматривать свои тикеты в личном кабинете, и контролировать - что делается, а на что от Вас ожидают реакции.

Условия, описанные выше, нормальны и понятны любому здравомыслящему человеку, но часто из-за волнения, собственных проблем клиентов и по другим причинам мы получаем заявки без необходимых нам для выполнения поставленных задач сведений. Вместо быстрого и эффективного решения вопроса начинается длинная переписка с выяснением, кто и откуда прислал претензию и что же его, собственно, не устраивает.

Важно! Такие задачи, как наименее продуктивные, получают низший приоритет, поэтому потратьте пять минут и сформулируйте всё в деловом ключе: чётко, полно, объективно.

UPDATE В последнее время получил несколько вопросов о программе по Whatsapp'y на личный мобильный телефон с неизвестных номеров. Такие обращения сразу отмечаются как спам, и номера банятся. Коллеги! Ну давайте уже уважать друг друга!

Контроль качества

Если Вы не удовлетворены качеством решения Вашего вопроса, есть несколько способов повлиять на ситуацию:

  • Проголосовать по телефону После окончания телефонного разговора с нашими специалистами, система предлагает поставить им оценку.
  • Проголосовать из письма В письме об изменении тикета по Вашему обращению Вам предлагают выбрать оценку.
  • Обратиться к директору По почте admin@courierexe.ru или, в экстренных ситуациях, даже телефону: +7 (916) 114-79-92. При обращении нужно представиться, назвать номер тикета и/или максимально точное время телефонного общения с нашими сотрудниками - я лично подниму историю вопроса, записи телефонных разговоров, дам оценку ситуации и обязательно приму меры! Надо понимать, что голословные, не проверяемые, претензии вроде "я звонил когда-то, не помню когда, и мне плохо ответили" я принять не могу.

Почему не нужно обращаться к программистам или директору

Ответ на этот вопрос очевиден: первое, что Вас спросят: какой ответ Вы получили, обратившись в службу поддержки? Не забывайте, что все мы – люди, у всех есть масса важных и нужных дел, и отрывать от них и требовать внимания к себе в обход наших внутренних корпоративных правил – не лучший способ заручиться нашей поддержкой. Вас просто направят прочитать, кому нужно звонить в случае возникновения проблем, а приоритет Вашего дела может быть понижен.

Почему вы не сообщаете об изменениях?

Текущие изменения функциональности и логики работы

Сообщаем, и постоянно! На специальной странице в реальном времени публикуются все изменения. Зайдите, и посмотрите на нее. Вряд ли Вы хотите ежедневно получать длинные простыни с различными изменениями и дополнениями, вносимыми в программу. Любое изменение вначале анализируется на предмет того, оно отразится на работе существующих процессов наших клиентов. Мы подходим к этому с особой тщательностью. Именно поэтому нам очень важно знать, как Вы используете систему, и стараться своевременно предотвратить использование ее механизмов не по назначению. Однако клиентов у нас сотни, процессов у них тысячи, а мы одни, и поэтому иногда, очень редко, бывают и несовместимые изменения, которые мы всегда стараемся быстро исправить, если так случилось. Единственный способ это надежно предотвратить - никогда ничего не менять. Не делать никаких доработок, не обновлять систему клиентам, не добавлять новых функций, интеграций, поддержки нового оборудования и т.д. Наверное, это не совсем то, что вы ожидаете от поставщика ПО, верно?

Добавление новых функций

Мы постоянно добавляем новые функции, расширяющие возможности системы. Однако на работу такой функции оказывают влияние тысячи процессов, уже происходящих в системе. Поэтому мы вначале тестируем её на внутренних серверах, да и потом долгое время следим за корректностью её работы: собираем информацию об опыте использования, дописываем, улучшаем, переделываем. Поэтому, сразу после выхода новую функцию нет смысла документировать – она еще будет меняться и не раз. В случае возникновения погрешностей – в процессе эксплуатации они выявляются и устраняются. У программистов есть такая поговорка "Каждая последняя ошибка, найденная в программе, на самом деле является предпоследней". Т.о. мы никогда не можем сказать, какой-то процесс идеален. Он может быть таковым до очередного улучшения, которое начнёт с ним конфликтовать, или возникновения ещё какой либо особой ситуации.

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

Отсюда вытекает понимание, что у новой функции нет одного момента, когда она становится продуктом, и о ней нужно всем сообщить. Есть только постепенно растущая степень нашей уверенности в этой функции. Если Вы ранее обращались к нам с вопросом о добавлении подобной функции – мы стараемся об этом помнить, и сообщить Вам о ней, но это тоже не всегда возможно. Поэтому рекомендуется периодически просматривать вики – как различные описания функций, так и страницу истории версий.

Ошибки в программе

Как осуществить доработку

Почему мы задаем вопросы

Старый баян о недопонимании при разработке, заботливо переведенный на русский для Вас лично мной.

Как я уже писал, в день, в среднем, мы обрабатываем 30 обращений. Из них 2-3 шт звучат примерно как "А добавьте в карточку курьера галку "Выдан фирменный портфель"" (№1) или "А сделайте, чтобы на каждый район на карте можно было назначить отдельного курьера на каждый день недели" (№2). "А добавьте в отчет "количество доставок по клиентам"" поле "Среднее отношение количества выездов курьера к километражу между точками, умноженному на средний счет клиента" (№3).

За ~200 рабочих дней в году мы добавили бы минимум 500 таких галок, кнопок и полей, а за 10 лет - 5000. На самом деле - гораздо больше, т.к. они тянут друг друга.

По первому примеру: – А завтра Вы, наверное, попросите добавить галку "Выдан планшет", а потом "Выдан проездной", плащ-палатка, футболка и солнечные очки? Клиент говорит "Ну, видимо, да...". Представляете, насколько система была бы не управляема сейчас? На практике, конечно, мы находим решение задач, главное - понимать, что именно он хочет. В данном случае клиенту нужно учитывать выдачу сотрудникам и прием неограниченного количества видов инвентаря. И так в модуле складского учета, в номенклатуре, появилась галка "инвентарь
", и клиент, помимо того, что просил, получил еще средство контроля за остатками своих фирменных портфелей на складе.

По второму пункту - понятно же, что в 95% случаев на одном районе курьер будет работать каждый день недели, а то, что в выходные у них работает другой курьерский состав на тех же районах - это исключение. С гораздо большей вероятностью, вместо разных курьеров по дням недели, нашим клиентам понадобятся разные курьеры в зависимости от массы отправления (пешие/вело/авто курьеры), или срочности. Если бы мы добавляли возможность указания разных курьеров для всех этих вариаций (а сколько их еще можно придумать!), схемами на карте стало бы невозможно пользоваться. Понимая задачу, которую решает клиент, мы делаем возможность копирования схем. И клиент может нарисовать районы, скопировать схему, и 2 схемы назвать "будни" и "выходные", и назначить разных курьеров. А можно - сделать 7 схем по дням недели. А можно - отдельно для пеших, и отдельно - для автокурьеров.

По третьему эпизоду совсем все просто: Делается отдельный отчет в "доп. возможности", в котором выводятся те показатели, которые нужны клиенту, считающиеся по его ТЗ.

Очень частая проблема недопонимания: отчеты. Обращается клиент с просьбой добавить ему в раздел "Адреса" какое-то поле, например, количество поездок по отправлению в выдаче. На самом деле, добавление такого поля практически исключено по чисто технической причине: для вывода отправлений серверу придется для каждого из них "заглядывать" в "выдачу", и считать их количество. Для 99.999% задач, решаемых пользователями в адресах, эти данные не нужны, но их расчет будет происходить, и замедлять работу всех систем всех наших клиентов. Но возникает и другой вопрос: "зачем вам это поле?". А клиент говорит "Мы будем выводить это поле, выгружать все 10 тыс. заказов с ним в эксель, там формулами считать наценку за лишние поездки, а потом загружать обратно этот эксель с рассчитанными ценами. Сейчас у нас круглосуточно работают 3 человека, которые в каждое отправление заходят, открывают закладку "История выдачи", смотрят, сколько там строк, и вписывают в эксель." Занавес! :-) Чтобы Вы понимали - я не сильно утрирую, когда это пишу: люди действительно совершают ненужные подвиги каждый день. Здесь, если подходить формально, можно просто сказать "Нет, мы этот столбец не добавим". Если немного подумать - можно сделать отдельный отчет, который выведет в эксель требуемый клиентом показатель. Но если подойти к задаче действительно качественно, то в тариф клиента можно добавить услугу повторной доставки, которая сразу будет рассчитываться по тому алгоритму, который нужен клиенту, и процесс расчетов в экселе выпадет полностью, значительно упростив всем жизнь. Чем мы и занимаемся. Главный принцип хорошего программиста гласит "Клиенту надо дать не то, что он просит, а то, что ему действительно нужно". Тут Вы, наверное, думаете, что пишут Вам тут про каких-то дураков, а Вы-то (именно Вы!) действительно знаете, как правильно решать Вашу проблему, и не нужно больше ничего выяснять, надо делать то, что Вы говорите. Но на самом деле, люди придумывают такие не конструктивные подходы не потому, что они глупые, а потому, что они не профессионалы в данной области, они не знают всех технических возможностей и невозможностей. Поэтому есть мы - мы подходим к решению каждой бизнес-задачи системно, прилагая все усилия, чтобы понять корень проблемы, и тогда предлагаем такое решение, которое максимально автоматизирует Ваши процессы, и при этом будет соответствовать базовым принципам построения информационных систем, будет учитывать возможное развитие предложенных процессов.

А я все-равно не скажу, это моя коммерческая тайна!

С нами нужно работать как с врачом: нужно просто доверять
, а все, что не скажете сделает хуже только вам. Если это для вас не приемлемо - лучше пишите сами. Причем в прямом смысле сами лично, а не с помощью наемных программистов.

Почему на доработки требуется время

Как сделать быстрее

Почему доработки стоят денег

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

  • Мы практически не зарабатываем на продажах. На самом деле, мы и на доработках не зарабатываем. Продажи и доработки вместе составляют менее 15% нашего оборота (см. бизнес-модель). А увеличение стоимости системы за счет какой-то отдельно взятой доработки и вовсе лежит в пределах погрешности любого измерения.
  • Вся та функциональность, которая сейчас есть в системе, и которую Вы приобретаете за смешные, для подобных систем, деньги, так же была до Вас кем-то придумана и оплачена, что позволяет Вам сразу пользоваться всеми этими идеями.
  • Мы, естественно, не все доработки делаем платно. При принятии решения о стоимости и сроках выполнения доработки мы опираемся на множество факторов, таких, как востребованность (возможно, потенциальная) другими нашими клиентами, трудозатратность, реальная необходимость доработки именно для Вашего процесса, обслуживаемость данной функциональности в будущем. И на практике, большинство доработок мы делаем по себестоимости. Некоторые - бесплатно, некоторые, если доработка нужна только вам, и больше о ней никто не спрашивал и подобных процессов больше ни у кого нет - то по рыночной цене. Бывают и такие доработки, за которые мы выставляем завышенный ценник, если видим, что подобная доработка может негативно сказаться на стабильности, скорости работы системы, ее масштабируемости. В этом случае ценой можно показать клиенту, что другое решение правильнее, дешевле, а клиент может, так же деньгами, сказать что ему это действительно нужно, что ему это выгодно, и он действительно будет этим пользоваться.
  • Если бы мы принимали все идеи к разработке бесплатно, то каждый наш пользователь генерировал бы идеи каждый день, не заботясь о качестве этих идей, об их реальной востребованности в его процессе. Подходил бы с позиции "ну вы сделайте, вдруг пригодится". При этом наш ресурс разработки, как и любой другой ресурс в этом мире, ограничен. Поэтому задачи в работу принимаются либо платно, либо, если их выгода очевидна - бесплатно или дешево, либо, в рамках поддержки, но там тоже есть лимит трудозатрат, включенных в стоимость поддержки, поэтому клиенту приходится подходить ответственно к генерации идей.
  • Не нужно считать нас "по ту сторону баррикад", пытаясь получить как можно больше за как можно меньше. Мы - продолжение вашей команды, ваши сотрудники. Мы для вас хорошо работаем, а вы - хорошо платите. Лично я всегда с удовольствием повышаю зарплаты сотрудникам. Если я повышаю, это значит сотрудник принес мне больше прибыли, значит я стал богаче. Сотрудник и дальше будет лучше работать и проносить еще больше прибыль! Это ли не повод для радости?
  • Для еще более активного развития, решения ваших задач, нам нужно расширяться: нанимать больше программистов, руководителей, специалистов поддержки, платить им зарплаты. Экономя сейчас, пытаясь получить услугу бесплатно, вы стреляете себе в ногу: так завтра нам некем будет решать ваши задачи!

Интеграции

Наиболее "больная" тема платных разработок в последнее время - интеграции. Себестоимость разработки интеграции с партнером начинается от 100 т.р., и это объективная реальность. Почему? Дело в том, что в большинстве случаев, одна только техническая документация под API какой-либо компании - это 50-ти страничный документ, описывающий методы, поля, структуры данных и подходы к организации обмена информацией, как правило, чуждые нашей системе (и любой другой, кроме той, от которой приводится документация). Данные нужно адапировать. Статусы нужно транслировать. Далеко не всегда понятно, откуда именно брать требуемые данные, и куда складывать ответные, т.к. объектов, придуманных партнерами в нашей системе просто нет. В большинстве случаев на это еще накладывается "сырость" программного кода на чужой стороне - он работает не так, как описано в документации, и программисты на той стороне на ходу что-то дописывают и исправляют. В лучшем случае исправляют, а в худшем - они просто не идут на контакт. А в случае ошибки в передаче данных приходится поднимать всю историю, трассировать работу ПО, сравнивать данные и т.д. - это большая и кропотливая работа. Самое печальное, что через месяц-другой успешной работы, вдруг что-то ломается. Мы получаем негатив - клиент звонит с претензиями, что не может работать и т.д., мы сутки выясняем, в чем проблема, и оказывается, что партнер просто молча изменил свое API. Поэтому - да, мы делаем интеграции себе в убыток с такими популярными партнерами как СДЭК или Боксберри. Но если Вам нужно интегрироваться с каким-то мало известным партнером, клиентом или сервисом - это стоит денег, причем скорее всего не только разработка интеграции, но и ее поддержка, т.к. сюрпризы подстерегают нас на всем протяжении совместной работы. Наиболее простые интеграции - с провайдерами SMS. Как правило, их API достаточно простое, и программист может его настроить за 1 рабочий день. Однако, это 5 т.р.+ обновление системы, которое тоже бывает платным. В большинстве случаев это не выгодно делать, если какой-то провайдер Вам позвонил, и предложил цену сообщения на 3-5 копеек меньше, чем Вы платите сейчас.

Как сделать дешевле

Давайте разговаривать! Сейчас при оценке задачи, ее объема и стоимости мы исходим из того, что есть некоторое ТЗ, которое нужно согласовать, реализовать и поддерживать. И всегда есть риск что-то не учесть, потратить на какой-то блок не 1 день, как планировалось, а неделю. Это все, конечно, приходится закладывать в цену и сроки. На рынке, однако, есть и другие способы взаимодействия. Например, мы можем совместно проработать экономику того или иного процесса, посчитать, сколько это должно приносить прибыли и отталкиваться от нее - как в сторону упрощения и удешевления разработки, так и, где это оправдано цифрами - сжатия сроков, установки более точной задачи и т.д.

Почему доработки доступны всем

Иногда наши клиенты говорят "Я же сам придумал функциональность, и я оплачиваю ее разработку. Она должна быть нашим конкурентным преимуществом и не должна доставаться конкурентам". Отвечаю:

  • Если доработка полезная еще кому-то: Представьте, что мы с Вами договорились на такие условия - вы платите (с наценкой за эксклюзивность), мы делаем только для вас. Через месяц к нам приходит другой клиент и просит примерно тоже самое. Мы должны ему отказать в самой возможности реализации его хотелки? Или мы должны взять с него денег как за обычную, не эксклюзивную доработку, и открыть эту функциональность всем остальным?
  • Если доработка не полезная другим: Я понимаю, что вы свято верите в то, что именно ваша идея - самая нужная всем. Но на практике - большинством доработок надо людей еще заставить пользоваться, если мы знаем, что они им полезны. А в других случаях и заставить не удастся.
  • Вы тоже получаете все доработки от других клиентов. И из этого состоит вся наша система. Если бы все заказывали доработки только для себя - наша система не существовала бы. И вам пришлось бы нанимать программистов и писать систему самостоятельно с нуля. Собственно, что вам мешает сделать это сейчас? То, что наша система заведомо впереди? Это и доказывает правильность нашей политики разработки.

Примеры доработок

Правильные задачи

Не правильные задачи

Почему обновления платные

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

А если я нашел ошибку?

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

А сейчас продается версия уже новее???

Как-то у нас спрашивали "А как же так не справедливо - я купил программу год назад, и в ней не было такой функции. А сейчас она продается за те же деньги, уже с этой функцией, и те, кто покупают сейчас, ее получают бесплатно, а мне нужно заплатить за обновление". Объясняю: 10 лет назад за те деньги, за которые вы сейчас покупаете Iphone, продавались монохромные Siemens с кнопочками и полифонией. Но вы же не считаете, что зря купили тот старый телефон? Или что сейчас производители вас обманывают - подсовывают мех гораздо лучше (с)? Вопрос в том, что товар или услуга, которую вы приобретаете в конкретном времени и месте, за конкретные деньги, на этот данный момент вам выгоден. Вы же посмотрели рынок, посчитали окупаемость и выбрали то, что наиболее эффективно будет приносить прибыль в вашем бизнесе. И весь этот год зарабатывали на этой системе, в отличие от того, кто ее только сейчас покупает. Ну и, конечно, это же очень хорошо, что наша система постоянно развивается. На самом деле, это даже происходит не в какой-то жесткой конкурентной борьбе, а просто наши клиенты обращаются с потребностями, а мы их решаем. И каждый день делаем работу всех наших клиентов все более эффективной. Мы работаем на то, чтобы все ваши конкуренты, у которых нет нашей системы остались за бортом! А те, у кого есть - взаимовыгодно сотрудничали, и процветали.