We divide our projects into repeated time-boxed cycles called iterations. Each iteration is usually two weeks long, and focuses on implementing one particular ‘slice’ of functionality. We work through the stages of an iteration as a team: from specifying requirements to design, development, testing, and finally deployment.