Kloudeye Solutions has been using and improving our agile development methodologies from the start. We combine Test-Driven Development, Pair Programming, short iterations and Continuous Integration, to radically improve software quality and flexibility for reducing time to market and cost.
Kloudeye Solutions offers total transparency into development processes by
Managing functional and system knowledge is an important challenge for offshore teams. Our distinct agile offshore methodology ensures that project knowledge is attained iteratively. We believe in “just enough” documentation that serves the purpose of the project stakeholders and use a 'live and growing' documentation approach to keep the real time knowledge of the project. Our project teams prepares artifacts such as the architecture and design, testing strategy, product backlog that captures the features and user stories with acceptance criteria, the iteration plan and high level release plan.
When we build software, we start by writing tests for every feature we implement. After the tests are in place do we write the code that implements those requirements only. This practice ensures complete test coverage, and a reliable product. Have continuous delivery platforms in place where the code base is integrated and automatically tested against acceptance and performance benchmarks on a daily basis. The actual KPIs and metrics are exposed from the various tools that help measure and benchmark the product quality at any point of time.
When we check in code, a Continuous Integration server kicks in the process and runs all the tests cases to make sure that the code, work correctly in production. If the build breaks the focus of the team shifts to fixing the break, ensure that defects do not get forgotten and have an influence on reliability. By deploying new features to a staging environment, we see the new features in a production setting, that in turn allows for testing to continuously verify desired behavior. Quality happens when you focus on it only.
Our development cycle is kept short that keeps features from drifting out of control for providing an agile mechanism if priority changes are needed.