Planning for Success • Development Process
Our development process is grounded on Agile Development principles. We blend engineering-focused Extreme Programming and project-management focused Scrum methodologies to secure predictable results and maintain flexibility. Key aspects of our development process include:
Unit testing – Unit tests for code should be automated and repeatable. By providing automated tests at the lowest level, individual functions can be tested in isolation. When changes are required, it’s easy to see if existing tests have been broken.
Continuous integration – Integrating code from different developers at the end of a project or even the end of a week can be painful and counter-productive. Our developers ensure that all tests pass and that code functions in an integrated environment before any task is closed.
Collective Ownership – Each member of our development team is responsible for each aspect of the system. We avoid assigning individual team members to individual parts of the system so we can maintain an open and collaborative approach.
Visibility – Our daily build server is used by the development team to verify new functionality and changes are always accessible to the core team. This environment is also allows team members to see progress throughout each week.
Feedback – At the conclusion of each development iteration, our team demos the functionality we’ve built back to our client. Feedback is an essential part of every successful solution and is encouraged throughout the entire project.
Quality Assurance and Testing
The development process includes three main categories of testing:
Unit and functional testing – During each development iteration, the development team will conduct unit and functional testing on stories for that iteration. These tests take the form of both manually and automated tests.
Iterative QA – At the end of each development iteration, the integrated system is deployed to a QA environment. During the subsequent iteration, testing is conducted, based on completed stories. If bugs are found, they’re immediately fed back into the development process for resolution.
System QA – At the end of the development cycle, full system testing begins, encompassing a full regression of all the functionality in the system.
Performance and Production Readiness – Page performance is tested under system availability as well as typical and peak load.