Как стать автором
Обновить
2506.44
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

20 лет работы над одним продуктом

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.9K
Автор оригинала: Andy Brice

В феврале 2005 я выпустил первую версию своей программы PerfectTablePlan, предназначенной для планирования рассадки гостей за столами. В этом месяце ей стукнуло уже 20 лет. Тогда это был другой мир, мир Windows, условно-бесплатного ПО и CD-дисков. С тех пор очень многое изменилось, но PerfectTablePlan на сегодня уже достигла версии 7 и чувствует себя уверенно.

PerfectTablePlan v1

PerfectTablePlan v7

С тех пор я выпустил ещё несколько продуктов, занимался обучением и консультациями, но PerfectTablePlan по-прежнему остаётся моим самым успешным проектом. Да, для этого пришлось усердно потрудиться, хотя и без доли везения тут не обошлось.

Началось всё с того, что у меня намечалась свадьба, и я выступил добровольцем составить план рассадки гостей на праздновании. Задача казалась довольно простой, так как планировалось всего порядка 60 гостей, и между нашими семьями не было никаких распрей, которые бы пришлось учитывать. В действительности же сделать всё грамотно оказалось на удивление сложно. Тогда я поискал возможные программные решения этой задачи. Пару каких-то пакетов найти удалось, но они меня не впечатлили. Я решил, что сам сделаю лучше, и в итоге набросал простецкую первую версию, которую и использовал для нашей свадьбы.

В тот момент я трудился в небольшом стартапе, и дела там шли не очень хорошо. В тот момент мне пришла мысль: «А что, если пустить моё приложение в коммерческое русло?» Меня терзали сомнения, так как все потенциальные конкуренты в этой сфере едва сводили концы с концами, и я думал, что вряд ли смогу таким образом заработать на жизнь. Тогда я решил, что постараюсь сделать всё возможное за 6-12 месяцев и потом займусь другим продуктом. На деле же всё вышло совсем иначе.

В 2005 году сегмент ПО для веб-среды ещё развит не был, поэтому я решил написать свою программу под десктоп, используя кроссплатформенный фреймворк Qt языка C++, с которым был хорошо знаком. Первой я выпустил версию под Windows и чуть позже — для Mac. За последние 20 лет у Qt были как взлёты, так и падения, но в итоге он развился в надёжный, хорошо документированный продукт с широкими возможностями. Так что тогда я сделал удачный выбор.

Финансировал PerfectTablePlanner я из собственных сбережений, и с момента запуска первой версии его прибыльность с каждым годом росла. Я мог позволить себе нанять сотрудников и расширить дело, но предпочёл продолжать вести его в своё удовольствие. Моя жена занимается финансовой частью и вычиткой, а я практически всем остальным, изредка обращаясь к своему помощнику, веб-дизайнерам и паре других наёмных специалистов. И о таком решении я нисколько не жалею. Двадцать лет без совещаний, строгих галстуков и будильников. Спустя 18 месяцев после запуска PerfectTablePlan, у меня родился сын, и как же здорово, что я имел возможность полноценно выполнять роль отца.

А помните CD-диски? Я рассылал их вплоть до 2016 года, и в общей сложности отправил около 5 000 копий (правда, мне немного помог отец).


В процессе развития PerfectTablePlanner программное обеспечение начало активно переезжать в веб-среду. Но я не мог смириться с идеей переписывания своей программы под веб с нуля. Это же JavaScript, чёрт побери. К тому же, PerfectTablePlanner довольно затратна по ресурсам. В ней для генерации плана рассадки гостей используется генетический алгоритм, и мне казалось, что лучше выполнять её на локальных ПК клиентов, нежели на своём сервере. Плюс некоторые клиенты считают свои планы рассадки конфиденциальными, и я не хочу хранить их на сторонних серверах. Так что было решено придерживаться десктопа. Однако, если бы я принялся создавать эту программу сейчас, то наверняка пошёл бы другим путём.

За 20 лет произошло много странных и удивительных событий, например:

  • PerfectTablePlan использовали некоторые известные организации для очень масштабных событий (многие из которых мы даже не имеем права озвучивать). Мою программу использовали для рассадки королевских особ, знаменитостей и глав государств.
  • PerfectTablePlan использовалась для демонстрации вычислительных возможностей первого коммерческого квантового компьютера от D-Wave.
  • Компания Sony без спросу использовала модель PerfectTablePlan, включая созданные мной иконки, в своём ТВ-сериале «Big Day». Тогда я пригрозил им судебным иском. И вот прошло уже несколько лет, но ответа так и не поступило.
  • Мне пришлось столкнуться с рядом интересных задач, включая математические расчёты больших комбинаторных задач и размещения людей за овальными столами. Некоторые клиенты размещали вплоть до 4 000 гостей, а 4 000(!) (4000x3999x3998… x 1) — это безумно большое число.
  • Известный свадебный журнал провёл промо-акцию, опубликовав фотографию диска PerfectTablePlan с отчётливо видимым ключом лицензии. Тогда мне пришлось до утра пыхтеть над релизом новой версии, в которой бы этот ключ не работал.
  • Я выяснил, что CD-диски съедобны.
  • Я проспонсировал постройку детского сада в Непале.
  • Однажды мне пришлось до поздней ночи и умопомрачения исправлять обнаруженную проблему, чтобы не сорвать событие мирового уровня (нет, я не могу сказать, что это было за событие).

Самым тяжким моментом была пандемия, когда продажи упали, по сути, до нуля.

За всё это время происходило очень многое: появлялись и исчезали конкуренты, менялись операционные системы, да и в целом сфера программного обеспечения сильно перестроилась. Но PerfectTablePlan по-прежнему здесь и продолжает кормить мою семью. Состоит эта программа из 145 000+ строк C++. Местами это грязноватый код, и сейчас я бы написал его иначе. Но сам продукт очень устойчив и почти не имеет багов. Немало усилий также было вложено в развитие сайта и документацию, PDF-версия которой содержит почти 500 страниц.

Сейчас я занимаюсь не только PerfectTablePlan, но и двумя другими продуктами: программой для первичной обработки данных Easy Data Transform и визуальным планировщиком задач Hyper Plan. Развитие нескольких продуктов позволяет работать в разных направлениях, не делая ставку на что-то одно. В мае 2024 года я выпустил PerfectTablePlan v7 со множеством доработок и новых функций. Собственно, в планах у меня ещё много идей и улучшений. Я твёрдо настроен продолжать работать над этим проектом вплоть до своей пенсии (сейчас мне 59).

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
Теги:
Хабы:
+57
Комментарии13

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds