Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Code Europe conference: Quality shifted left with the cognitive approach

Code Europe conference: Quality shifted left with the cognitive approach

Let's shift left the quality with cognitive approach to software development life cycle!
When or where the quality starts in your opinion? How do you perceive your code before you write a line of code?

I invite you for a walk with cognitive approach to software development.
During the talk I will share my approach to quality assurance that allows me and my team to shift left and maximize our effectiveness.

Maybe you would say it is a quality evangelism, but in fact it is just the mindset that makes all the meetings and tasks sensible again.

Meet cognitive science heuristics, tips & tricks that rescue us from the daily mess.

Source: https://www.codeeurope.pl/en/schedule?city=poznan#t-poznan-quality-shifted-left-with-the-cognitive-approach-3590

Aleksandra Kornecka

June 12, 2018
Tweet

More Decks by Aleksandra Kornecka

Other Decks in Technology

Transcript

  1. Quality shifted left with
    the cognitive approach
    Aleksandra Kornecka OLX Group

    View full-size slide

  2. whoami?
    2
    ● Software Quality Assurance Engineer
    ● MSc. in Cognitive Science
    ● sprinter

    View full-size slide

  3. Agenda
    1. Decoding the title :-)
    2. Quality in SDLC.
    3. Shift left approach.
    4. Cognitive approach.
    5. Case study: anti-pattern & success story.
    6. Tools, tips & tricks.
    7. Summary.
    3

    View full-size slide

  4. Quality in Software
    Development Life Cycle
    The true story

    View full-size slide

  5. Software quality stands for:
    5
    ● technical & business values
    ● dimensions like functionality, reliability, usability, measurability,
    maintainability, -other abilities
    ● standards like ISO, IEEE, GDPR (...)

    View full-size slide

  6. Quality factors
    ● We craft the software.
    ● We own the process of developing the software.
    ● We take responsibility for the process and its product - software.
    6

    View full-size slide

  7. Quality factors
    ● We craft the software.
    ● We owe the process of developing the software.
    ● We take responsibility for the process and its product - software.
    DO WE?!
    7

    View full-size slide

  8. Where the quality starts for you?
    9

    View full-size slide

  9. Where the quality starts for you?
    10

    View full-size slide

  10. The quality never starts and never ends
    11

    View full-size slide

  11. We should care on every stage
    12

    View full-size slide

  12. Shift left approach
    explained

    View full-size slide

  13. “Shift left” is a buzz word, but ...
    14

    View full-size slide

  14. ..but the stats shows some benefits
    15

    View full-size slide

  15. 16
    Enable awareness & attention early

    View full-size slide

  16. Suggested interpretation of “shift left”
    Shift left = integrate quality assurance and testing with
    development.
    17

    View full-size slide

  17. Shift left factors
    1. Failing early (TDD, requirements validation, big picture scoping).
    2. Development driven by gathered insights and data.
    3. Comparing synchronically (A/B testing, users insights).
    4. No sanctuary code, refactor on daily basis.
    5. Automation as business value.
    6. Automated monitoring and alerting.
    18

    View full-size slide

  18. Cognitive approach
    explained

    View full-size slide

  19. Cognitive approach manifesto
    ● Developers, testers, QAs, business stakeholders, end-users are
    humans.
    ● Humans have some perceptual limitations we should mind when
    developing software for humans.
    ● There are cultural differences between human using software.
    20

    View full-size slide

  20. Cognitive means:
    ● considering human mind and brain
    ● considering processes of seeing and feeling
    ● adaptable to haptic (tactile) and visual interfaces
    ● accessible to human perception
    ● usable by human beings
    21

    View full-size slide

  21. Perceptual limitations
    We err. We miss things. We are humans.
    We need awareness and support in
    software to cope with our limitations.
    22

    View full-size slide

  22. Cognitive science theories
    useful in software development

    View full-size slide

  23. Marr theory: brain constructs the view step
    by step, with attention gap
    24

    View full-size slide

  24. Gestalt: mind hunts the schemas
    25

    View full-size slide

  25. Gibson affordances: mind hunts the
    possibilities
    26

    View full-size slide

  26. Anti-pattern case study

    View full-size slide

  27. “Party” company case: never ending
    business request
    - One advertisement feature developed by 3 teams
    - Requirements verification in the very end of development
    - Unwanted feature from developer invention due to lack of business
    communication
    - 2 days of delay for 7 days marketing campaign
    Lesson learned: communicate with business teams, create common
    calendar, update each other, squash branches
    28

    View full-size slide

  28. Success story case study

    View full-size slide

  29. “Pirate company” case: migrating to serverless
    - After lessons learned the recovery plan, checklists, backup scenario
    - Management supporting the migration team
    - Active email and chat communication to organization
    - Pair-programming to teach the new technology stack
    Good practice: learn by experience, create basic checklists, communicate
    with business stakeholders not only tech team
    30

    View full-size slide

  30. Tools, tips & tricks
    for daily use

    View full-size slide

  31. Heuristics when designing
    - recognition rather than recall:
    agree for coherent symbols,
    software vocabulary
    - visibility of system status: apply
    error handling, support user and
    each other with current state up to
    real conditions
    32

    View full-size slide

  32. Definition of Ready, Definition of Done
    33

    View full-size slide

  33. 5 why analysis for prevention
    34

    View full-size slide

  34. Information workflows
    ● knowledge base (not too formal, not too informal like oral only)
    ● communicate efficiently - email+chat+oral when needed
    ● share experience in short, even 30-minutes meetings
    ● write and read incident reports
    ● apply health-checks on releases (CI, versioning)
    ● apply real-time monitoring (e.g. New Relic, Sentry, Fabric)
    35

    View full-size slide

  35. Benefits of quality shifted left in SDLC with
    cognitive approach
    1. Reducing failures and costs in production.
    2. Increasing confidence to own work and product.
    3. Making the development team and end-users satisfied again.
    4. Empowering the teamwork between developers, testers and others.
    5. Stakeholders feeling more control over development.
    6. Increasing human trust and software quality.
    37

    View full-size slide

  36. Key values to take away
    1. Focus at the beginning to avoid surprises at the end.
    2. You contribute to the quality, no matter what role you play.
    3. You build quality in every stage and activity.
    4. Consider humanity as a fact, not an excuse.
    5. Better to communicate too much than too little.
    6. Act like the owner, not the servant.
    7. Information is a king, but teamwork saves the world.
    Presentation sources: https://goo.gl/7wmqr4
    38

    View full-size slide

  37. Thank you for attention!
    aleksandrakornecka.com
    girlswhotest.pl
    joinOLX.com

    View full-size slide