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 Slide

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

    View 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 Slide

  4. Quality in Software
    Development Life Cycle
    The true story

    View 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 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 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 Slide

  8. 8

    View Slide

  9. Where the quality starts for you?
    9

    View Slide

  10. Where the quality starts for you?
    10

    View Slide

  11. The quality never starts and never ends
    11

    View Slide

  12. We should care on every stage
    12

    View Slide

  13. Shift left approach
    explained

    View Slide

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

    View Slide

  15. ..but the stats shows some benefits
    15

    View Slide

  16. 16
    Enable awareness & attention early

    View Slide

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

    View Slide

  18. 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 Slide

  19. Cognitive approach
    explained

    View Slide

  20. 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 Slide

  21. 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 Slide

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

    View Slide

  23. Cognitive science theories
    useful in software development

    View Slide

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

    View Slide

  25. Gestalt: mind hunts the schemas
    25

    View Slide

  26. Gibson affordances: mind hunts the
    possibilities
    26

    View Slide

  27. Anti-pattern case study

    View Slide

  28. “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 Slide

  29. Success story case study

    View Slide

  30. “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 Slide

  31. Tools, tips & tricks
    for daily use

    View Slide

  32. 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 Slide

  33. Definition of Ready, Definition of Done
    33

    View Slide

  34. 5 why analysis for prevention
    34

    View Slide

  35. 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 Slide

  36. Summary

    View Slide

  37. 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 Slide

  38. 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 Slide

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

    View Slide