開発など、なんらかの作業をしていると、いつのまにか違うことに悩んでいたり(いわゆるyak shaving問題)、なにをしているのか分からなくなったりすることがあります。 このことは、作業の前に目標や手順を明確にしておくことで防ぐことができます。 この考え方であるGPIフレームワークについて説明します。

GPIフレームワークとは

GPIフレームワークとは、作業を効率的に行なうために考えられた思考フレームワークです。 (1)目標(Goal)、(2)手順(Process)、(3)課題(Issue)を明確にすることで、作業を円滑に進めることができます。

具体的な方法について説明します。

自分がこれからなんらかの作業を行なおうとする際、まずその作業のゴールを明確にします。 次に、そのゴールに到達するための手順をチェックリストで書き出します。 最後に、この手順を完了する上での懸念点を課題として書き出します。

実際に作業を行なう際は、まずすべての課題を解消し、その後チェックリスト1つ1つ完了していきます。 この流れにより、作業を円滑に完了することができるようになります。

ケーススタディ

たとえば、開発経験の浅いエンジニアが「ユーザのサインアップ機能を実装する」という作業を行なうとします。 これをGPIフレームワークに則って考えると、次のようになります。

(1) 目標(Goal)

  • ユーザのサインアップ機能を実装する

(2) 手順(Process)

  1. usersテーブルを設計する
  2. Userモデルを設計する
  3. テストケースを作成する
  4. テストを実装する
  5. Userモデルを実装する
  6. ...

(3) 課題(Issue)

  • モデルの設計方法が分からない
  • テストケースのつくり方に自信がない
  • ...

この場合、まず検索エンジンで調査したり他のメンバーに聞くなどして、課題をすべて解決します。 その後、懸念点がなくなった上で手順の1から作業を行ないます。

おわりに

開発に慣れていれば、自分なりの作業の進め方があるかもしれませんが、経験が浅いとこういった問題に陥りやすいです。 その場合の解決策の1つとして、GPIフレームワークが参考になるかもしれません。