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

Code Europe conference: Quality shifted left wi...

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. 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
  2. Software quality stands for: 5 • technical & business values

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

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

    We need awareness and support in software to cope with our limitations. 22
  10. “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
  11. “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
  12. 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
  13. 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
  14. 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
  15. 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