Once we are kicked off with the project, the first task we do is planning the iterations. Let us briefly explain about the workflow here.
An Iteration can be considered as major release. The duration of an iteration is of 1 month. Clients have a product with set of desired features. Then project owner, technology owner and client sit down and pick up the most important features / user stories that are doable in a month. And all of these tasks are put into backlog.
Once the Iteration is planned, we move onto sprint plan. A sprint is either of 1 week or 2 weeks but not more than that. So that in one iteration we cover min 2 sprints or maximum 4 sprints.
At the end of each sprint we deliver a testable product to the client and get the feedback about it. All the bugs are logged, if there are any and they become part of the next sprint.
Accommodating time for Bug fixed and Changes
90% of the times, when we see a working prototype, we tend to come with some minute changes or some big changes, that are important to improve the UX of the application. So usually we keep the last sprint of each iteration for bug fixes and changes in the flows. If the changes are very big, then they become part of the next iteration or they are split into multiple chunks and taken up partly.
So in this manner, at the end of each iteration we have a working product. After completion of the iteration, or usually in the last sprint of an iteration; project owner, technology manager and client sit up together for planning the next iteration or if there is any need of next iteration. And the same cycle is followed.