哲学駆動開発で起業・個人開発のアイデアを出す方法

目次

  1. 背景
  2. おことわり
  3. 哲学駆動開発とは
  4. Bretの哲学
  5. Teslerの哲学
  6. 哲学の見つけ方
    1. 経験が大事
    2. 哲学は今まで聞いたことがないもの
    3. 哲学はYes/Noで答えられるもの
  7. まとめ
  8. 関連記事

背景

こんにちは。 かりんとうマニア(@karintozuki)です。

個人で起業したい、個人開発でサービスを作ってみたいというときに、
どんなアイデアを形にするか、が大事です。

アイデアを出す際に良く言われるのは、こんなことですね。

  • 自分が情熱を持てることに関するものを作る
  • 何か問題を取り上げてソリューションを作る

などなどありますが、そう言われても
自分が何をしたいのかいまいち分からないこともあるかと思います。

この記事では、AppleなどでiPadやApple Watchの開発に関わったエンジニアのBret Victorさんの講演をもとに、
哲学駆動開発というものを紹介します。

おことわり

最初にことわっておきますが、哲学駆動開発という言葉はありません
この記事はこの動画を見て私が思ったことを書いた記事です。

哲学駆動開発はこの動画のタイトルであるInventing on Principleをカッコよく訳してみただけです。
直訳だと原則に基づく開発みたいな感じですかね。

英語だし一時間弱の動画で長いのですが、
興味があるって人はこの記事を読むより動画をみた方が良いです。

ただ、この考えはすごく良いなと思ったので、記事にしてみました。
こんなこと動画では言ってねえよってことも書いてるかもしれませんが、
それは私個人の理解ということで勘弁して下さい。

哲学駆動開発とは

哲学駆動開発とは、よく言われるアイデア出しのアプローチとは違った方法です。
よく言われているアプローチにはこんなものがあります。

  • 自分が情熱を持てることに関するものを作る
  • 何か問題を取り上げてソリューションを作る

ここでいう哲学とは、あなた自身が、
もっとこうあるべきだと思う、何かが正しくない気がする、と感じることです。

ちょっとわかりづらいので、具体的な例を挙げてみます。

Bretの哲学

この講演でBretは彼の哲学をこう説明しています。(大体の意訳です)

クリエーター(エンジニアに限らない)は、作るものに変更を加えたときに、
即座にその結果を見ることができないといけない。

例えばプログラミングについて、
桜の木を表示するプログラムを例にしています。

普通のプログラムだと、桜の木を変更したいときは、
以下の手順を踏むことになります。

  • コードを編集する
  • 桜の木の画面を更新する
  • 想像と違っていたらまたコードを編集する

これを繰り返していくような作業が必要になります。
彼はこの作業にもっと改善が必要だと感じたそうです。

そこで、こんなエディタを作りました。

プログラムの画面にスライダーがあるのがわかるでしょうか?
このスライダーを動かすとリアルタイムに絵に変更が加わるようになっています。

動画だともっと分かりやすいので見てみてください。
エディタを操作している例(04:30〜)

この方法だと、コードを書く人はリアルタイムに変更の結果を確認することができます

これによって、従来の方法では時間がかかりすぎて試すことができなかったような
新しいアイデアが生まれるかもしれません。

彼の哲学は、
生まれるはずだったアイデアをツールの制約によって殺してしまうことは間違っている
と感じたことから始まっています。
彼にとって誰かのアイデアはとても尊いもので、それらが失われてしまうことを許せないと感じるとのことです。

Bretはそれ以外にもゲーム制作、電子回路の設計、アニメーション制作などにも
この哲学を適応して、ソフトウェアを作っています。
哲学に対する答えは一つだけとは限りません。

重力などパラメータを変更したときに、
その結果がリアルタイムでわかるゲーム制作ソフト

電圧や電流の波形が分かる電子回路設計ソフト

手でアニメの動きを描けるアニメーション制作ソフト
(画像は葉っぱが落ちる軌道を手で描くようす)

Teslerの哲学

他に哲学駆動開発を行ったエンジニアの例として
Larry Teslerをあげています。

彼は今広く使われているテキストエディタの仕組みを作った人です。
それ以前、テキストエディタはモードを使ったものでした。

テキストを見るときは閲覧モード、
テキストを入力するときは入力モードといったように、
かつてはどのモードで何ができるかを意識していないとテキスト操作ができませんでした。

ちなみにVimというエディタはいまだにモードを採用していますね。

Larryは一週間トレーニングを受けた人でも、
モードを使いこなすことが難しい、という事実を見て何か間違っている、と感じました。

そうして彼の哲学が生まれました。

モードで困る人がいてはいけない

こうして生まれたエディタは、
少しの説明で誰でもテキスト編集ができるようなものでした。
今のメモ帳のようなエディタは特に練習しなくても直感的に使えますよね?

彼はこのモードベースのテキストエディタを変えることを生涯のモットーにしていて、
サイトのドメイン、SNSのアカウント、果ては車のナンバープレートまで、
No Modesにしていたそうです。

ここまでくると、それこそ哲学って感じですよね。

哲学の見つけ方

最後に、自分自身の哲学はどうやって見つけたら良いのか
Larryは説明しています。

経験が大事

いろいろなことを経験するのが大切です。

哲学は、何かが正しくない、というセンスから生まれるもので、
どちらかといえば、エンジニアリングというより、
人種差別や環境破壊などに対して社会活動をすることに近いものです。

普通、そのような活動をする活動家たちは社会活動を解決の手段として使いますが、
技術者は技術を使ってそれを解決していけば良いということです。

そのようなセンスを感じるには、
いろいろなことをやってみて、何に対して自分が感動するのか、
逆に何がどうでも良いことなのかを知る必要があります。

俗にいう自分探しみたいな感じですね。

哲学は今まで聞いたことがないもの

また、哲学は今まで聞いたことがないものである、というのが大事だそうです。

例えば、人種差別などは誰も問題だと思っていなかった歴史があります。
それに対して問題意識を持ち始めた人はほんのわずかだったのです。

また、哲学は誰もが賛同するような一般的なものではない、と言います。

例えば、イケてるソフトウェアを作りたい、とか
複雑な物事をシンプルにしたい、というのは
悪いことではありませんが、哲学としてはあまりにも一般的すぎると指摘しています。

哲学はYes/Noで答えられるもの

哲学は明確にYes\Noで答えが出る質問に変換できます。

Bretの哲学であれば、クリエーターが変更の結果を即座に見ることができるか?
という問いに、答えがNoであれば、まだやるべきことがあります。

Larryの哲学なら、モードに引っかかっている人がいるか?という問いになるでしょう。

哲学がはっきりすると、あなたのやるべきことがはっきりしてきます。

まとめ

今日はだいぶ思想的な話になってしまいましたが、
起業したい、ソフトウェアを作りたい、という人にとって、
こういうのも大事なのかなと思います。

よく起業のきっかけになる原体験みたいな話がありますが、
これもある体験をキッカケに哲学を見出した、ってことなのだと理解しています。

ぜひ、皆さんもじぶんの哲学を見つけてみてください。
それじゃ今日はこの辺で。

関連記事

アイデアを出す方法について、こちらの記事も参考になると思います。

クリエイティブになるための6つの方法!「Mastering Creativity」をエンジニアが読んだ感想