見出し画像

Organizational Decision Records ─ 組織の決定の記録

こんにちは。 Showcase Gig の EM dai です。

本エントリは、 Showcase Gig Advent Calendar 2022 ならびに、 Engineering Manager Advent Calendar 2022 の2日目の記事です。

Showcase Gig のエンジニアリング組織は、組織の決定を記録するために、 Organizational Decision Records (以下、ODR) を運用しています。 ODR とは、 Architecture Decision Records (以下、ADR) を参考にしています。

本エントリでは、ODR の詳細とその運用方法について紹介します。 さっそく ODR の説明に入りたいところですが、その前に ADR を簡単に説明しましょう。


Architecture Decision Records とは

ADR は、ソフトウェアのアーキテクチャに関する重要な決定を記録するための手法です。 テキストベースの軽量なテンプレートを使用して、決定の背景、影響、代替案、決定の結果などを記録します。

ADR を利用することで、次のようなメリットがあります。

・設計判断をチームの責任において記録できる
・重要な設計判断をリポジトリに保存することで、コードに近い場所に置いておける
・他の生成物と組み合わせて、全体的な説明戦略を作成できる
・歴史を記録することで、設計の進化に関する展望を得られる
・チーム全体を設計プロセスに巻き込める
・ADRテンプレートを提供することで、チームメンバーのアーキテクチャ思考を訓練できる
・標準の開発ツールと既存のピアレビューワークフローを使って、設計判断をピアレビューできる

出典: Michael, K. (2011). Design It!:プログラマーのためのアーキテクティング入門. O'Reilly Japan.

ADR の詳細については、次のリンクをご参照ください。

Organizational Decision Records とは

ADRの考えを組織の決定に適用したものが、 ODR です。 ODR を用いることで、後からでも組織の決定を確認/共有ができます。

組織改変や新しい制度の導入など、その背景や経緯を後になって知りたくなることもあるでしょう。 そのような時は、 ODR に記録されている情報を参照することで、組織の決定の背景や経緯を把握できます。

また、組織の決定に対して、賛成/反対の意見を述べる場を提供できます。 単なるログではなく、エンジニアリング組織全体で議論をしたうえで、組織の決定が可能になります。 これにより、エンジニアリング組織全体を、組織の決定に巻き込めるのです。

Organizational Decision Records の運用方法

ODR は、組織的な課題の検討時点で作成しています。

一般に、課題に対してどのような解決方法を取るのか、いくつかのソリューションを比較検討することでしょう。 その際に、 ODR を作成することで、考えるべきポイントを明確にして、課題の解決を促進できます。

ODR の作成から、組織の決定をするまでの流れは、次のようになります。

  1. ODR の軽量なテンプレートを使用して、決定の背景、影響、代替案、期待されるの結果などを記載する

  2. ODR を作成したら、エンジニアリング組織に公開して、チームメンバーにフィードバックをもらう

  3. フィードバックをもとに、提案内容の調整する

  4. チームメンバーの賛成を得たら、 ODR を承認する

時にはセンシティブな内容を含むことがあるでしょう。 その際は、 ODR を公開する前に、関係者にフィードバックをもらうことで、決定内容の調整ができます。 最終的には、全員が見られる情報として ODR を公開します。

Organizational Decision Records のメリット

ODR のメリットは ADR と同様で、組織に対してさまざまなメリットをもたらします。

  • 組織の決定を記録できる

  • 他の生成物と組み合わせて、全体的な組織戦略を作成できる

  • 組織の決定を記録することで、組織の進化に関する展望を得られる

  • ODRテンプレートを提供することで、組織の決定における思考を訓練できる

  • 組織の決定をピアレビューできる

Organizational Decision Records のテンプレート

最後に、 Showcase Gig で利用している、 ODR のテンプレートを紹介します。

# ODR-0001: ODRのタイトル

## Summary
ODR の概要を記載する

### Status
- [] draft
- [] proposed
- [] accepted
- [] rejected
- [] deprecated
- [] superseded

### Deciders
ODR を作成した人を記載する

## Context 
### Background
ODR を作成する背景を記載する
### Problem Statement
対処すべき問題または改善すべき事項を記載する

## Solutions
課題解決のために検討したソリューションを記載する
### Alternative Solutions
代替案を記載する

## Decision
ODR の結論を記載する

## Consequences
ODR の結論によって生じる影響を記載する

## References
関連するドキュメントやリンクを記載する

記載する項目の中で、とりわけ重要なのは Context(Problem Statement) です。 課題設定が誤っていると、まったく価値のない組織の決定になってしまいます。 そのため、課題設定をしっかりと行うことが重要と考えています。

まとめ

組織の決定を記録するための、 Organizational Decision Records (ODR) について紹介でした。

ODR を用いることで、一貫した思考で考えられると共に、さまざまな人からフィードバックをもらえるため、効果を実感しています。ぜひ、みなさまも ODR を活用してみてください。

この記事が気に入ったらサポートをしてみませんか?