Собрался написать большой пост, про сложность взаимодействия команд, разрабатывающих разные части продукта, без четко написанного ТЗ. А тут
Moskvyak уже в принципе все расписал.
На пальцах все примерно так:
1)Есть Front-End, который разрабатывают одни люди. Они считают, что красивый и удобный пользовательский интерфейс это главное. И что он и только он должен быть в приоритете.
2)Есть Back-End, который разрабатывают другие люди. Которые презирают первых, потому что они не настоящие программисты, а только и умеют, что интерфейсы писать. А все самое сложное это серверная часть, потому что на ней все вычисления. Ее надо оптимизировать и т.д. И вот это реально нужно, а интерфейс любой школьник напишет.
Внутри каждой из этих команд есть свои подкоманды, которые пишут разные части. Например(в случае покер-рума), аутентификацию, безопасность, шаффл машину, работу с платежными системами и т.д.
И каждая подкоманда только абюстрактно знает, что и как делают другие. Для этого и нужно ТЗ. Чтобы все знали какие механизмы сопряжения кода от них нужны другим частям продукта.
P.S. А еще хороший программист стоит больших денег. По этому, даже если забыть про дизайн, рекламу и пр. - только затраты на разработку можно очень долго окупать. Не будет же сразу кол-во играющих как на старзах.
(Вот например
тут отчет по третьему Ведьмаку опубликовали. Разработка + маркетинг обошлись в 67млн. долларов. Из них маркетинг - 35. То есть маркетинг стоит больше чем дизайн+разработка(а в их случае еще и сценаристы))
Вот и думается, что покер-рум не такой уж золотой проект) Опять же, это не относится к компании у которой уже есть 89млн пользователей.
Если там может разобраться только разработчик - это говнокод, который надо выбрасывать как можно быстрее. Затраты на его поддержку в дальнейшем будут расти в геометрической прогрессии. Плюс разработчики через какое-то время возьмут этот "покеррум" за яйца и начнут их выкручивать на дополнительное бабло.
Плохо спроектированный код (а это практически все студенческие математические программы) через некоторое время просто невозможно безопасно развивать из-за его негибкости и непродуманности.