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

About code reviews and BUGS

About code reviews and BUGS

Adopting code review into the software development practice is a good way to drive high quality code, improve team communication and knowledge sharing. We'll look at the best strategies to adopt it and continue to use it in the most proficient way.

Presentation held during an #apericoder of the montacchiello.dev group.

Giovanni Toraldo

June 27, 2019
Tweet

More Decks by Giovanni Toraldo

Other Decks in Programming

Transcript

  1. About code reviews
    and BUGS

    View full-size slide

  2. Famous software in history
    ● 1962 - NASA Mariner 1 mission, spacecraft destroyed
    ○ 18 million USD
    ● 1988 - Morris Worm experiment at MIT
    ○ 50.000 USD
    ● 1994 - Pentium FDIV
    ○ 475 million USD
    ● 2010 - Mt. Gox bitcoin exchange
    ○ 850.000 bitcoins
    ● 2012 - Knight Capital Group investments
    ○ 440 million USD

    View full-size slide

  3. The cost of a

    View full-size slide

  4. Test failure while
    coding, immediate fix
    1 €

    View full-size slide

  5. A colleague spots a bug
    during code review,
    few minutes fix
    10 €

    View full-size slide

  6. During QA testing, receive a
    vague bug report, spend time
    reproducing it, write the fix
    and release after an hour
    100 €

    View full-size slide

  7. In production, different users
    spot the a bug “it just don’t
    work”, 8 hours of work
    1000 €

    View full-size slide

  8. Too many defects, release
    postponed by few weeks
    10.000 €

    View full-size slide

  9. Too many defects and missing
    features, release postponed by
    months 100.000 €

    View full-size slide

  10. Release to production even
    with many defects and
    missing features: bad user
    experience, loss of credibility
    project failure

    View full-size slide

  11. Good to have practices to the rescue
    ● Source code VC
    ● Bug tracker
    ● Dependency Management
    ● Configuration Management
    ● Automated deployment
    ● Continuous Integration
    ● Data management
    ● Continuous delivery
    ● Code reviews

    View full-size slide

  12. 1. Write code
    2. Ask for feedback
    3. Repeat until OK

    View full-size slide

  13. Find bugs before
    your customers do

    View full-size slide

  14. Meets specifications

    View full-size slide

  15. Shared ownership

    View full-size slide

  16. Keep the bar high

    View full-size slide

  17. Leave a written trail

    View full-size slide

  18. Mentorship by default

    View full-size slide

  19. Asynchronous feedback

    View full-size slide

  20. HOW
    (as a submitter)

    View full-size slide

  21. Avoid wall of diff

    View full-size slide

  22. Contain not
    interesting changes

    View full-size slide

  23. Solve one thing at a
    time

    View full-size slide

  24. Provide context

    View full-size slide

  25. Highlight most
    interesting points

    View full-size slide

  26. Respect for your
    colleagues time

    View full-size slide

  27. HOW
    (as a reviewer)

    View full-size slide

  28. Learn context
    before starting

    View full-size slide

  29. Give feedback that helps

    View full-size slide

  30. Look for missing tests
    and edge cases

    View full-size slide

  31. Pay attention to
    what tools can’t find

    View full-size slide