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

コードレビューの文化を少しずつ改善していった話

Yasuhiroki
June 29, 2017
11

 コードレビューの文化を少しずつ改善していった話

#code_kaizen
コード改善 #3 で発表したスライドです。

Yasuhiroki

June 29, 2017
Tweet

Transcript

  1. 自己紹介 • Yasuhiro Kiyota • @yasuhiroki • Twitter: @duck_yasuhiroki •

    GitHub: https://github.com/yasuhiroki • 開発者(個人)のためのJenkins - Git Plugin編 • http://qiita.com/yasuhiroki/items/61a2be613fc7dcfc8682 • そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) • http://qiita.com/yasuhiroki/items/fad876db9e5505fceb03
  2. 前回のコード改善#2への感謝 • 自分の発表に対するTwitterの反応 • 「似たような取り組み自分たちもやってる」 • 「XXな方法もあるよ」 • 他の方の発表 •

    自分とは違う視点での改善方法 • 視野が広がった • 議論タイムでの意見交換 • 自チームを客観的に見ることができた
  3. 前回発表のおさらい • まずは、とにかく話す • コードレビューに不慣れな人とまずは話す • 話したやりとりをGitHub上にも残してもらう • 自然とGitHubだけでも議論できるようになった •

    GitHub テンプレート・ラベルの活用 • WIP、 PleaseReview ラベル • 初心を忘れない • どんな思いから、
 どんな文化を作りたかったのか忘れない
  4. 前回参加時に感じた自チームの <強い所> • 全員がレビューワー • 上司・先輩・後輩 関係なく全員がレビューワー • コードレビューに対する意識が統一されている •

    レビューはお願いするもの • マージは自分でするもの • レビューワーへの優しさ • レビューしやすいcommit粒度にする意識が高い • “fix” だけのコミットメッセージはない • 万一あった時は、朝会で愛のある吊し上げにあう
  5. 前回から変わった現在の環境 • プロジェクトが変わった • TypeScript + AngularJS なあれこれ • TypeScript

    + Express なあれこれ • TypeScript + AWS Lambda なあれこれ • メンバーはほぼ変わらず • 手探りで作った文化をそのまま継承できた • 文化はできているので少しずつ改善
  6. 取り組んだこと • テスト書いた • Jenkins で PR 毎に自動ビルド • 動作検証用の環境をDockerで用意

    • 結合テスト用の環境を簡単に用意できる • 動作確認がスムーズに
  7. 取り組んだこと • プルリクエスト テンプレートの改善 • どういう観点で動作確認したか書くことを必須に • 開発者QAと呼んでいる • 「XXした時にYYとなることをUTで担保」

    • 「**の処理が最後まで実行されること」 • QAを専門にしてきたメンバーがいるので、
 テスト観点のレビューもしてもらっている • レビューワーは、
 仕様通りにテストされているか簡単に知ることがで きる
  8. 開発者QAの背景 • QA担当がチームに1人いる • 最終的な評価は全てその人任せに • スケールしない • その人は別のタスクもある •

    開発者がQAできるようになればいい • 開発者がQAした内容をレビューしてもらいたい • コードレビューと同じタイミングでやれば良い
  9. 取り組んだこと • 設計資料もコードレビュー • PlantUML で システム構成図を書く • PlantUMLと生成される画像を一緒に git

    push • 設計のレビューもGitHub上に残す • 設計資料もコードと見なして世代管理 • 参考) PlantUML • http://plantuml.com/ • http://qiita.com/ykawakami/items/ f6688b845945669f0ce5
  10. 取り組んだこと • 朝会でのゲリラレビューを実施 • 朝会で突発的に、適当なプルリクをピックアップ • 内容をメンバー全員で確認 • がっつりコードレビューするわけではなく、
 「こういう書き方

    XX さんぽいねー」
 「このプルリクもっとレビューしやすくできそう」 
 などと表面的な意見交換をする • チームでコードレビューしてる感