Often, the customer understands the business domain and requirements better than anyone else, but even the customer finds that the true requirements and priorities are emergent during development. And in a complex and fast-changing technology domain, there are often technology limitations and possibilities not considered by either the customer or the developers prior to the project start. We believe that we need customer involvement throughout the development effort. We develop the software in small incremental steps, continually delivering the customer working software, as measured by the customer in that they find the software useful, usable, and defect free. And with the customer continually giving feedback, requirements and priorities are discovered allowing changes to be made early.
We take customer collaboration further, we see that it is critical for the software engineers to be immersed in the customer environment. This allows the software engineer to see how the product solves real customer problems and provides real business benefits and to understand the environment that the software will be integrated into. As you will see from the tenets, satisfying the customer or end user
is central to our software approach. The intention of software, after all, is to connect people, improve efficiency, assist exploration, enhance health care and generally have a positive effect on someone’s life.