PullRequestには、問題か課題を書く
背景・問題
PullRequestに、やったことだけが書かれていて、背景や問題が書かれていないことが多い
こういうPullReqは、後でその機能をなんのためにつけたのか説明できないので、revertしたりリファクタリングしたりするのが難しい 副作用があるとき、そもそも必要なのかどうかが議論できない
解決策
問題 → 解決か
背景 → 提案
のどちらかにそってPullReqを書こう!
Why(理由)をいきなりすらすら書くのは難しい
理由を説明する部分を分解して書く方法として「問題/背景 」-> 「解決/提案」という枠組みを使うと簡単
どんな小さい機能提案やバグ修正にも同じ形式が利用できる
上のテンプレートは、どちらもいわゆる技術論文のフォーマットである 人に頼まれて作っている場合でも、問題や背景は自分で考えて作るべき
英語で言うと「Problem -> Solution」か「Background -> Suggetion」
さらに細かいヒント
バグの修正や問題の改善には
問題 -> 解決の枠組みを使うのがよくて
新機能を提案したいときは
背景 -> 提案 の枠組みを使うとよい
例
code:md
Problems - 問題、解決したい課題
- ex1) 課金導線でユーザーが迷う問題がある
- ex2) アレをコウするとバグる
Solutions - 提案したい機能
- ex1) この方法で課金導線がスムーズになる
- ex2) 問題を解決した
Implementation - どうやって作るのか?
- ex1) ImagesController#showが参考になると思います
- ex3) 指定なし
rakusai.icon
仕事に取り組むには、まず課題の認識がいるし、それを共有してほしい
実装(コード)だけでなく、問題認識や解決策の選定もレビュー対象という事ですねshokai.icon
国の政策の話などで「柵を取り外す前になぜ柵があるのか考えろ」みたいな言葉を目にするshokai.icon
pull requestで問題・課題を明確にするのは、それと同じ
自分以外がrevertの意思決定をできるようにするために書く 機能変更は、他の機能変更と衝突する可能性がある
その時どちらを選ぶか?
「何をやったか」だけでなく、「なぜやるのか?」「元の状態の問題は何か?」を明確にしないと、決められない
常に変更と変更の間に文脈をつなげ続ける
バラバラの機能が集合した一体感の無い、使いづらいアプリケーションになるのを避けるため