コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

チャットコミュニケーション全盛だからこそのリリース作業の報連相を考えてみた。

自分の中のノウハウ的なものをアウトプットしよう的な雑記です。

この記事で言うリリース作業

Webアプリケーションには往々にして『環境』が分けられており、実際に利用ユーザが触れる『本番環境』、それに準じた内部関係者が利用する『ステージング環境』などがありますが、それぞれの『環境』に対してリリース作業というものがあります。

リリース作業というのは開発を行ってきたアプリケーションコードを反映させ、動ける状態に持っていくまでのことを指すことがだいたいで、2018年現在では『デプロイ』と呼ぶことのほうが多いと思われます。(参考

今回はこのリリース作業をする上での報連相に関して。

リリース作業における「報告・連絡・相談」

リリース作業そのものは何かのアクションを伴います、例えば

  • リリース手順書に書き起こされた手順を順に実行していく
  • Jenkinsに仕込まれたワークフローを実行する
  • AWS CodeDeployなどクラウドのソリューションを利用する
  • capistranoDeployer などのデプロイツールを使う

様々な手法があるが、何か順番に行っていくということには代わりがないかと思います。

ただしこれらの作業の前にそもそもとしてリリース作業を行うことで影響がでることがある。例えば「作業中はアクセスしないでください」などです。実態の作業ビジネス上のステークホルダーにも作業に関しての状況ちゃんと伝える必要がある。そこで今回はそれを報・連・相の形で噛み砕いてみましょう。

連絡

リリース作業に置ける報告は行動の事前周知にあたります。

大きなリリース作業ともなれば、事前にオペレーションのタイムスケジュールなどは共有されているはずだと思われます。そのときの行動をするまえに関係各所に周知をする必要があります。

例えば…

  • 19時になりましたので、本番環境で作業を始めます
  • サイトをメンテナンスモードにします。終了は20時予定です。
  • 本番環境にソースを反映しました、社内からであればアクセスできるようにしたので確認お願いします。

のような事項をメールやチャットで行うことです。

これを行うことにより、作業者が作業をしているのか、何かトラブって作業が中断してしまっているのかなどを気づくことができるかと思います。

報告

リリース作業における報告は進捗報告にあたるものです。

連絡は作業開始の宣言だとすれば報告は作業の終了などにあたり、作業が滞りなく進んでいるのか、現状として進捗しているのかを知らせることです。もちろん全ての工程が終わった場合も知らせる必要があるかと思います。

例えば…

  • DBのリセット作業は完了したので次工程に移ります。
  • 19時ですが、まだ前工程の作業が長引いているので次工程には移れていません
  • 作業終了し、確認取れたので本日の工程全て終了しました。

のような事項をメールやチャットで行うことです。

これらも連絡の内容同様に関係者への状況をリアルタイムで伝えることができます。仮にリモートワークをしている状況の場合ではオフィスでの空気や会話で伝わる進捗状況のようなものが伝わらなかったりするので、この報告をこまめにすることが大事かなと思われます。

相談

リリース作業における相談は有事の際の相談にあたります。

作業がある程度手順化された中で、作業に想定外のことが発生することがある。その場合はそのまま作業を続行していいか、もしくはリカバーの何かをするかを判断しなければならない。そういう場合は関係各位に対して相談を投げかけるのがベターかと思います。。

例えば…

  • DBの初期化が失敗してしまいました、同じことを再度やるべきでしょうか?
  • 実行した際のログが手順書に書かれているものと違いました。このまま続行していいでしょうか?

などがある。特に2つ目のような期待値と違うことが起きた場合に然るべきところに確認をするのが、二次災害、惨事災害を避けるために重要になってくると考えられます。

チャット全盛におけるリリース作業の連携

報連相で一番伝えたかったのは「現在の状況をつつがなく周知して、トラブったときはすぐに相談する」という側面です。

これが同じオフィスにいれば口頭ですぐに伝えられたりするのですが、物理的にはなれたチャットで連動する場合などは事細かにやることが重要かと思っています。

ことトラブルが起きたときこと報告/連絡の部分が重要になってきて、良かれと思ってリカバリー作業を2人が初めて二次災害が発生したりすると悲しい結果になってしまいます。

そのため、離れているからこそ、事細かな連絡と状況の共有は大事になってくるかと思います。

まとめ

  • リリース作業では報連相(状況報告・進捗連絡・トラブル時相談)をしっかりしましょう
  • 現場の空気感みたいなもので伝わるものはチャットだと伝わりにくいので、そこをカバーするためにも細かめに共有はしましょう

参考リンク