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

E3f080d6ce9b67c8758da937d444b7ec?s=128

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
  2. whoami? 2 • Software Quality Assurance Engineer • MSc. in

    Cognitive Science • sprinter
  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
  4. Quality in Software Development Life Cycle The true story

  5. Software quality stands for: 5 • technical & business values

    • dimensions like functionality, reliability, usability, measurability, maintainability, -other abilities • standards like ISO, IEEE, GDPR (...)
  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
  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
  8. 8

  9. Where the quality starts for you? 9

  10. Where the quality starts for you? 10

  11. The quality never starts and never ends 11

  12. We should care on every stage 12

  13. Shift left approach explained

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

  15. ..but the stats shows some benefits 15

  16. 16 Enable awareness & attention early

  17. Suggested interpretation of “shift left” Shift left = integrate quality

    assurance and testing with development. 17
  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
  19. Cognitive approach explained

  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
  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
  22. Perceptual limitations We err. We miss things. We are humans.

    We need awareness and support in software to cope with our limitations. 22
  23. Cognitive science theories useful in software development

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

    attention gap 24
  25. Gestalt: mind hunts the schemas 25

  26. Gibson affordances: mind hunts the possibilities 26

  27. Anti-pattern case study

  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
  29. Success story case study

  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
  31. Tools, tips & tricks for daily use

  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
  33. Definition of Ready, Definition of Done 33

  34. 5 why analysis for prevention 34

  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
  36. Summary

  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
  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
  39. Thank you for attention! aleksandrakornecka.com girlswhotest.pl joinOLX.com