Through our work, we have discovered better ways of building usable, accessible, reliable, maintainable, secure, scalable and performant software by valuing:
That is, while there is value in the items on the right, we value the items on the left more.
Exploratory testing over scripted-only testing
Shift-left testing over late-stage quality checks
Test design patterns over ad-hoc test cases
API-level validation over UI-only testing
Contract testing over end-to-end only
Continuous testing over scheduled testing windows
Cross-browser automation over single browser focus
Fail as a team over Success as an individual
Continuous Improvement over big bang changes
Collaborative ownership over isolated responsibility
Cross-functional skills over single-domain expertise
Technical debt awareness over feature velocity
Data-driven decisions over intuition
Quality metrics monitoring over pass/fail status
Test data as code over manual test data management
Documentation as code over static documentation
Performance testing in a continuous manner over end-stage load tests
Chaos engineering over stability assumptions
Performance budgets over reactive optimisation
Scalability over short-term solutions
Service virtualisation over complete system dependencies
Security by design over security by audit
Security scanning in pipeline over periodic audits
Accessibility testing integrated over compliance checkpoints
Quality gates automation over manual approvals
Root cause analysis over symptom fixing
Observability by design over reactive monitoring
Quality-driven development over quality as afterthought
Feedback loops over retrospective-only learnings
Test environment parity over production-only validation