>But can you justify the extra time spent going the n-tier route? For a large project you could look at doubling dev-time, if the project is a 3 year project, and going n-tier moves it to 6 years, are you ever going to get that dev-time back via the future rewards of choosing such an architecture?
>
2X the amount of work? No way. Almost all of my apps are n-tier in design and it doesn't take me anywhere near that amount of extra time. >Maybe< 20%. I'd argue that I save at least that much time anytime I need to make changes to my application. Yes, there are applications where I don't bother with n-tier; apps that I >know< are one-offs (usually they're one screen and maybe a report). As soon as they start coming back for additions, however, I slowly start refactoring everything to move towards a logical n-tier.
There are also places in my n-tier apps where I'll make a decision to bypass the standard n-tier way of doing this in order to meet the deadline; the code is flagged so I can find it easily and it's definitely the exception, not the rule.
The real trick to all of this is having a solid framework to build on. If you're reinventing this stuff everytime you write a new app, then you're right. Plan for at LEAST 2X the work.
>I haven't read 1 success story based on this system of development yet.
>
Talk to just about any framework vendor. I'm sure they could give you dozens of examples.