I'm confused. Aren't you FDD/TDD/Agile guy? Doesn't the design emerge from eliminating duplication during refacotring? Why do you need an Architect? That sounds like upfront design to me?
Bob: Even with evolving design there's room for upfront architecture work, especially when requirements state specific performance/robustness/scale requirements. Even with Evolving design there's need for someone who knows architecture, even if that knowledge will be applied ad-hoc or pre-implementation.
There is no one right way (silver bullet). It depends a lot on company, politics, team, project and million other factors. I've seen project do no upfront design whatsoever and projects that have CMMI style managements with lots of design work upfront - all succeeding with various Agile practices thrown in the mix in various points in time.
>There is no one right way (silver bullet).
No doubt. I've found this is true. Trying to make me and my team more agile but I always have nagging question about how to inject architecture and use design patterens if people just jump in a code features and then refacotr them. I see bad and good in both.