Software quality is crucial to our work. We strongly believe in the values of agile development, and consistently adopt a SCRUM-based methodology to project development.
In addition to developers, our teams are coordinated by a "product owner". The product owner is a senior project manager that has the responsibility of interacting with the client and handling the "product backlog", i.e., the specification document.
A quality-assurance manager is responsible for tests and verification. We develop regression tests, both for application-logic unit tests, and for functional and integration tests.
At the root of agile development stands the ability to embrace change. Specifications change, users desires change, technology change.
As prescribed by agile methodologies and specifically by SCRUM, we organize the development process in small iterations, called "sprints", typically of two weeks. Each sprint generates a preliminary release that users may interact with to perform acceptance tests. This proves crucial in refining the backlog and improving the quality of the final version.
In both these contexts there is typically a strong need to refine the initial vision for the project, and designing too much in advance is counterproductive. We therefore encourage clients to experiment with early prototypes and to evolve the specification accordingly.