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

Unlearn Software Quality: Redefine What Should Be Really Cared

Unlearn Software Quality: Redefine What Should Be Really Cared

Lemi Orhan Ergin

November 29, 2022
Tweet

More Decks by Lemi Orhan Ergin

Other Decks in Technology

Transcript

  1. }


    List pfPosList = posList.toList());


    if (pfPosList.isEmpty() || MAIN_CARD_BRANDS.contains(bin.getCardBrand().getName())) {


    throw new PaymentApiPersistentBusinessException("payment-api.posRouting.posNotFound.forInstallposRouting. }


    return pfPosList;


    }


    public List
    fi
    lterForAutoPilot(PosRouting posRouting, List
    availablePosList) {


    List
    fi
    lteredList = availablePosList


    .stream()


    .
    fi
    lter(mpc -> !PosStatus.AUTOPILOT.equals(mpc.getStatus())


    || Objects.isNull(mpc.getPosAutopilotState())


    || (posRouting.isThreeDS() ? mpc.getPosAutopilotState().getIsThreeDsUp() : mpc.getPosAutopilotState().getIsNonThreeDsUp()))


    .collect(Collectors.toList());


    if (
    fi
    lteredList.isEmpty())


    return availablePosList;


    return
    fi
    lteredList;


    }


    UNLEARN
    SOFTWARE
    quality
    redefine
    what should be
    really cared
    LEMİ ORHAN ERGİN
    CO-FOUNDER, CRAFTGATE

    View Slide

  2. View Slide

  3. What is Software Quality?

    View Slide

  4. What is Software Quality?
    newly written software


    no bugs, no vulnerabilities


    sonar report A category


    100% code coverage


    50,000 unit tests processed


    150 microservices


    go + serverless + mongodb + next.js


    AI-powered codeless test automation platform


    having a scrum master + running sprints


    dramatic increase in velocity of the team


    tdd, bdd, atdd

    View Slide

  5. Quality is conformance to
    requirements, not goodness
    Book
    Quality is still free: making quality certain in uncertain times.
    New York/London, McGraw-Hill, 1996
    Reference:
    Philip Crosby
    Author, consultant and philosopher


    Developed practical concepts to define quality
    and zero-defects concept

    View Slide

  6. customer satisfaction
    is ?
    the goal

    View Slide

  7. customer satisfaction is the goal
    sustainable

    View Slide

  8. customer satisfaction
    sustainable
    having features customers require


    working as expected


    zero bugs


    no downtime


    fast performance


    easy to use


    adding new features fast


    good customer support
    #working as expected
    #proven fast #right product

    View Slide

  9. customer satisfaction
    sustainable
    adding new features


    changing existing features


    coming/leaving team members


    upgrades at libraries


    newly detected bugs


    scalability needs


    disaster scenarios


    growing technical debt
    #easy to change #competent team #affordable

    View Slide

  10. customer satisfaction
    sustainable
    software quality is reaching

    View Slide

  11. Inspection does not improve the
    quality, nor guarantee quality.
    Inspection is too late. The quality,
    good or bad, is already in the product.
    Book
    In Out of the Crisis, The MIT Press, 1982
    Reference:
    W. Edwards Deming
    Widely acknowledged as the leading
    management thinker in the field of quality

    View Slide

  12. customer satisfaction
    sustainable
    quality cannot be added later


    start with quality concerns
    1
    quality is like security, all attempts at later stage is about prevention
    assuring the quality after development


    does not make software better at quality,
    it lowers the quality due to last minute patches


    and makes a late project later

    View Slide

  13. The purpose of organization is to
    reduce the amount of communication
    and coordination necessary;

    hence organization is a radical attack
    on the communication problems.
    Book
    The Mythical Man-Month, Anniversary Edition:

    Addison-Wesley Publishing Company, 1995.
    Reference:
    Fred P. Brooks
    Computer Architect, Author,

    Turing Award Winner 1999

    View Slide

  14. http://www.cs.umd.edu/~basili/publications/proceedings/P125.pdf
    Organizational metrics has more
    impact on quality than the impact
    of code churn, code complexity,
    code coverage, code dependencies
    and pre-release defect measures
    Sample Organizational Metrics

    View Slide

  15. customer satisfaction
    sustainable
    Org. structure has the biggest impact


    Invest in people and org. structure
    2
    work with meticulous, disciplined, fast learners loving collaboration

    and cultivate a healthy company culture
    it also allows neighborhood pressure in a good sense

    View Slide

  16. Pragmatic innovation is about identifying
    the technology that actually solves your
    specific problems. It’s not about
    technology for technology’s sake, trial
    and error, or crossing your fingers and
    hoping for the best.
    Article
    https://tecknoworks.com/choosing-the-right-technology-for-
    your-business/
    Reference:
    Razvan Furca
    CEO and Chief Innovation Lifeguard at
    Tecknoworks, leader at digital transformation

    View Slide

  17. customer satisfaction
    sustainable
    be pragmatic and wise


    use technologies you are good at
    3
    or select the ones you don’t know, but you can expertise fast
    how can you claim you can deliver quality

    when you are not good at the technologies used ?

    View Slide

  18. In 2017 we found that, when compared to low
    performers, the high performers have:


    • 46 times more frequent code deployments


    • 440 times faster lead time from commit to deploy


    • 170 times faster mean time to recover from downtime


    • 5 times lower change failure rate (1/5 as likely for a
    change to fail)
    Accelerate: The Science of Lean Software and DevOps:

    Building and Scaling High Performing Technology Organizations
    Jez Humble & Gene Kim

    View Slide

  19. customer satisfaction
    sustainable
    always be ready to deploy to prod


    release changes early & frequently
    4
    invest in CI/CD pipeline from day one
    shorten feedback loops with efficient pipelines


    and make changes available to customers fast

    View Slide

  20. There are two ways of constructing a software
    design:


    One way is to make it so simple that there are
    obviously no deficiencies,


    and the other way is to make it so complicated
    that there are no obvious deficiencies
    Lecture
    from part of his 1980 Turing Award Lecture (published in
    Communications of the ACM, February 1981, pp. 75-83
    Reference:
    Tony Hoare
    Computer Scientist, Creator of Quicksort,

    Turing Award Winner 1980

    View Slide

  21. The measure of design quality is
    simply the measure of the effort
    required to meet the needs of the
    customer.
    Book
    Clean Architecture
    Reference:
    Robert C. Martin
    Author of Clean Code, Creator of

    Software Craftsmanship Movement

    View Slide

  22. customer satisfaction
    sustainable
    continuously refactor to keep the design simple
    5
    follow design principles and TDD, separate the code changing frequently from
    the code holds technology specific complexity, prefer modularity, delay
    decisions to last responsible moment, design simple
    simplicity is about achieving loose coupling and high cohesion
    majority of people do not know what is simple design,
    what makes it different in reality
    keep codebase easy to change

    View Slide

  23. The only test coverage goal that makes
    any sense is 100%. It’s an asymptotic
    goal. You’ll likely never get there. But
    you should never stop trying.
    Twitter
    https://twitter.com/unclebobmartin/status/1205922909350293505
    Reference:
    Robert C. Martin
    Author of Clean Code, Creator of

    Software Craftsmanship Movement

    View Slide

  24. Being proud of 100% test coverage is
    like being proud of reading every
    word in the newspaper. Some are
    more important than others.
    Twitter
    https://twitter.com/kentbeck/status/812703192437981184
    Reference:
    Kent Beck
    Creator of Extreme Programming,

    co-author of Agile Manifesto

    View Slide

  25. If someone says "this code is hard to
    test", it means "your design simply
    sucks"
    His Talk at Devoxx Poland
    https://www.youtube.com/watch?v=pnRAnP8MgBc
    Reference:
    Venkat Subramaniam
    Programmer, Author, Speaker,
    Founder Agile Developer

    View Slide

  26. customer satisfaction
    sustainable
    write comprehensive test suite


    keep your design testable
    6
    learn how to write better tests, not as many as you can
    do not abuse sonar reports, code coverage and any

    metrics about codebase, prove fast

    View Slide

  27. 84% of companies that work to improve their
    customer experience report an increase in their
    revenue.


    96% of customers say customer service is important
    in their choice of loyalty to a brand.


    Customer-centric companies are 60% more profitable
    than companies that don’t focus on customers.
    https://www.forbes.com/sites/blakemorgan/2019/09/24/50-stats-that-prove-the-value-of-customer-experience/
    50 Stats That Prove The Value Of Customer Experience
    Blake Morgan, Forbes

    View Slide

  28. customer satisfaction
    sustainable
    get the best feedback you ever get


    learn from customers directly
    7
    know how customers feel, what they want, what they don’t like

    View Slide

  29. Software design is all about trade-offs
    and no software quality tool will ever
    be able to understand the rationale
    behind each design decision.
    Blog Post
    Code quality cannot be measured


    https://www.codurance.com/publications/2014/12/14/
    quality-cannot-be-measured
    Reference:
    Sandro Mancuso
    Founder of Codurance and author of

    “The Software Craftsman” book

    View Slide

  30. customer satisfaction
    sustainable
    quality cannot be measured


    don’t fool yourself, stop measuring it
    8
    when a measure becomes a target, it ceases to be a good measure
    - Goodhart’s Law

    View Slide

  31. https://qualizeal.com/wp-content/uploads/2022/whitepapers/
    A%20Seamless%20and%20Successful%20Transition%20from%20Quality%20Assurance%20to%20Quality%20Engineering.pdf
    While Quality assurance only ensures the quality of the
    product, quality engineering facilitates the development
    of quality products and the processes.
    Reference: A Seamless and Successful Transition from Quality Assurance to Quality Engineering White Paper by Qualizeal

    View Slide

  32. customer satisfaction
    sustainable
    quality makes you go faster


    make quality a mindset, not a step
    9
    stop being a gatekeeper, or police. be involved in discussions.
    more from quality assurance to quality engineering

    View Slide

  33. 1
    Invest in people and
    organization structure
    use technologies you are
    good at
    release changes early and

    frequently
    keep your design testable
    learn from customers directly
    don’t fool yourself,

    stop measuring quality
    make quality a mindset,
    not a step
    2
    3
    4
    5
    6
    7
    8
    9
    start with quality concerns
    keep codebase easy

    to change
    TAKEAWAYS
    KEY

    View Slide

  34. THANK YOU FOR


    SHARING YOUR TIME


    WITH ME
    speakerdeck.com/lemiorhan


    twitter.com/lemiorhan
    lemi orhan ergin
    co-founder, craftgate
    mail: [email protected]

    View Slide