Crafting Quality Software

Preview:

Citation preview

Crafting Quality Software

Best Good Practices

Intro - Tarcio

Intro - Adam

What is Quality?

What is Quality?

Meets customer needs

and provides satisfaction

“Fitness for use”(Juran)

“Conformance to requirements”

(Crosby)

“Quality is pride of workmanship”

(Deming)

Freedom fromdefects of

deficiencies

Value of worthiness

Definition of quality

How good or bad something is?

What is Quality?

What is Quality?

What is Quality?

What is Quality?

● Perceptions● Preconditioned● Experiences● Education● Culture● Opinions

Individual Traits

A Historical Perspective of Quality

A Historical Perspective of Quality

A Historical Perspective of Quality

A Historical Perspective of Quality

A Historical Perspective of Quality

Integrate learningsRenew theoriesAdjust methodsDo we need to learn more?

Act

Study(Check)

Do

Plan

Monitor outcomes, test validityof theory. Test the plan. Examine success or unexpected outcomes. Look for new lessons or problems to solve.

Execute the plan, carry out the

activities, apply our best knowledge,

pursue the desired purpose and goals.

Identify purpose and goals. Formulate

theories and proposals. Define

measures of success (and how to measure them). Plan activities.

A Historical Perspective of Quality

● Team motivation.

● Increased customer satisfaction.

● Return on investment.

What are the Benefits of Quality?

● Individual and collective responsibility.

● Individuals can contribute in different ways.

● Starts when an idea is conceived and continues throughout a product’s lifecycle.

Who is Responsible?

Applying Quality

3 Aspects of Software Quality

Process

Structural Functional

What can we do to ensure quality?

Does the software do whatis supposed to do?

Is the software easy to modify and enhance?

Functional and Structural Traits

Correctness

Usability

Efficiency

Reliability

Integrity

Adaptability

Accuracy

Robustness

Maintainability

Flexibility

Portability

Reusability

Readability

Testability

Understandability

Security

FunctionalStructural

Process’ activities

Inception Iteration Zero

Iteration Kick Off

StoryKick Off

Story Walkthrough Release

Development Retrospective

Functional + Structural Quality

UnderstandabilityKnowledge share

PairingBetter

written software

Team Collaboration

Pair Programming

Nope, not like this

Pair Programming

Yeah, more like this

Pair Programming Traits

● Emotionally demanding● Constant learning● Conversational● Collaborative● High quality output● Costly (2 heads per problem)

TIME

Prod

uctiv

ity

Quality

Cost

Testing

Functional + Structural Quality

TestabilityValidates requirements

Confidence

Robustness

● Costs more● No real focus● Slow to run● Longer to write● Too Integrated

Testing Sad Reality

Testing IdealExploratory

Testing

Test Driven Development

Test Driven Development

● Not a silver bullet● Know when to use it● Understand first, TDD later

Unit Testing

Small

Fast

Isolated

Cost effective

Focused

Unit Testing

Helps design

Find issues early

Facilitate change

Facilitate integration

Integration Testing

Two unit tests, no integration test.

Acceptance Testing

Exploratory Testing

Test Design

Test Execution

Analysis

Learn

Other Types of Testing

“You never know what a customer will doto your product until they do it”

- Adam Crough

● Smoke testing.

● Penetration testing.

● Performance testing.

● User testing.

● Accessibility testing.

● Regression testing.

● A/B testing.

● Functional testing.

● Acceptance testing.

● Security testing.

Continuous Integration

● Automate code checks

● Exercise regression testing

● Improves team confidence

Visibility

Continuous Delivery

Plan Build

Release Test

One more thing

User Validation

User Validation - Types

Q & A Observation Prototyping Release early

User Validation - Benefits (Case Study)

18 Month Project

3 months 6 months 9 months

Final thoughts

Collaborate oftenTest, test, test

Automate checksVisualize results

Involve users early

Everyone is responsible for quality

Thank you!

@tarciosaraiva

http://bit.ly/acrough

Recommended