Not always we get to work on an assignment from scratch and build it entirely ourselves. Sometimes, we take up screwed up projects and repair them. Sometimes we are just doing some consulting, or maintenance work. So, whatever process model we adopt had to blend in perfectly with all these different plots. Since several years, the offshore software development teams & outsourced production processes have been plagued by a few common issues. Several small & big projects have failed due to requirements volatility, inefficient communication & consultation, unfinished feedback loops, quality deterioration over time, etc.