Our Approach To Quality
The term quality in the context of software is ambiguous. To some, quality might
mean security and accuracy, while to others it might mean usability and maintainability.
Whatever quality means to your organization, Full Discourse seeks to maximize the
level of quality for your project. We always consider all apsects of quality, but
we adjust our prioritization based on your unique constraints.
Software development is a complex process that cannot be managed like the well defined
processes found in manufacturing environments. To maximize quality and minimize
risk, the principles of empirical process control – Visibility, Inspection, and
Adaptation – must be used to govern the software development process.
- Visibility - The fundamental tenet of the Discourse Programming™
is that the status of the project schedule and the work of the Software Development
Team must be
transparent
to the Product Owner and Stakeholders (the Business Team).
- Inspection - The Business Team must conduct frequent inspection
of the software product to ensure that its functionality and direction accurately
reflect and respond to current business requirements. The conversational feedback
from the Business Team to the Development Team is a critical success factor of Discourse
Programming™.
- Adaptation - As the Business Team regularly inspects the software
product, it will discover that requirements need to be changed. The software development
process must permit constant requirement changes as it proceeds. Prioritization
of the work must be driven by the Product Owner, in response to current business
requirements.
Defect Prevention
Our software developers use a test first technique known as
Test Driven Development.
This results in automated tests suites, which is a valuable deliverable that makes
future maintenance easier and less error prone. Writing tests first results in clearer
more reusable code and it also saves considerable time debugging, which by the way
is the most time consuming part of software development. Our developers constantly
run these tests to make sure that previously written code continues to work.