The Inside Story of a Small Software Acquisition (Part 2 of 3) | Rob Walling
Вторая часть истории о покупке небольшого софтверного продукта DotNetInvoice. После месяца переговоров и проверки автор приобрёл права на продукт, но в первые же сутки получил более 30 гневных писем от клиентов о множестве багов и отсутствии поддержки. За две недели он нашёл и исправил 23 критических бага, добавил подробную инструкцию по установке и выпустил бесплатное обновление до версии 2.1. Выяснилось, что прежний владелец продавал версию без поддержки, и автор убрал эту опцию. Постепенно доверие клиентов удалось восстановить, но в конце первого месяца его ждал новый сюрприз.
Закулисная история покупки небольшого программного продукта (часть 2 из 3)
В конце первой части я написал разработчику пакета для выставления счетов, спрашивая, не хочет ли он продать права на свой продукт.
Переговоры
Мы с разработчиком начали переписку, которая длилась почти месяц. Я получил скриншоты выручки за предыдущие месяцы. Изучил примеры кода и модели данных. Поиграл с их онлайн-демо, расспросил о клиентской базе, количестве проданных копий и о том, сколько времени они тратят на поддержку продукта. Собрал всё воедино и, опираясь на свои знания об оценке небольших программных продуктов, сделал им предложение.
После некоторых переговоров мы пришли к окончательной цене. Я получил подписанный контракт, отправил средства через PayPal — и через несколько часов кодовая база, сайт продаж и доменные имена, составляющие DotNetInvoice (тогда версии 2.0), стали моими.
Думаю, я не смогу в полной мере передать то волнение, которое испытал, впервые открывая исходный код — радость от успешного приобретения. Если вы когда-нибудь проходили через месячный процесс изучения и переговоров по покупке, вы знаете, как это выматывает. Часы, потраченные на изучение документов и кода, согласование цены, составление и подписание документов — всё это время вы понимаете, что с высокой вероятностью сделка может сорваться.
Весь вечер я купался в счастье. Позвонил нескольким друзьям, начал набрасывать идеи новых функций и часами разглядывал маркетинговый сайт. На следующее утро написал нескольким существующим клиентам, чтобы сообщить о смене владельца и спросить их мнение о будущем направлении развития продукта.
А вот и звук надвигающейся катастрофы
В течение 24 часов в моём почтовом ящике оказалось более 30 ответов, и все они были полны гневных комментариев о полном отсутствии поддержки и количестве багов в софте. Проблемы были с повторяющимися счетами, незашифрованным хранением данных, глючным поиском — и так далее, и так далее.
Было ощущение, будто мне на грудь сбросили тонну мокрого цемента… Неужели я только что потратил тысячи долларов на полный хлам?
Неужели я полностью провалил проверку при покупке?
После нескольких часов паники я пришёл к плану действий: написать всем, составить полный список багов и исправить их.
Все до единого.
До последнего.
Не было никаких сомнений, что именно с этого нужно начать, чтобы спасти репутацию продукта. Параллельно я готовился сообщить жене, что буду спать на диване ближайшие 10 лет, пока не верну вложенные деньги.
Движение вперёд
За две недели я нашёл и исправил 23 серьёзных бага. Одной из ключевых проблем был модуль повторяющихся счетов. Механизм планирования был остроумно написан с использованием функциональности кэширования ASP.NET, чтобы не требовать отдельной установки планировщика. Но он не работал.
Несколько логических ошибок приводили к тому, что расписания шли вразнобой. Баги было сложно найти, на их обнаружение ушло несколько часов, но исправления оказались минимальными — зачастую достаточно было заменить < на <=.
Я также добавил подробную инструкцию по установке (при щедрой помощи Joseph Voldeck с www.MadGig.com), поскольку существующие инструкции были рассчитаны на опытных .NET-разработчиков. Теперь продукт включает PDF со скриншотами, которые пошагово проведут вас через весь процесс установки.
С этими улучшениями я выпустил следующую версию — DotNetInvoice 2.1 — как бесплатное обновление для всех клиентов, хотя никто из них не покупал поддержку.
ЧТО?!.. Никто не купил поддержку?!
Предыдущие владельцы предлагали более дешёвый вариант покупки, не включавший поддержку. Проблема в том, что с поддержкой или без — когда продукт не работает, вы ожидаете, что кто-то вам поможет. Поэтому, хотя все купили версию «без поддержки», они (вполне справедливо) ожидали, что кто-то ответит на их письма, когда в продукте обнаружатся баги.
Само собой, через несколько недель после вступления во владение я убрал версию без поддержки из вариантов покупки.
Помимо недель разработки, я потратил бесчисленные часы на переписку с клиентами, спрашивая их о пожеланиях по функциям, предлагая бесплатную поддержку и пытаясь вернуть доверие к продукту. После выпуска версии 2.1 я наконец почувствовал, что продукт стал по-настоящему моим.
Я не мог быть счастливее. Новый релиз исправил все известные проблемы, существующие клиенты чувствовали поддержку, и пришло несколько новых продаж. Дела шли в гору.
Пока не наступил конец первого месяца.