Software development methodology which intends to improve software quality and responsiveness to changing customer requirements.