I thought I would add a few words of clarification on the subject of ‘predictability’. It is now widely understood in the agile community that detailed planning for say, a 12-month project, is futile. How many of us have constructed those nice Microsoft Project pert or Gantt charts, showing sequences of interconnected tasks, only to throw them away a few days later as they rapidly became useless. This is what Agile is not: Up-front specifications followed by development of those specifications in a series of iterations. Agile acknowledges that the world changes rapidly and the game is about building and adapting. A realistic planning horizon is more like 90 days, in which the team will do say, 3 iterations. In parallel with this. the product backlog is being continuously groomed, refined, added to and re-prioritized. There is not necessarily any conflict with ISO/TL-9000 here. Define your process as comprising an up-front plan for delivering , say, 90-days worth of feature development, at the end of which the team adaptively plans for the next 90-days with an updated backlog. Overall, a typical 12-month release, is adaptively planned in 90-day time-boxes, within which shorter time-boxes are used to deliver working increments of functionality.