Разработка любого сложного программного обеспечения — это всегда постоянный итерационный процесс, который, с точки зрения заказчика, выглядит в упрощенном виде следующим образом:
1. Анализ, составление требований к продукту.
2. Планирование.
3. Проектирование и дизайн.
4. Разработка.
5. Тестирование.
6. Развертывание и эксплуатация.
7. Генерация новых требований и переход к пункту 1.
Этот процесс происходит постоянно на протяжении всего жизненного цикла любого используемого продукта. Он включает исправление ошибок, внедрение новых возможностей, оптимизацию производительности и улучшение стабильности программного обеспечения.
Из вышеописанного следует простой вывод: чем дольше существует продукт, тем меньше в нем так называемых «детских болезней» и больше возможностей. Чем сложнее программный продукт, тем более выражена эта зависимость.
Исторически сложилось так, что сложные программные продукты для клиентов уровня предприятий, такие как системы управления предприятием, базы данных, системы управления производством, в подавляющем большинстве своем были иностранными. Это объясняется довольно просто: старт их разработки был положен еще в XX в. и этим занимались технологические гиганты, такие как IBM, Oracle, Microsoft, SAP и их предшественники. Это подразумевает огромные вливания средств в разработку без немедленной отдачи.
Возврат инвестиций в этом бизнесе наступает через годы. Например, сервис G Suite от Google многие годы был бесплатным даже для компаний, таким образом Google привлекла к своему продукту большое число организаций. Бесплатность продукта в то время служила источником гарантий от претензий при интенсивной разработке. Эти примеры показывают, что для успешности и надежности продукта в него нужно вкладывать значительные инвестиции много лет с надеждой на будущий доход.
Отечественные разработчики вышли на данный рынок значительно позже, и в основном с нишевыми продуктами уровня бухгалтерии, игр, антивирусных средств и различного рода утилит. Это, конечно, приносит доход разработчикам, но все же это не такие масштабные продукты уровня предприятия. С развитием отрасли программного обеспечения появляются различные отечественные решения в разных областях. Однако многие сферы так и не были охвачены в полной мере ввиду необходимости больших инвестиций с неизвестной отдачей в будущем, а также в силу доступности уже готового и проверенного решения из‑за рубежа.