Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
不妥協的河蟹之道
你今天 code review 了嗎?
⾃自我介紹
• 阿官 - Ken Kuan
• Hooloop - Extreme Programmer
• 專注於
• iOS, Android, Scrum, CI, Testing
何謂不妥協的河蟹之道?
不妥協的軟體品質
和諧的⼯工作氣氛
軟體品質 ⼯工作氣氛
What is Code Review
• 就是程式碼審查
• 分為:
• 直接 review
• 透過⼯工具 (email, github)
• Pair Programming
低密度
⾼高密度時間⻑⾧長
時間短
直接
間接
How we review
Review!
GitFlow + GitHub
Live Demo
究竟,Code Review 如
何讓團隊不妥協⼜又和諧?
Code Review 三⼤大妙⽤用
• 改善團隊氣氛
• 強化團隊學習
• 維持軟體品質
Code Review 妙⽤用⼀一
改善團隊氣氛
情境模擬
• ⼀一早上班更新程式碼後,看到了些許錯誤,你該
怎麼辦呢?
A. 默默幫他改掉
B. ⾛走過去拍拍他肩膀
C. 裝作沒看到
A、默默幫他改掉
你 肇事者
B、⾛走過去拍拍他肩膀
• 你:經過⼀一番掙扎
開放式辦公室
肇事者⼼心理三部曲
真謝謝啊 夠了喔! 你針對我啊
C、裝作沒看到
• 肇事者 - 毫無影響
• 你 - 悶久了也會內傷
軟體品質低落
⻑⾧長此以往......
Code Review 如何解決上
述問題?
權⼒力 責任
權⼒力
• Code Review 賦予團隊成員 review code 的權
⼒力!
• 有沒有權⼒力差很多嗎?
賦予⽼老⿃鳥、菜⿃鳥同等權⼒力
Reviewer Author
讓我們回到剛剛的情境
• 程式碼都還沒進來
• 可以在系統上直接反應
A、默默幫他改掉
B、⾛走過去拍拍他肩膀
• 你、肇事者:⼀一切照規定來!
C、裝作沒看到
• Reviewer 不只是擁有 review code 的權⼒力,更有
認真 review 的責任
責任
• 賦予團隊成員 review 權⼒力的同時, reviewer 也擁
有承擔該段 code 的責任。
Code 的好壞,⼈人⼈人有責!
情境⼆二:⼯工程師最害怕
的夢魘
腥⾵風⾎血⾬雨的檢討會議
找出兇⼿手!
找出兇⼿手以後?
贏了⾯面⼦子,輸了裡⼦子
• 不犯錯 = 各⾃自為政
• 出了問題,找代罪羔⽺羊
以不犯錯為最⾼高指導原則
犧牲軟體品質!
難道,犯錯真的是肇事者
⼀一個⼈人的問題嗎?
Scrum
• 團隊!
責任分擔
• Reviewer 和 Author 同時 OWN 該段 code
• Reviewer 責任更⼤大
• 不再推卸責任
• 增加責任感
另⼀一個好處:信任
• reviewer 給予的建議,是為了產品更好
• ⾝身為 author ,也會更加信任 reviewer 的
feedback
• 培養團隊成員的信任感,達到良好的合作模式
最終⺫⽬目標:和諧
• 真正的和諧是⼀一起為了共同的⺫⽬目標⽽而努⼒力,⽽而⾮非
沈默通過⼀一個提案
• 責任、信任
• 指責 -> 解決問題
• 了解彼此個性
Code Review 妙⽤用 2
強化團隊學習
只有新⼿手需要學習?
• ⽼老⿃鳥更需要學習
軟體的開發技術與觀念與時俱進,往往不
到⼀一年就過時了!
⽼老⿃鳥學習的障礙
• 科學實驗指出:年紀⼤大學習慢不是因為⽣生理退化,
⽽而是因為被⾃自⾝身經驗、觀念束縛!
最好的學習⽅方式
• 看別⼈人寫的 code
如果沒有 code review
• 什麼時候會看別⼈人的 code ?
• 寫新功能剛好需要寫到
• Demo 出包,找戰犯修 bug 的時候
幾乎沒有!
學習最⼤大的動⼒力
強迫看 code
• 在責任感的驅使下,硬著頭⽪皮也要看懂
• 學習 > 指導
• 透過交流進⽽而理解別⼈人想法
Code Review 妙⽤用三
維持軟體品質
對 Code Review 的質疑
浪費時間?
code review 發現問題
的機率?
強化軟體品質
相當⾼高!
改善品質 = 節省時間
結論
• 改善團隊氣氛
• 強化團隊學習
• 維持軟體品質
有了 code review 以後
kenkuan@hooloop.com
不妥協的河蟹之道
不妥協的河蟹之道
Upcoming SlideShare
Loading in …5
×

不妥協的河蟹之道

3,026 views

Published on

不妥協的河蟹之道

Published in: Software
  • Be the first to comment

不妥協的河蟹之道

  1. 1. 不妥協的河蟹之道 你今天 code review 了嗎?
  2. 2. ⾃自我介紹 • 阿官 - Ken Kuan • Hooloop - Extreme Programmer • 專注於 • iOS, Android, Scrum, CI, Testing
  3. 3. 何謂不妥協的河蟹之道?
  4. 4. 不妥協的軟體品質
  5. 5. 和諧的⼯工作氣氛
  6. 6. 軟體品質 ⼯工作氣氛
  7. 7. What is Code Review • 就是程式碼審查 • 分為: • 直接 review • 透過⼯工具 (email, github) • Pair Programming
  8. 8. 低密度 ⾼高密度時間⻑⾧長 時間短 直接 間接
  9. 9. How we review Review! GitFlow + GitHub
  10. 10. Live Demo
  11. 11. 究竟,Code Review 如 何讓團隊不妥協⼜又和諧?
  12. 12. Code Review 三⼤大妙⽤用 • 改善團隊氣氛 • 強化團隊學習 • 維持軟體品質
  13. 13. Code Review 妙⽤用⼀一 改善團隊氣氛
  14. 14. 情境模擬 • ⼀一早上班更新程式碼後,看到了些許錯誤,你該 怎麼辦呢? A. 默默幫他改掉 B. ⾛走過去拍拍他肩膀 C. 裝作沒看到
  15. 15. A、默默幫他改掉 你 肇事者
  16. 16. B、⾛走過去拍拍他肩膀 • 你:經過⼀一番掙扎 開放式辦公室
  17. 17. 肇事者⼼心理三部曲 真謝謝啊 夠了喔! 你針對我啊
  18. 18. C、裝作沒看到 • 肇事者 - 毫無影響 • 你 - 悶久了也會內傷 軟體品質低落
  19. 19. ⻑⾧長此以往......
  20. 20. Code Review 如何解決上 述問題? 權⼒力 責任
  21. 21. 權⼒力 • Code Review 賦予團隊成員 review code 的權 ⼒力! • 有沒有權⼒力差很多嗎?
  22. 22. 賦予⽼老⿃鳥、菜⿃鳥同等權⼒力 Reviewer Author
  23. 23. 讓我們回到剛剛的情境
  24. 24. • 程式碼都還沒進來 • 可以在系統上直接反應 A、默默幫他改掉
  25. 25. B、⾛走過去拍拍他肩膀 • 你、肇事者:⼀一切照規定來!
  26. 26. C、裝作沒看到 • Reviewer 不只是擁有 review code 的權⼒力,更有 認真 review 的責任
  27. 27. 責任 • 賦予團隊成員 review 權⼒力的同時, reviewer 也擁 有承擔該段 code 的責任。 Code 的好壞,⼈人⼈人有責!
  28. 28. 情境⼆二:⼯工程師最害怕 的夢魘
  29. 29. 腥⾵風⾎血⾬雨的檢討會議 找出兇⼿手!
  30. 30. 找出兇⼿手以後?
  31. 31. 贏了⾯面⼦子,輸了裡⼦子 • 不犯錯 = 各⾃自為政 • 出了問題,找代罪羔⽺羊
  32. 32. 以不犯錯為最⾼高指導原則 犧牲軟體品質!
  33. 33. 難道,犯錯真的是肇事者 ⼀一個⼈人的問題嗎?
  34. 34. Scrum • 團隊!
  35. 35. 責任分擔 • Reviewer 和 Author 同時 OWN 該段 code • Reviewer 責任更⼤大 • 不再推卸責任 • 增加責任感
  36. 36. 另⼀一個好處:信任 • reviewer 給予的建議,是為了產品更好 • ⾝身為 author ,也會更加信任 reviewer 的 feedback • 培養團隊成員的信任感,達到良好的合作模式
  37. 37. 最終⺫⽬目標:和諧 • 真正的和諧是⼀一起為了共同的⺫⽬目標⽽而努⼒力,⽽而⾮非 沈默通過⼀一個提案 • 責任、信任 • 指責 -> 解決問題 • 了解彼此個性
  38. 38. Code Review 妙⽤用 2 強化團隊學習
  39. 39. 只有新⼿手需要學習? • ⽼老⿃鳥更需要學習 軟體的開發技術與觀念與時俱進,往往不 到⼀一年就過時了!
  40. 40. ⽼老⿃鳥學習的障礙 • 科學實驗指出:年紀⼤大學習慢不是因為⽣生理退化, ⽽而是因為被⾃自⾝身經驗、觀念束縛!
  41. 41. 最好的學習⽅方式 • 看別⼈人寫的 code
  42. 42. 如果沒有 code review • 什麼時候會看別⼈人的 code ? • 寫新功能剛好需要寫到 • Demo 出包,找戰犯修 bug 的時候 幾乎沒有!
  43. 43. 學習最⼤大的動⼒力 強迫看 code • 在責任感的驅使下,硬著頭⽪皮也要看懂 • 學習 > 指導 • 透過交流進⽽而理解別⼈人想法
  44. 44. Code Review 妙⽤用三 維持軟體品質
  45. 45. 對 Code Review 的質疑
  46. 46. 浪費時間?
  47. 47. code review 發現問題 的機率?
  48. 48. 強化軟體品質 相當⾼高!
  49. 49. 改善品質 = 節省時間
  50. 50. 結論 • 改善團隊氣氛 • 強化團隊學習 • 維持軟體品質
  51. 51. 有了 code review 以後
  52. 52. kenkuan@hooloop.com

×