RAKISTARフレームワーク
作成日時:2024-12-22
更新日時:2024-12-22
概要
開発プロジェクトにおける自分の思想を整理して、名前をつけてみた。
用語
認知心理学関連の用語の個人的な解釈。
- ワーキングメモリ:短期記憶の内、問題の処理に用いられる領域。PCで例えるならCPUか?(キャッシュ+演算)
- 短期記憶:一時的な記憶の保存領域。PCで例えるならRAM。
- 長期記憶:文字通り、長期的な保存領域。PCで例えるなら補助記憶装置。
- 認知負荷:ワーキングメモリへの負荷。無駄に頭を使わされている状態。以下の種類がある。
- 課題内在性負荷:問題そのものの複雑さ
- 要件が難解、アルゴリズムが複雑など
- 課題外在性負荷:問題を妨げる要因、問題起因ではないもの。
- 汚いコードなど
- 学習関連負荷:長期記憶をする際の認知負荷
- ワーキングメモリが課題内・外在性負荷で溢れた場合、長期記憶が難しくなる
- 課題内在性負荷:問題そのものの複雑さ
RAKISTAR(ラキスタ)フレームワーク
RAKISTARフレームワークとは、
ソフトウェア開発プロジェクトにおける、認知負荷を低減するためのフレームワークである。
下記の観点からなる。
- RA:Remove Ambiguity(曖昧性の排除)
- KIS:Keep It Simple(簡潔さの維持)
- TAR:Teach And Record(知識共有と文書化)
Remove Ambiguity(曖昧性の排除)
「曖昧さ」は認知負荷を発生させる。
だから排除する努力をしなければならない。
例えば、下記のプラクティスを行う。
- BOSCAR / SMART / INVESTに従った、具体的なPBIや作業指示
- 問題に対する根本的原因の特定
- 要件の明確化
- シフトレフトによる早期のレビュー
- プロトタイプの作成による合意形成
- 明確かつ客観的なドキュメントライティング
Keep It Simple(簡潔さの維持)
「複雑さ」は認知負荷を発生させる。
プロジェクトにおける万物が簡潔であれば、認知負荷は発生しない。
例えば、下記のプラクティスを行う。
- Remove Ambiguity
- コーディング原則に従ったコーディング(課題外在性負荷の低減)
- TUBEによるシンプルさの評価
- Testable(テスト可能)
- Understandable(理解可能)
- Browsable(発見可能)
- Explainable(説明可能)
- TUBEによるシンプルさの評価
- 簡潔な文章によるドキュメント
Teach And Record(知識共有と文書化)
「未知」は認知負荷を発生させる。
プロジェクトにおける知識を共有/文書化することにより、
「未知」から発生する認知負荷を低減する。
例えば、下記のプラクティスを行う。
- Design Doc/ADRの作成
- 各種Wikiの作成
- キックオフミーティング
- 気軽に質問できる環境/体制づくり
- レビュー
認知負荷に対する個人的な考え
認知負荷そのものは悪ではない。
人間が学習するときや、複雑な問題を解決する際にも認知負荷は発生する。
このような認知負荷は善であると考える。
重要なのは、「無駄な認知負荷」を無くすことである。
ただでさえ「プロジェクト」というものは、「有期性と独自性を持つ業務」という性質の為、認知負荷に塗れている。
そこに「無駄な認知負荷」を追加した場合、プロジェクトは上手くいかなくなる。
脳のリソースは「プロジェクトの実現したい内容そのもの」に100%使用されるべきである。
汚いコードや曖昧な作業指示の理解に割かれるべきではない。
参考文献
余談
某4コマ漫画と同じタイトルだね。
3センチも曖昧を許容してはならない。