ICS utilizes an agile process that employs test-scenario based development, on-demand code reviews, and automated testing. Depending on the project and customer, we use sprint-based development, especially for longer phases. Sprint-based development divides the development during a phase into sprints, each of which typically lasts 2 or 3 weeks. We use continuous integration to maintain continually demo-able, high-quality code that shows continuous improvement. This phase includes development of the code and appropriate documentation to match the design, and of the tests to match the test scenario descriptions.