What else contributes to quality before testing?
What else contributes to quality before testing
!NOTE: This is pretty much just a dump from the session, needs some cleanup
Jason Yip introduces the idea from past experience where some issues were found in production and this introduces the idea of how can you catch this earlier.
Time boundary Multiple people
Think => Produce => Inspect =>
Inspect phase is expensive to find issues
What can you do in Think/produce phase to catch defect early?
- Team Selection
- Engineering practises
- Commodity technologies
- Amenable to good practice
- Get in customer head space - Gaining emotional connection to context
- Get domain experts
How can this be tested?
- PokaYoke - Make things mistake proof
- Design by Contract e.g. Eiffel
- Cultural norms - How do you get everyone thinking about quality?
There are a lot of things we can do but are we addressing the right problem? (i.e. DBC)
Examples of Commodity Techs ETL - Extraction Transform Loads
- These ETL tools were hard to test and this was found out early by people asking these questions. How are we able to unit test this, CI it.
Quality Definition - Quality is not the determination of your marketing, engineering, QA or sales divisions. It is determined wholly by your customer in what their both conscious of and not conscious of.
Concurrent Set based approach - Attack multiple solutions at once. Safe, medium, risky
Correct budgeting model
- Traditional, scope project, assign total cost and work for years
- Other, smaller cost to work out if possible
Getting into customer heads pace, Examples
- Watched a service station clerk do their job all day
- Witnessed a bank teller reduced to tears because of their software
- Another e.g. - In a complex system, Medical - nurses, doctors etc.. So they opened up the whole development system so the customer can input and change. Use cases in JIRA/Wiki
- Domain Experts are really proxies because they can't represent EVERY ones opinion.
- Can you get 'too' embedded. And not able to see the whole process.
Two techniques
- Embed domain expert in team
- Depending on costs embed the team in the customers head space
Is Quality == Maintainability? Aligned but not equal. Quality does contribute to maintainability but they are not equal. You can have a perfectly maintainable product but it does not have any business value.
Quality is what the software is doing when its running. It can be functional but not reliable.