I was going through a question on PMSE when this question struck me. I have been working as a Project Manager for a software company.
Most of our work we get from an agency. The agency in-turn gets that work from some other agency, which may get it from some other agency or the direct client. At the end of this chain there is always a direct client (of course). The following are the two modes in which we get work:
We > Agency #1 > Agency #2 > Client
We > Agency #1 > Agency #2 > Agency #3 > Client
We had initially started following Agile for development, but we soon realized that it is not working for us. The reason being for each sprint, if we have any clarification required or blocked items to be taken care of, it traverses the route from us till the end client.
Under such situation the action items move up in the chain depending upon the priorities of the involved agencies or the clients. Many times, we don't get updates in one single sprint, it spreads to 2-3 sprints to get updates.
As and when we get work items, we analyze and estimate them and send them for approval which may also take weeks or days depending on the availability of the agencies' respective Project / Account Manager. The same applies for approving finished tasks, which is relatively quicker.
We know we cannot fully follow Waterfall like models as-is. We have been thinking of formulating and following a blend of Waterfall, Agile and V-model to make our lives easy.
Given the level of dependency that we have on various stakeholders, what overall development process shall we adopt?