Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
コードレビューの文化を少しずつ改善していった話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yasuhiroki
June 29, 2017
38
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コードレビューの文化を少しずつ改善していった話
#code_kaizen
コード改善 #3 で発表したスライドです。
Yasuhiroki
June 29, 2017
More Decks by Yasuhiroki
See All by Yasuhiroki
自分に勉強させるには
yasuhiroki
1
480
Android Studio `Command+Shift+A`
yasuhiroki
0
400
シェルスクリプトをサーバーレスで cron したい
yasuhiroki
1
950
rails new コマンド
yasuhiroki
1
880
自動化を習慣化する
yasuhiroki
2
16k
GitHub Actions Parallel Testing
yasuhiroki
1
1.4k
circleci.vim
yasuhiroki
0
1.9k
ベンチャー企業がCircleCIを選んだ理由と活用方法
yasuhiroki
1
880
Rubyの正規表現を調べてみた
yasuhiroki
0
1k
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
620
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
GraphQLとの向き合い方2022年版
quramy
50
15k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
470
Ethics towards AI in product and experience design
skipperchong
2
420
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
400
Tell your own story through comics
letsgokoyo
1
1.1k
Un-Boring Meetings
codingconduct
0
450
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Transcript
コードレビューの文化を少しず つ改善していった話 Yasuhiro Kiyota @yasuhiroki
自己紹介
自己紹介 • 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
https://certificates.cloudbees.com/10203903
趣味 n=1 s='n=%d\40s=%s\40eval\40$\47printf\40"#改善レベル ${n}\n${s}"\40"$((+ +n))"\40"${s@Q}"\47' eval $'printf "#改善レベル ${n}\n${s}" "$((++n))"
"${s@Q}"'
本題
謝辞
前回のコード改善#2で発表しました https://www.slideshare.net/yasuhirokiyota/ss-68577272
前回のコード改善#2への感謝 • 自分の発表に対するTwitterの反応 • 「似たような取り組み自分たちもやってる」 • 「XXな方法もあるよ」 • 他の方の発表 •
自分とは違う視点での改善方法 • 視野が広がった • 議論タイムでの意見交換 • 自チームを客観的に見ることができた
Agenda • 前回の発表 (2016/11) から 現在 (2017/06) までの取り組み・成果 • (ちなみに)開発はGitHubで進めています
前回発表のおさらい
前回発表のおさらい • まずは、とにかく話す • コードレビューに不慣れな人とまずは話す • 話したやりとりをGitHub上にも残してもらう • 自然とGitHubだけでも議論できるようになった •
GitHub テンプレート・ラベルの活用 • WIP、 PleaseReview ラベル • 初心を忘れない • どんな思いから、 どんな文化を作りたかったのか忘れない
前回参加時に感じた自チームの <課題> • テスト書いてない • typoやインデントのチェックも人間まかせ • 機械的なレビューは機械に任すべき • 良いコードとは何か、チームとして答えを持っていな
い • ふわふわとした不安感 • これでいい…のかなぁ…
前回参加時に感じた自チームの <強い所> • 全員がレビューワー • 上司・先輩・後輩 関係なく全員がレビューワー • コードレビューに対する意識が統一されている •
レビューはお願いするもの • マージは自分でするもの • レビューワーへの優しさ • レビューしやすいcommit粒度にする意識が高い • “fix” だけのコミットメッセージはない • 万一あった時は、朝会で愛のある吊し上げにあう
現在の環境
前回から変わった現在の環境 • プロジェクトが変わった • TypeScript + AngularJS なあれこれ • TypeScript
+ Express なあれこれ • TypeScript + AWS Lambda なあれこれ • メンバーはほぼ変わらず • 手探りで作った文化をそのまま継承できた • 文化はできているので少しずつ改善
取り組んだこと
取り組んだこと • テスト書いた • Jenkins で PR 毎に自動ビルド • 動作検証用の環境をDockerで用意
• 結合テスト用の環境を簡単に用意できる • 動作確認がスムーズに
取り組んだこと • プルリクエスト テンプレートの改善 • どういう観点で動作確認したか書くことを必須に • 開発者QAと呼んでいる • 「XXした時にYYとなることをUTで担保」
• 「**の処理が最後まで実行されること」 • QAを専門にしてきたメンバーがいるので、 テスト観点のレビューもしてもらっている • レビューワーは、 仕様通りにテストされているか簡単に知ることがで きる
開発者QAの背景 • QA担当がチームに1人いる • 最終的な評価は全てその人任せに • スケールしない • その人は別のタスクもある •
開発者がQAできるようになればいい • 開発者がQAした内容をレビューしてもらいたい • コードレビューと同じタイミングでやれば良い
取り組んだこと • 設計資料もコードレビュー • PlantUML で システム構成図を書く • PlantUMLと生成される画像を一緒に git
push • 設計のレビューもGitHub上に残す • 設計資料もコードと見なして世代管理 • 参考) PlantUML • http://plantuml.com/ • http://qiita.com/ykawakami/items/ f6688b845945669f0ce5
安心と自信をもって マージできるように
取り組んだこと • 朝会でのゲリラレビューを実施 • 朝会で突発的に、適当なプルリクをピックアップ • 内容をメンバー全員で確認 • がっつりコードレビューするわけではなく、 「こういう書き方
XX さんぽいねー」 「このプルリクもっとレビューしやすくできそう」 などと表面的な意見交換をする • チームでコードレビューしてる感
意識の変化 • テストしやすいコードとは、を意識するように • どんなコードだと簡単なのか議論が活発に • 口頭のやりとりはコードレビューにも残す • (残せてないもの増えてきたかも…) •
良いコードとは、の模索がチーム共通の課題に • たまに朝会で議論
開発者QAの義務化の恩恵 • 何をテストしたか、のエビデンスが残る • テスト漏れがあった時に振り返られる • テスト観点に対するレビューも行える • 全員で品質を守る意識
課題
コードレビューの負荷増 • 開発者QAへのレビューが特に… • レビューワーの担当が何となく決まっている • タイミングによっては1人に負荷が集中しがち • まんべんなくレビューできる人ほど負荷高い •
レビューツールを入れて改善したい.. • Danger を試し中
おしまい