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

Speed as a workplace habit

Speed as a workplace habit

Presented at the First International TDD conference on July 10, 2021.
Video link https://youtu.be/-_noEVCR__I?t=30507

In the early days of my career as a software engineer, I misunderstood activity for progress. Adopting TDD has given me apparent benefits like delivering higher quality software quickly and fixing bugs without breaking the rest of the software; it has also sensitized me towards inefficiencies that slow me down from getting work done.

In this talk, I will discuss my habits and a few case studies from projects that I have worked on and how I used appropriate tools or build a few when quick feedback and speed were necessary.

Ragunath Jawahar

July 11, 2021
Tweet

More Decks by Ragunath Jawahar

Other Decks in Programming

Transcript

  1. Ragunath Jawahar / @ragunathjawahar
    Speed as a workplace habit
    (in
    fl
    uenced by TDD)

    View Slide

  2. Background
    2012 2017 2021
    Zongnan Bao on Unsplash

    View Slide

  3. Background
    2012 2017 2021
    Zongnan Bao on Unsplash

    View Slide

  4. Background
    2012 2017 2021
    Zongnan Bao on Unsplash

    View Slide

  5. Background
    2012 2017 2021
    Zongnan Bao on Unsplash

    View Slide

  6. Background
    2012 2017 2021
    Zongnan Bao on Unsplash

    View Slide

  7. TDD & Feedback Loops

    View Slide

  8. 1/9

    View Slide

  9. 2/9

    View Slide

  10. 3/9

    View Slide

  11. 4/9

    View Slide

  12. 5/9

    View Slide


  13. View Slide

  14. 6/9

    View Slide

  15. 7/9

    View Slide

  16. 8/9

    View Slide

  17. 9/9

    View Slide

  18. Key Moments

    View Slide

  19. 1/3 Missing Class

    View Slide

  20. View Slide

  21. View Slide

  22. Action 㲗 Consequence Time

    View Slide

  23. Action 㲗 Consequence Time
    Immediate

    View Slide

  24. Action 㲗 Consequence Time
    Immediate

    Attention

    View Slide

  25. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    View Slide

  26. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response

    View Slide

  27. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response
    Suggestive

    View Slide

  28. 2/3 Failing Test

    View Slide

  29. View Slide

  30. View Slide

  31. Action 㲗 Consequence Time

    View Slide

  32. Action 㲗 Consequence Time
    Immediate

    View Slide

  33. Action 㲗 Consequence Time
    Immediate

    Attention

    View Slide

  34. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    View Slide

  35. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response

    View Slide

  36. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response
    Informative

    View Slide

  37. 3/3 Passing Test

    View Slide

  38. View Slide

  39. View Slide

  40. Action 㲗 Consequence Time

    View Slide

  41. Action 㲗 Consequence Time
    Immediate

    View Slide

  42. Action 㲗 Consequence Time
    Immediate

    Attention

    View Slide

  43. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    View Slide

  44. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response

    View Slide

  45. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response
    Informative

    View Slide

  46. Breakdown

    View Slide

  47. View Slide

  48. Action
    Consequence
    Time

    View Slide

  49. Action
    Consequence
    Time
    Immediate

    View Slide

  50. Action
    Consequence
    Time
    Immediate Tolerable

    View Slide

  51. Action
    Consequence
    Time
    Immediate Tolerable Forever

    View Slide

  52. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention

    View Slide

  53. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention Active

    View Slide

  54. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention Active Passive

    View Slide

  55. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention Active Passive None

    View Slide

  56. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention Active Passive None
    Response

    View Slide

  57. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention Active Passive None
    Response Suggestive

    View Slide

  58. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention Active Passive None
    Response Suggestive Informative

    View Slide

  59. Action
    Consequence
    Time
    Immediate Tolerable Forever
    Attention Active Passive None
    Response Suggestive Informative None

    View Slide

  60. Examples

    View Slide

  61. 1/5 Learning Shortcuts

    View Slide

  62. View Slide

  63. View Slide

  64. Shortcut
    Action Name
    +
    Click Count
    (Informative)
    (Suggestive)

    View Slide

  65. Action 㲗 Consequence Time

    View Slide

  66. Action 㲗 Consequence Time
    Immediate

    View Slide

  67. Action 㲗 Consequence Time
    Immediate

    Attention

    View Slide

  68. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    View Slide

  69. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response

    View Slide

  70. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response
    Suggestive & Informative

    View Slide

  71. 2/5 Learning Shortcuts (2)

    View Slide

  72. View Slide

  73. View Slide

  74. Shortcut
    Action Name
    +
    Click Count
    (Informative)
    (Suggestive)

    View Slide

  75. Action 㲗 Consequence Time

    View Slide

  76. Action 㲗 Consequence Time
    Immediate

    View Slide

  77. Action 㲗 Consequence Time
    Immediate

    Attention

    View Slide

  78. Action 㲗 Consequence Time
    Immediate

    Attention
    Passive

    View Slide

  79. Action 㲗 Consequence Time
    Immediate

    Attention
    Passive

    Response

    View Slide

  80. Action 㲗 Consequence Time
    Immediate

    Attention
    Passive

    Response
    Suggestive & Informative

    View Slide

  81. Key Promoter vs. Key Promoter X

    View Slide

  82. Key Promoter vs. Key Promoter X
    Action 㲗 Consequence Time (Same)
    Immediate

    View Slide

  83. Key Promoter vs. Key Promoter X
    Action 㲗 Consequence Time (Same)
    Immediate

    Attention (Varies)
    Active vs. Passive

    View Slide

  84. Key Promoter vs. Key Promoter X
    Action 㲗 Consequence Time (Same)
    Immediate

    Attention (Varies)
    Active vs. Passive

    Response (Same)
    Suggestive & Informative

    View Slide

  85. 3/5 Writing a blog

    View Slide

  86. Attempts

    View Slide

  87. Attempts
    • Self

    View Slide

  88. Attempts
    • Self

    View Slide

  89. Attempts
    • Self

    • Hiring content editors

    View Slide

  90. Attempts
    • Self

    • Hiring content editors

    View Slide

  91. Attempts
    • Self

    • Hiring content editors

    • Request feedback from friends

    View Slide

  92. Attempts
    • Self

    • Hiring content editors

    • Request feedback from friends

    • Use a tool

    View Slide

  93. View Slide

  94. View Slide

  95. View Slide

  96. Action 㲗 Consequence Time

    View Slide

  97. Action 㲗 Consequence Time
    Immediate

    View Slide

  98. Action 㲗 Consequence Time
    Immediate

    Attention

    View Slide

  99. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    View Slide

  100. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response

    View Slide

  101. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response
    Suggestive or Informative

    View Slide

  102. 4/5 Working with GUIs

    View Slide

  103. View Slide

  104. File

    View Slide

  105. File
    Open repository…

    View Slide

  106. File
    Open repository…
    Open

    View Slide

  107. File

    View Slide

  108. File
    b763ae1b build: automate releases 🎉

    View Slide

  109. File
    b763ae1b build: automate releases 🎉

    View Slide

  110. Action 㲗 Consequence Time

    View Slide

  111. Action 㲗 Consequence Time
    Forever

    View Slide

  112. Action 㲗 Consequence Time
    Forever

    Attention

    View Slide

  113. Action 㲗 Consequence Time
    Forever

    Attention
    None

    View Slide

  114. Action 㲗 Consequence Time
    Forever

    Attention
    None

    Response

    View Slide

  115. Action 㲗 Consequence Time
    Forever

    Attention
    None

    Response
    None

    View Slide

  116. Can we do better?

    View Slide

  117. View Slide

  118. View Slide

  119. View Slide

  120. View Slide

  121. View Slide

  122. View Slide

  123. Action 㲗 Consequence Time
    Forever

    Attention
    None

    Response
    None

    View Slide

  124. Action 㲗 Consequence Time
    Forever Tolerable

    Attention
    None

    Response
    None

    View Slide

  125. View Slide

  126. Save inputs

    View Slide

  127. Save inputs
    Action 㲗 Consequence Time
    Forever Tolerable

    Attention
    None

    Response
    None

    View Slide

  128. Save inputs
    Action 㲗 Consequence Time
    Forever Tolerable Immediate

    Attention
    None

    Response
    None

    View Slide

  129. 5/5 Exploratory Problem Solving

    View Slide

  130. Privacy-focused Personal Finance

    View Slide

  131. View Slide

  132. Action 㲗 Consequence Time

    View Slide

  133. Action 㲗 Consequence Time
    Immediate

    View Slide

  134. Action 㲗 Consequence Time
    Immediate

    Attention

    View Slide

  135. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    View Slide

  136. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response

    View Slide

  137. Action 㲗 Consequence Time
    Immediate

    Attention
    Active

    Response
    Informative

    View Slide

  138. Excellent feedback cycles

    View Slide

  139. Excellent feedback cycles
    • Fail fast

    View Slide

  140. Excellent feedback cycles
    • Fail fast

    • Grab our attention

    View Slide

  141. Excellent feedback cycles
    • Fail fast

    • Grab our attention

    • Suggest corrective action

    View Slide

  142. Closing notes

    View Slide

  143. Closing notes
    • Feedback cycles need not be excellent

    View Slide

  144. Closing notes
    • Feedback cycles need not be excellent

    • Zoom in and out to identify and improve feedback cycles

    View Slide

  145. Closing notes
    • Feedback cycles need not be excellent

    • Zoom in and out to identify and improve feedback cycles

    • Perform cost-bene
    fi
    t analysis before improving a cycle

    View Slide

  146. Closing notes
    • Feedback cycles need not be excellent

    • Zoom in and out to identify and improve feedback cycles

    • Perform cost-bene
    fi
    t analysis before improving a cycle

    • CLI frameworks enable exploratory problem solving and bug discovery at
    scale

    View Slide

  147. Robert C. Martin, Clean Architecture

    “The only way to go fast, is to go well.”

    View Slide

  148. Queries?
    @ragunathjawahar • https://ragunath.xyz

    View Slide