Прочитал сегодня новость о начале продаж собственной операционной системы и офисного ПО и не сдержался. Хочу поделиться с комрадами что есть разработать собственное ПО с нуля.
Давно, плотно и профессионально занимаясь разработкой программного обеспечения, уже не раз слышал от бизнеса вопрос: купить готовое или разработать своё с нуля. Разговор здесь, естественно, идёт ни о годовой лицензии на Офис 360 для Марии Ивановны из бухгалтерии. Разговор идёт о серьёзном бизнесе по разработке ПО.
Позвольте я расскажу вам примерный сценарий того, как будут развиваться события, если вы решите разрабатывать ПО сами. И вы не инвестиционный мастодонт типа СребТреха или Роступиком, для которые вбухать и проебать ярд не велика проблема. Вы бизнес с годовой выручкой миллионов под 800 и с мыслью сделать какой-то айтишный проект. У вас есть бизнес-идея, бизнес-план и уже даже ТЗ.
Начнём с команды. Её надо собрать. Ошибаться на этом этапе нельзя. Разумеется, идём за услугами профессионалов в подборе. За хед нашими хантерами. Но вот только профессиональных айтишных рекрутеров на рынке 1-2, ну ок - пусть ещё один про которого я не знаю. Остальные JS от React в резюме не отличат и не увидев в резюме второго, как вы заказывали, тут же отметут хорошего кандидата. Но это в лучшем случае, а в обычном случае перевесят всю работу на вас. Вы будете платить рекрутеру, а он не особо разбираясь, будет сваливать вам всех кандидатов подряд без первичного отбора, за который вы ему платите, чтобы вы их сами отсобеседовали. После этого вы поймёте, что далеко так наша история не уедет и займётесь подбором сами. Зарегистрируетесь на профессиональных ресурсах и начнёте работать с кандидатами. Здесь вы очень сильно охереете от количество дилетантов. Связано это, естественно, с дефицитом специалистов на рынке (не только ИТ касается) и с очень высоким, последнее время, на них спросом. И не просто дилетантов, а звёздных дилетантов. Это те, которые на ютубе подписаны на канал какого-нибудь вебразработчика самого Стаса Аштеэмелева (имя изменено, совпадение случайно), а вы ему по результатам собеседования почему-то не предложили 200к+премия. На вопрос что такое стек, южный мост и как работает память эти дарования смотрят на тебя как на говно мамонта и отвечают, что знать это давно уже не надо, т.к. есть github и stack overflow.
Справедливости ради, стоит отметить, что есть в отрасли уже готовые сбитые очень крутые команды. Особенно славятся ими братья-белорусы. Но команд этих не много, передают их заботливо из рук в руки и найти свободную - это просто удача.
Как бы то ни было, за 4-6 месяцев вы сколотите крепкую профессиональную (и очень дорогую) команду. Итак, кадровый опыт будет ваш первый печальный опыт. Полгода прошло, первые 300-400 тыс, не учтённые в бизнес-плане потрачены на поиск. А мы ещё не начинали.
Но лиха беда начало.
Допустим вы сегодня начали. Пусть даже вам повезло с архитектором. Через год у вас будет mvp. Это ещё не работающий продукт, но его уже можно продавать, как бы странно это не звучало. Пока вы его продаёте, команда пилит новые фичи, развивая функциональность, потому что это интереснее, чем закрывать todo-list и заниматься техническим долгом.
Ещё через полгода вы сделаете первую продажу и первую боевую инсталляцию. Здесь вас ждёт второй кошмар, потому что реальные объекты с их инженерными системами слегка отличаются от того, что там напроектировал архитектор и что вы испытывали на офисных макетах. Ну ок. Здесь поправите, там допилите, часть перепишите и продукт наконец заработает так, как этого хотел заказчик. К этому моменту прошло уже года 2.
Теперь начинается самое интересное. Вы, учитывая опыт боевой инсталляции, понимаете, что технический долг накапливать нельзя и кидаете все силы на него. Т.е. ближайшее время вы функциональность продукта не развиваете. А ещё параллельно вас постоянно дёргают с ваших инсталляций: это не работает, а как мне сделать то, а как сделать это. Вы понимаете, что часть команды придётся выделить на саппорт. Технические писатели не успевают за изменениями, документация сильно отстаёт от реалий, часть команды в саппорте, остальные закрывают технический долг.
Этот маленький адок переживут не все. Программисты это же капризные дети. На этом этапе один-два таких дарования вдруг поймут, что их призвание - это творить, делать великие вещи, а не вот это вот всё. Поняв это они картинно заломят ручки и свалят в какой-нибудь iot-blockchain-bigdata-machine-learning проект, потому что это «мейнстрим», а вы ебитесь с этим говном сами. То, что это говно результат их пищеварения они скромно промолчат. Естественно, занимались они ключевыми компонентами вашего продукта и вы будете в ахуе от растерянности ну как же так получилось. Так заканчивается третий год вашей собственной разработки.
Выйдя из запоя, вы берёте себя в руки, говорите себе, что бросать начатое точно не в ваших правилах и что выход всегда есть, вы привлекаете ещё денег на продолжение этой истории.
Немного отступлю в сторону по поводу денег. Чтобы вы понимали, бюджет команды из 7-10 человек около 2,5 в месяц. Это без накладных расходов: маркетинга, продаж, дизайнеров, офиса, бухгалтерии, документооборота, судов ((не дай бог и так дальше). Иметь на депозите надо, как минимум, десятикратную эту сумму, т.е. 25. Т.к. задержка этим организмам зарплаты на 2-3 дня чревата по вышеобозначенным причинам (а именно инфантелизма и высокого спроса на рынке) выпадением из команды какого-нибудь гения и остановки разработки сервиса за который он отвечал.
Вернусь к нити повествования.
Нашли замену слабым выпавшим звеньям. Приходит очередное дарование, недели 2 ревьюжит код и, закатывая глазки и обязательно заламывая ручки, объявляет, что так уже никто давно не пишет. Стек не тот, архитектура не микросервисная, вообщем проще всё заново переписать, чем в этом говне копаться.
Дальше писать не буду, т.к. сценариев масса. Например, ужасное и мучительное убийство в состоянии аффекта, естественно, тимлида. Или счастливое привлечение богатого инвестора, которому охота иметь свою такую игрушку. Кто-то футбольные команды покупает, кто-то команды разработчиков. По-разному эти истории заканчиваются…
Бывает даже и хорошо заканчивается, когда команда сильно замотивированная.