whirlwind хорошо тебе, завидую белой завистью.
опишу мою ситуацию, в лучшем её варианте:
тз как такового от заказчика не добьёшься, приходится собирать список хотелок. большая проблема в том, что заказчик сам не понимает как работает его бизнес. чтобы описать его step by step. чтобы понять, что он ничего важного не пропустил лучше составить mind карту
http://www.mindmeister.com/ru/69386630/c-xix-xx
http://www.mindmeister.com/ru/67761449/mindmeister
садитесь и с заказчиком проходитесь по цепочке, просите чтобы он комментировал, а не смотрел с затуманенным взглядом.
хорошо бы составить прототипы в axure или просто html-лины
теперь надо продумать модели, делаешь в два прогона:
1. Составляешь список моделей и стрелочки между ними, можно в виде той же mind
2. добавляешь необходимые поля, здесь уже лучше mysql workbench
пытаемся сгенерить базу и модели. Идеально использовать Doctrine, тогда можно посадить отдельного человека на разработку моделей и их методов. Использование Query Builder-ов в контроллерах убивает смысл всех этих шагов. запретить и наказывать жесточайше, под каждый чих нужно выделять свой метод. (ИМХО).
теперь планируется какие роли(частично заложено на предыдущем этапе) и модули(контроллеры) у нас будут. Сортируешь по критичности для посмотреть. нужно стремиться, чтобы, как писал
whirlwind, всегда можно было пощёлкать по ссылкам и кнопкам.
заводится трекер с задачами толстыми тикетами, дальше их начинаешь мельчить в подзадачи.
понеслось, делаешь, правишь, уточняешь, переделываешь, делаешь новое. не забывай вносить изменения в минд карты и тикеты.
очень хорошая практика устраивать митинги по 10-20 минут в начале дня, где каждый говорит что будет делать, какие проблемы возникли вчера. вечерние митинги не желательно.