This is a difficult question to answer because it really depends on your context: the business users, the development team, and what style of development you're doing. There isn't one development lifecycle that works for all companies, or even all teams within a company. Each context is unique, and what works at one company may fail at another because of small -- possibly initially undetectable -- differences.
For example, if you're working in an agile environment, then I think the answer would be to get the application in front of testing and the business as soon as you get something working. Even if there might be some issues, the early and rapid feedback is important. If you're working in a more contact-heavy environment, and there are political or contractual ramifications to the business users finding issues, then you might want to wait until testing has covered the significant risks and areas of the product.
In your context, if you wanted to release the application to testing and business users earlier, you might want to answer the following questions:
- Do we have a method for capturing early feedback from testers and users? This may or may not be your normal testing processes and tools.
- How will the development team (that's not only the programmers, but other testers, project managers, analysts, and other stakeholders) respond to early feedback if they get it?
- How will the testers respond to getting application earlier, perhaps in a less stable state? Will it make their jobs easier or more difficult? What would that team need to change to support that new process?
- How will the business users respond to getting application earlier, perhaps in a less stable state? Will it make their jobs easier or more difficult? What would that team need to change to support that new process?
- Are there any metrics that we currently capture that we may need to re-evaluate if we change when we release our software to testing or the business users?
- Are there any existing contract stipulations that might prevent us from changing when we release our software to testing or the business users?
There are probably other questions to ask, but that should get you started. Other questions will likely emerge as you get the answers to those. If it looks like earlier releases might be a good fit for your team, try it. If not, use the same questions, slightly modified, to determine if perhaps you're already releasing the application too early and check to see if you might benefit from slowing things down.
This was first published in May 2008