僕は計画を立ててて何かしらのモノを作る際、大抵はアイディアとかをまとめて、後で迷った時はそれを読み返す、という様なコトを行なったり行なわなかったりするんですが、その時に、
どうもこの計画案、役に立ってないぞ……
という事が多くて、まぁ、モノは完成しないわ、完成しても役に立たないわ、で、色々と成果もへったくれもない結果しか生んでいませんでした。
それで、最近は、何か役に立ちそうなモノを作る、と言う方面から遠ざかっていたのですが、最近になって、
あれ、これは、そもそもの立案する視点が間違ってる……?
と思うようになり、色々考え直した結果、下記の三点を守ってれば、割となんとかなるんじゃないか、と思い至ったので、今日はその辺りまとめてみます。
なお、このアイディアは恐らく、先人が相当に居ると思われるので、その辺り、参考になりそうな書籍などありましたら、適当にブコメなどでお願いします。
立案の一番最初に考えるべき三つのコト
誰が何にどう困っているのか?
何がどうなれば解決なのか?
実際に解決のために何をするか?
誰が何にどう困ってるのか を一番に考える
まず、一番最初に考えるべきなのは、
その立案で解決したい問題、あるいは課題は、 誰のどのような問題 か
を考える、というコトです。つまり、
それ、誰の問題で何に困ってるん?
と言う事を、キチンと把握して考え込んでおく、というコトです。
それで、この 誰が何に困ってるのか という課題設定は、これがビジネス、あるいはスタートアップとかだと、この辺りは突き詰めて考えないと、多分、会社なりがポシャる結果になると思うのですが、別にコレ、会社とかじゃなくても、例えば趣味で作る Web サービスとか、あるいは、 OSS のライブラリなどでも、同じ事が言えると思っていて、恐らくは、この、
誰が何に困ってるのか
をキチンと把握せずにモノを作ると、誰も利用しない……と言うか、正直誰得……なモノが出来上がります。大変ですね。っていうか僕はコレが今の今まで出来てなくて、大抵役に立たないモノばっかりになっています。
次に 何がどうなれば解決なのか を考える
そして、次に考えるべきなのは、
その課題 (問題) は、 何がどうなれば解決 と 言える のか
と言う点です。
これは例えば、 プログラミング と言う文脈で言うのであれば、
○○ という面倒なコトをある程度簡単に扱える様になればなぁ……
という様なコトで、もう少し具体的に言うと、例えば、JavaScript であれば、
非同期処理のコールバック地獄をなんとか楽に扱いたい
と言う課題が有れば、
非同期処理のコールバック地獄を直接は扱わないコトが出来る
と言うのが問題解決のための目標であり、これを解決するために、では次に何を使うべきなのか、を考えると言う順序になります。
最後に、 何をどうすれば解決できるか を考える
それで、先の例に上げた JavaScript で非同期コールバック地獄を回避する 、という課題であれば、 Promise や async/await を使う 、と言うのが問題を解決する手段になるワケですが、これが実際の計画の立案、例えば、事業計画や OSS の開発とかだとすると、
我々は、○○ の問題を解決し、□□ という状態に持って行くための △△ を提供する
と、言う感じになるんじゃないかと思います。そして、これが実際の事業だと、その △△ を提供するコトで利益上げる、という風になるのではないか、と思います。
まとめ
つまり、上記の三つの事柄を一言で言えば、
誰かの課題 を、 解決という状態に持っていくため に、 何をするか
と言うのが、物事を計画する上で、一番考え抜かねばならない事柄であり、これが出来てないと、
計画通りにやったけど上手く行かない……
という状態になるのではないか、と僕は思います。はい。
以上
ま、僕もこの辺り、あんまり意識出来てなかったし、実際に、これが出来てない影響で、ロクにモノが作れて来なかったんで、あんまりヒトのコトを大きな声では言えないですけどね。はい。