When a new feature or fix is developed it is released to our clients as soon as possible, but the road from development to production is long and treacherous. Here's how we do it to ensure the quality without too many delays.
The developers complete the feature or fix and define a specific set of changes to the current release. That set of changes is the deployment artifact. The deployment artifact is sent to testing where the testers do their thing. When both automated and manual tests pass, the artifact is approved. If it does not pass the testing, the issues are reported back to development.
When testing is complete, the artifact is sent to staging where the environment is exactly the same as production. Staging may uncover some obscure corner cases, but mostly it serves as a dry run. The feature or fix is also presented to the stakeholders who give their go/nogo. The stakeholders may find some missing parts, which need additional development, but if everything is go, the artifact is applied to production during the next service window.