A software project is a complicated and dynamic process. No matter which methodology you adopt, it's difficult to deliver a software project on time and on budget and to the required quality, not least because seemingly everything changes along the way.
One of the key foundations of any software project is to have all of the necessary stakeholders identified and their roles agreed upon early on. This establishes the purpose and value of each contributor, and when they are required by the project.
Similar to software development methodologies, there are many differing views on this particular topic, partly because software projects are so unique. Each project is so different from another, even if it's being delivered by the same people. No business problem is exactly the same. So, no solution, nor how it's developed...