$30 off During Our Annual Pro Sale. View Details »

Move fast and keep your code quality

Move fast and keep your code quality

Presented at UIKonf 2017

Francisco Díaz

May 16, 2017
Tweet

More Decks by Francisco Díaz

Other Decks in Technology

Transcript

  1. Move fast
    and keep your code quality

    View Slide

  2. View Slide

  3. This talk
    is not about
    faster development

    View Slide

  4. This talk
    is about
    quality

    View Slide

  5. Productivity
    is a by-product
    of Quality

    View Slide

  6. ⚠ FAIR WARNING ⚠

    View Slide

  7. Not for
    lone wolfs !

    View Slide

  8. My experience
    Not a scientific paper

    View Slide

  9. Francisco
    Díaz
    franciscodiaz.cl
    @fco_diaz

    View Slide

  10. View Slide

  11. Chapter zero
    Quality

    View Slide

  12. Productivity
    is a by-product
    of Quality

    View Slide

  13. View Slide

  14. Option A

    View Slide

  15. Work faster
    Lose product quality

    View Slide

  16. Option B

    View Slide

  17. Work longer
    Lose quality of life

    View Slide

  18. Option C

    View Slide

  19. View Slide

  20. “Look at all
    these shitty
    lines of code I
    just wrote!”
    No one, ever.

    View Slide

  21. We're proud about
    the quality of our work
    Not the quantity

    View Slide

  22. Less quality
    More production bugs

    View Slide

  23. More bugs
    less productivity

    View Slide

  24. 1
    1 Integrating Software Assurance into the Software Development Life Cycle (SDLC)

    View Slide

  25. 100x

    View Slide

  26. Spaghetti code
    More time per new feature

    View Slide

  27. More time per feature
    less productivity

    View Slide

  28. Quality means
    fewer bugs

    View Slide

  29. Quality means
    faster development
    per feature

    View Slide

  30. Who's in charge?

    View Slide

  31. Quality is not
    QA's responsibility

    View Slide

  32. Quality is a
    company wide
    effort

    View Slide

  33. Chapter one
    The
    company

    View Slide

  34. 2010

    View Slide

  35. Early 20s

    View Slide

  36. Must haves:

    View Slide

  37. View Slide

  38. View Slide

  39. View Slide

  40. Nice to have:

    View Slide

  41. View Slide

  42. Startup!

    View Slide

  43. View Slide

  44. View Slide

  45. That's ridiculous

    View Slide

  46. Great work environments 2
    don't need perks
    as bribes
    2 5 Ridiculous Employee Perks That Could Backfire

    View Slide

  47. No increase
    in the quality
    of the product

    View Slide

  48. It just makes people
    stay at work
    longer

    View Slide

  49. How many hours
    you worked in something

    View Slide

  50. How much of something
    you did in an hour

    View Slide

  51. I'm 30
    What do I value in a company?

    View Slide

  52. Promotes
    Personal Growth

    View Slide

  53. Space for
    Learning

    View Slide

  54. Work-Life
    balance

    View Slide

  55. View Slide

  56. Follow the
    money

    View Slide

  57. Travel to
    conferences

    View Slide

  58. Speak at
    conferences

    View Slide

  59. Access to
    books, courses, learning material

    View Slide

  60. Allocate time to
    study

    View Slide

  61. Direct impact
    in the quality
    of your life/work

    View Slide

  62. Work in a company
    that values quality

    View Slide

  63. Chapter two
    The Project

    View Slide

  64. Flat hierarchy?

    View Slide

  65. Flat hierarchy
    is a lie

    View Slide

  66. This is
    informal leadership 3
    3 Cut the bullshit: organizations with no hierarchy don’t exist

    View Slide

  67. Make it explicit

    View Slide

  68. What does a
    manager look like?

    View Slide

  69. More structure
    Distributed responsibilities

    View Slide

  70. What is quality?

    View Slide

  71. Good definition of
    requirements 4
    4 Peopleware: Productive Projects and Teams by Tom DeMarco

    View Slide

  72. Requirements are met
    Good Quality

    View Slide

  73. Short iterations

    View Slide

  74. Context switching

    View Slide

  75. “When interrupted, it
    takes an average of 23
    mins to get back to the
    task. 5
    5 Worker, Interrupted: The Cost of Task Switching

    View Slide

  76. Work like
    you're remote

    View Slide

  77. Rely on
    async tools

    View Slide

  78. Chapter three
    The Team

    View Slide

  79. Teams
    are more important
    than projects

    View Slide

  80. It's hard to form
    a good team
    If it works, keep doing it!

    View Slide

  81. Form projects
    around teams
    not the other way around

    View Slide

  82. Creating
    good teams

    View Slide

  83. Keep'em
    small

    View Slide

  84. Sharing knowledge

    View Slide

  85. Study groups

    View Slide

  86. Standards

    View Slide

  87. Pull Requests
    and
    Code Reviews

    View Slide

  88. View Slide

  89. View Slide

  90. View Slide

  91. Architecture

    View Slide

  92. 6
    6 What comes after VIPER? by Steve Powell

    View Slide

  93. Xcode
    Templates

    View Slide

  94. 7
    7 Xcode Templates por Camilo Vera

    View Slide

  95. Chapter four
    The Developer

    View Slide

  96. Story time!
    Wisdom teeth
    removal

    View Slide

  97. View Slide

  98. Option D

    View Slide

  99. Say no 8
    8 Robert C. Martin - The Clean Coder

    View Slide

  100. Be professional

    View Slide

  101. “But we really,
    really need this
    by Friday”
    Someone, right now.

    View Slide

  102. In summary...

    View Slide

  103. Move faster
    by ⬆ your productivity

    View Slide

  104. ⬆ productivity
    by increasing the
    quality

    View Slide

  105. Quality
    first

    View Slide

  106. There's no silver bullet

    View Slide

  107. Company

    View Slide

  108. Project

    View Slide

  109. Team

    View Slide

  110. Be a
    professional
    developer

    View Slide

  111. Danke schön
    @fco_diaz
    franciscodiaz.cl
    bennygiang, yasminenadery, callmenick, mackflavelle, aznick, fkenji,
    kcfitz, pierrebeugnot, azenMatt, kimcope, FerRZ, WrenHandman,
    camovrbz, guilegaspar, s-powell, pazams, alecmorgana, hexiumz,
    chrisaxiom, jfmaggie, EricLin2004, turbolent, roham, annatangzhao,
    Cassidy-Robertson, ziacastillo, kinhderella, acroca, dete, ni-ko1,
    danidiazreyna, arthurcamara1, Mathieuu, creedarky

    View Slide