Но этого мало. Как рубить сложность (в ООП-языках), я уже примерно представляю. Но оказалось, что у программистов всегда есть еще и такая боль, как оценка сложности.
Вот с оценкой сложности я и ошибся. Мне дали игру с пятью вариантами поведения - я оценил ее как одну с одним (с которыми раньше уже работал). Вот все сроки и поехали ((.
Какие могут быть паттерны и приеме в оценке сложности проектов? Наверно, как минимум, можно увидеть, как отличаются уже сделанные вещи от новых - и на разнице в их начальных условиях и логике увеличивать срок разработки. То есть срок разработки = N*вариантов + M, где M - какой-то длинный хвост на интеграцию всего в одну коробку. И чем бесшовнее хочется интеграцию, тем больше этот M.