Бесплатные обновления и бесплатная поддержка продуктов Tamaranga: как, что и почему?
В прошлый раз мы писали о том, почему последнее обновление стало для всех наших продуктов прорывным и, можно сказать, новой вехой в истории Tamaranga — наконец-то мы можем выпускать обновления так часто, как они того требуют, а не так редко, как мы справлялись с их доставкой.
Но автоматизация обновлений была не единственной нашей болью, хоть эти вопросы и были между собой очень взаимосвязаны. Сегодня речь пойдет о поддержке продуктов и о том, как мы меняем её в соответствии с нашими новыми возможностями.
Итак, с сегодняшнего дня все обновления и поддержка последних версий продуктов становятся бесплатными! Да-да, никто не описался, не ослышался и не «очитался» :)
Мы долго шли к этому моменту и не могли его вам предложить до тех пор, пока не выпустили последнее обновление и вот почему:
Мы начали делать продукты в середине 2011 года и, естественно, начали с функциональности. Клиенты покупали наши продукты за их возможности, а мы делали то, что они хотели — больше, лучше, красивее. Достаточно быстро мы осознали, что клиенты после покупки делают свои доработки прямо в наш код, но обновления им также интересны, как и сохранение своих доработок. На этом моменте к нам пришло понимание, что возможно мы не с того начали свой путь в продуктовую разработку. Но было уже поздно...
В 2015 году клиентов уже было достаточно много и мы перестали справляться с ручными обновлениями в принципе. С этого момента началось движение в сторону автоматизированной «склейки» — когда мы брали свой обновленный с новой версией код с одной стороны, доработанный код клиента с другой и дальше, с помощью написанного нами инструмента, сводили две версии в некую «третью». Если конфликтных мест при такой склейке было много, мы не могли предложить клиенту ничего лучше как либо потерять доработки и обновиться либо просто забрать архив с чистой новой версией и дальше делать с ним «что получится»… Кроме того, что мы не могли обновить всех оперативно, так как склейка проходила в ручном режиме, клиентов становилось с каждым днем все больше, а время наше оказалось не резиновым и каждый раз, как выходила новая версия, образовывались очереди на обновление. Тут мы уже разрывались между двух огней: чтобы выжить и оставаться конкурентно-способными, нам нужно было выпускать обновления с новыми возможностями продуктов и привлекать ими новых клиентов, а чтобы делать довольными наших уже существующих клиентов — быстро доставлять им эти обновления, стараясь не убить все их индивидуальные изменения. Ну что вам сказать, это оказалось невозможным, тут мы нашли свое «узкое горлышко» и поняли, если не вернёмся к истокам и не заложим в архитектуру возможность обновляться без нашей помощи, уже через год или даже меньше нам придётся признать, что мы не справились и больше не можем обещать клиентам, что будем работать с ними «в долгую».
Примерно с середины 2016 года нам пришлось забыть про выпуск «много новых фишек» и полностью переключиться на процесс разработки системы авто-обновлений. Как следствие, нам нужны были инструменты, которые позволяли бы клиентам продолжать делать доработки продуктов под свои проекты и менять дизайн, но при этом не вносить изменения в основной код продуктов — только так можно было добиться полной совместимости лицензий после покупки с последующими обновлениями на длительный период. Почти 1.5 года ушло на реализацию и обкатку всего процесса в его альфа-версии, при этом мы очень старались сохранить обратную совместимость с актуальным ядром продуктов, которое было на тот момент у всех наших клиентов, так как при отсутствии обратной совместимости ядра мы бы не смогли обновить их купленные ранее лицензии.
В декабре 2017 мы выпустили самую первую версию наших авто-обновлений, а вместе с ним и Маркет готовых дополнений, реализовав возможность делать доработки и менять дизайн не «прямо в наш код», а «складывать рядом» в виде плагинов и тем. Конечно, как и все самые первые версии чего-либо, наши авто-обновления и инструменты плагинизации и тематизации требовали ещё достаточно большого объема работ и тестирования. Следующие 1.5 года мы продолжали заниматься их улучшением, разрабатывали плагины и темы сами, привлекали для этого наших партнёров, придумали дополнительный механизм аддонов (надстройки над плагинами или темами), тестировали разные способы доставки авто-обновлений и сталкивались с разными трудностями. Трудности проявлялись, как часто бывает, с самых неожиданных сторон — то мы не предусмотрели все 10 вариантов настроек серверов наших клиентов, то забыли про вариант перехода между несколькими версиями (обновление с 2.4.0 сразу на 2.4.3 пропуская 2.4.1 и 2.4.2) и дальше по списку. Также мы обучали партнёров, клиентов и их программистов новым механизмам переноса уже сделанных доработок и внедрения последующих доработок в код. Обновления мы тоже выпускали — не так часто как хотели, но куда без них. Так прошли эти 1.5 года и мы со всем справились!
Сейчас июнь 2019 года и с момента как мы начали путь от ручных обновлений до полностью автоматизированных и со всем удобствам доработок прошло три года. В последнем обновлении мы уже протестировали новый формат доставки — сначала мы финализируем обновление и делаем его доступным для себя и партнёров, тестируем, потом добавляем в круг первопроходцев небольшую группу клиентов, которые также тестируют его уже на живых проектах и приходят к нам с вопросами/проблемами, мы их оперативно решаем, выпускаем патч за патчем и добавляем контрольную группу клиентов-тестировщиков, с которыми повторяем этот же процесс. После такой тройной проверки у нас намного больше уверенности в итоговом качестве обновления, которое мы можем отдать всем остальным нашим клиентам «одной кнопкой» уже со всеми патчами внутри. Если уже после финальной выдачи обновления будут находиться ошибки, они также будут правиться патчами и раздаваться всем «одной кнопкой». Это наша маленькая магия! :)
Ну вот, мы постарались коротко рассказать вам как оказались там, где сейчас и что нас к этому привело. Теперь осталось объяснить, почему же делаем всё бесплатным :)
За эти 8 лет мы ну очень много общались с нашими клиентами и пришли к одному интересному выводу — большинство клиентов, у которых получается стабильно развивать свои проекты не прекращают обновляться. Этот вывод дальше привёл нас к мысли, что для того, чтобы сделать опыт использования наших продуктов ещё лучше, нужно предложить клиентам максимально комфортные и выгодные условия для обновления — именно поэтому обновления (и патчи) с исправлениями ошибок и новыми возможностями теперь бесплатны!
Мы также пришли к выводу, что чем более новая версия продукта у нашего клиента, тем проще нам его поддерживать и с точки зрения исправления ошибок и со стороны консультаций, ведь ошибки могут быть исправлены сразу для всех в обновлении или патче, а не только в его «устаревшей версии», а консультировать проще, не вспоминая, что было или не было реализовано в «поза-поза-той» версии год-два назад. Именно поэтому поддержка последних версий продуктов теперь бесплатна!
Мы очень рады, что прошли весь это путь и теперь можем предоставить такой сервис нашим клиентам. Добро пожаловать в новую веху истории продуктов Tamaranga!