It must be that end-to-end software production process is on my mind. I keep spotting interesting articles about the topic. Here’s one from Digital Dim Sum which delves into the way that requirements find their way into development, contrasting a “push” of requirements with a “pull” of information..
My favourite process at the moment is a more “pull”-centred process than many I have seen. Anyone is free to write and contribute “user stories” at any time. From time to time ones which seem valuable are pulled into a “planning poker” game for estimation. Before each iteration of work, a mixed group of stakeholders gets together to pull a fixed amount of development effort from the pool of available estimated stories into the next iteration schedule. Developers then pull stories from those scheduled for the iteration, work on them and place them in a pool of implemented stories. When the integration test team are ready, they pull a build containing stories implemented so far and test it. Meanwhile the customer deployment team may pull and deploy any tested build at any time.
As an abstract process this seems streamlined but there may, of course, be practical issues.