困りごとを共有しながら進める独り言のPull Request

うちのチームではSlack で困ったことをつぶやいて助けてもらったりしている1。ただ、Slack のつぶやきだと文脈がなく、システム制約が伝わらないので、誰かに解決してもらうのは難しい場合も多い。特に、インフラ系のタスクはアプリケーションよりも制約が多いので、自分の困っていることがうまく伝わらなかったり、逆に誰かの困り事を解決しようと思っても見当違いの提案になることもある。

Pull Request に独り言コメント

チームの知恵を借りて作業をスムーズに進めるためにWIP Pull Request を使い2、今やっていること、困っていることの全体像(文脈)を見えるようにコメントに独り言をつぶやいている。本来はコードレビュー用のコメント機能だが、チャットくらい気軽に思ったこと、困ってること、やりたいこと (TODO) など書いている。

PR Timeline

勝手にやっている活動で、あくまでも独り言なので、誰も見ていないこともあるが気にしない。Slack ほど気軽に見てもらうのは難しいかもしれないが、見てもらえれば的確にコメントをもらえるので結果的に自分の作業が捗る。ついでにリアクションがついたりするので嬉しい。

今のチームではSlack にGitHub の通知を流しているので意外と見てもらえている。それに、相談や助けてもらいたいときはメンションで協力をお願いするし、最終的にはコードレビューしてもらうので全く見られないことはないです。

PR Timeline Comment

インフラ系タスクで感じる悩みが緩和

インフラ作業していると、

  • 相談には前提知識の共有が必要で気軽に相談しづらいことがある
  • 作ったものの運用開始した後につらいことがわかる
  • 割り込みタスクの対応でどこまで作業が完了してたのか忘れる
  • モノが完成するまでの間、マジで何しているかわからない人になる

などの個人的に悩むのですが、独り言Pull Request でちょっとだけ解消したと思います。

独り言Pull Request を作ると、考えた内容が残るので割り込みタスクで気が散っても作業再開がしやすい。何より作業の途中経過がチームに視えるので「あの人何しているの?」感は防げると思う。あと、もしかしたらレビューする人に独り言コメントが役に立つかも(思い通りにいかずに妥協した箇所とか)。

また、あえて共有したりするほどでもない様なちょっとした思いつきにも他のメンバーから運用面のアドバイスもらえたりできる。運用って地味だけど意外と便利な細かいTips があると思う。

PR Timeline Comment

独り言を書くためのコツ

1個のコメントには文脈がないのでシステム制約が伝わらないため、Pull Request の詳細には要点をまとめておくと良いと思う。コードレビューしてもらうための要点とは異なるので、フォーマットは特にないが「やりたいことの構想」が伝わるように必要なことを書いている。

PR Timeline Description

つらつら書いたら長くなってしまったので、スクリーンショットは途中で切ってしまったが、今回のPull Request は下記のような項目を書いている。

  • ゴール
    • タスクの完了を判断するための状態目標
  • このツールのファイル構成(今のところの想像)
    • ファイルの整理方法
  • 想定のプロビジョニング運用
    • 運用の際の手順書っぽい話、それを今回のPull Request でどこまで自動化するのか
  • やりたいこと
    • MUST とWANT に分けてTODO を箇条書き
  • 後で考えるもの
    • 今回のPull Request ではやらないこと、実際に試さないとわからないので後回しにしたタスク

インフラ作業に限らず、アプリケーションの開発でも設計などのある程度「文脈」が必要な課題については同じようにWIP のPull Request を立てて作業を進めても良いと思う。たとえば、「こんな感じの設計どうかな」みたいな軽いノリでクラスやメソッドの擬似コードをテストが通らないけどコミットするなど。

  1. 分報ではないが、適宜プロダクト開発のチャンネルなどを利用している

  2. Git コマンドにWIP エイリアスを設定したら便利だった