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.

A8ee6ea52b89dfa1388b592a260c60a6?s=128

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)
  2. Background 2012 2017 2021 Zongnan Bao on Unsplash

  3. Background 2012 2017 2021 Zongnan Bao on Unsplash

  4. Background 2012 2017 2021 Zongnan Bao on Unsplash

  5. Background 2012 2017 2021 Zongnan Bao on Unsplash

  6. Background 2012 2017 2021 Zongnan Bao on Unsplash

  7. TDD & Feedback Loops

  8. 1/9

  9. 2/9

  10. 3/9

  11. 4/9

  12. 5/9

  13. 6/9

  14. 7/9

  15. 8/9

  16. 9/9

  17. Key Moments

  18. 1/3 Missing Class

  19. None
  20. None
  21. Action 㲗 Consequence Time

  22. Action 㲗 Consequence Time Immediate

  23. Action 㲗 Consequence Time Immediate Attention

  24. Action 㲗 Consequence Time Immediate Attention Active

  25. Action 㲗 Consequence Time Immediate Attention Active Response

  26. Action 㲗 Consequence Time Immediate Attention Active Response Suggestive

  27. 2/3 Failing Test

  28. None
  29. None
  30. Action 㲗 Consequence Time

  31. Action 㲗 Consequence Time Immediate

  32. Action 㲗 Consequence Time Immediate Attention

  33. Action 㲗 Consequence Time Immediate Attention Active

  34. Action 㲗 Consequence Time Immediate Attention Active Response

  35. Action 㲗 Consequence Time Immediate Attention Active Response Informative

  36. 3/3 Passing Test

  37. None
  38. None
  39. Action 㲗 Consequence Time

  40. Action 㲗 Consequence Time Immediate

  41. Action 㲗 Consequence Time Immediate Attention

  42. Action 㲗 Consequence Time Immediate Attention Active

  43. Action 㲗 Consequence Time Immediate Attention Active Response

  44. Action 㲗 Consequence Time Immediate Attention Active Response Informative

  45. Breakdown

  46. None
  47. Action Consequence Time 㲗

  48. Action Consequence Time Immediate 㲗

  49. Action Consequence Time Immediate Tolerable 㲗

  50. Action Consequence Time Immediate Tolerable Forever 㲗

  51. Action Consequence Time Immediate Tolerable Forever Attention 㲗

  52. Action Consequence Time Immediate Tolerable Forever Attention Active 㲗

  53. Action Consequence Time Immediate Tolerable Forever Attention Active Passive 㲗

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

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

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

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

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

    Response Suggestive Informative None 㲗
  59. Examples

  60. 1/5 Learning Shortcuts

  61. None
  62. None
  63. Shortcut Action Name + Click Count (Informative) (Suggestive)

  64. Action 㲗 Consequence Time

  65. Action 㲗 Consequence Time Immediate

  66. Action 㲗 Consequence Time Immediate Attention

  67. Action 㲗 Consequence Time Immediate Attention Active

  68. Action 㲗 Consequence Time Immediate Attention Active Response

  69. Action 㲗 Consequence Time Immediate Attention Active Response Suggestive &

    Informative
  70. 2/5 Learning Shortcuts (2)

  71. None
  72. None
  73. Shortcut Action Name + Click Count (Informative) (Suggestive)

  74. Action 㲗 Consequence Time

  75. Action 㲗 Consequence Time Immediate

  76. Action 㲗 Consequence Time Immediate Attention

  77. Action 㲗 Consequence Time Immediate Attention Passive

  78. Action 㲗 Consequence Time Immediate Attention Passive Response

  79. Action 㲗 Consequence Time Immediate Attention Passive Response Suggestive &

    Informative
  80. Key Promoter vs. Key Promoter X

  81. Key Promoter vs. Key Promoter X Action 㲗 Consequence Time

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

    (Same) Immediate Attention (Varies) Active vs. Passive
  83. Key Promoter vs. Key Promoter X Action 㲗 Consequence Time

    (Same) Immediate Attention (Varies) Active vs. Passive Response (Same) Suggestive & Informative
  84. 3/5 Writing a blog

  85. Attempts

  86. Attempts • Self

  87. Attempts • Self

  88. Attempts • Self • Hiring content editors

  89. Attempts • Self • Hiring content editors

  90. Attempts • Self • Hiring content editors • Request feedback

    from friends
  91. Attempts • Self • Hiring content editors • Request feedback

    from friends • Use a tool
  92. None
  93. None
  94. None
  95. Action 㲗 Consequence Time

  96. Action 㲗 Consequence Time Immediate

  97. Action 㲗 Consequence Time Immediate Attention

  98. Action 㲗 Consequence Time Immediate Attention Active

  99. Action 㲗 Consequence Time Immediate Attention Active Response

  100. Action 㲗 Consequence Time Immediate Attention Active Response Suggestive or

    Informative
  101. 4/5 Working with GUIs

  102. None
  103. File

  104. File Open repository…

  105. File Open repository… Open

  106. File

  107. File b763ae1b build: automate releases 🎉

  108. File b763ae1b build: automate releases 🎉

  109. Action 㲗 Consequence Time

  110. Action 㲗 Consequence Time Forever

  111. Action 㲗 Consequence Time Forever Attention

  112. Action 㲗 Consequence Time Forever Attention None

  113. Action 㲗 Consequence Time Forever Attention None Response

  114. Action 㲗 Consequence Time Forever Attention None Response None

  115. Can we do better?

  116. None
  117. None
  118. None
  119. None
  120. None
  121. None
  122. Action 㲗 Consequence Time Forever Attention None Response None

  123. Action 㲗 Consequence Time Forever Tolerable Attention None Response None

  124. None
  125. Save inputs

  126. Save inputs Action 㲗 Consequence Time Forever Tolerable Attention None

    Response None
  127. Save inputs Action 㲗 Consequence Time Forever Tolerable Immediate Attention

    None Response None
  128. 5/5 Exploratory Problem Solving

  129. Privacy-focused Personal Finance

  130. None
  131. Action 㲗 Consequence Time

  132. Action 㲗 Consequence Time Immediate

  133. Action 㲗 Consequence Time Immediate Attention

  134. Action 㲗 Consequence Time Immediate Attention Active

  135. Action 㲗 Consequence Time Immediate Attention Active Response

  136. Action 㲗 Consequence Time Immediate Attention Active Response Informative

  137. Excellent feedback cycles

  138. Excellent feedback cycles • Fail fast

  139. Excellent feedback cycles • Fail fast • Grab our attention

  140. Excellent feedback cycles • Fail fast • Grab our attention

    • Suggest corrective action
  141. Closing notes

  142. Closing notes • Feedback cycles need not be excellent

  143. Closing notes • Feedback cycles need not be excellent •

    Zoom in and out to identify and improve feedback cycles
  144. 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
  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 • CLI frameworks enable exploratory problem solving and bug discovery at scale
  146. Robert C. Martin, Clean Architecture 
 “The only way to

    go fast, is to go well.”
  147. Queries? @ragunathjawahar • https://ragunath.xyz