Currently the software development lifecycle followed in the IT company I work at is:
The "Business" works with a solution manager to build a Business Requirement document
The solution manager works with the Program manager to build a Functional Spec
The PM works with the engineering lead to develop a release plan and with the engineering team to develop technical specifications
If there are any clarifications required, developers contact the PM who contacts the solution manager who contacts the business and all the way back introducing a latency of nearly 24 hours and massive email chains for any clarifications
By the time the tech spec is made, nearly 1 month has passed in back and forth
Now, 2 weeks go to development while the test writes test cases
Code is dropped formally to test, test starts raising bugs. Even if there is 1 root cause for 10 different issues, and its an easily fixed one, developers are not allowed to give fresh code to test for the next 1 week. After 2-3 such drops to test the code is given to the ops team as a "golden drop"
( 2 months passed from the beginning)
- Ops team will now deploy the code in a staging environment. If it runs stable for a week, it will be promoted to UAT and after 2 weeks of that it will be promoted to prod. If there are any bugs found here, well, applying for a visa requires less paperwork
This entire process is followed even if a single SSRS report is to be released.
How do other companies process such requirements? I'm wondering why, the business cannot just drop the requirements to developers, developers build and deploy to UAT themselves, expose it to the business who raise functional bugs and after fixing those promote to prod. (even for more complex stuff)