ものをつくるために最近考えていること

コードは道具

コードを書くことは好きだし、死ぬまで続けると思うけど、一方で常に自分の目的であるわけではないと考えている。

よいもの、おもしろいものを作りたくて、それを作って表現する場としてインターネットでありコードを選んでいる。

対象とする文化 (ターゲットユーザ) を定めないとプロダクトの設計はできない

文化圏によって色や言葉、仕草の持つ意味が変わるということは、ビジュアル・デザインをはじめとするデザインは文化非依存に行うことはできないと考えている。

つまり、「誰に使ってもらうか」というところからプロダクトの設計が始まる。

言い方を変えると、製作者がプロダクトの魅力を伝えきれる人々は切り分けられるということ。

多くの人に使ってもらうことも大切だけれども、一方で100%を伝えようとすることができる人は限りがある、ということを受け入れないといけない。

さらに実際に伝わるか、ということを差し引くと限りなく少なく、絶望的でさえあると思う。

すべての人に向き合おうとすることは、つまり誰とも向き合わないということと等価なんだと思う、決してトートロジーとかではなくて。

ディレクションはコスト

素晴らしいプロダクトを作るためにはとにかく意思決定を減らさなければいけないと思っている。

コミュニケーションはあらゆる点でボトルネックにしかならないし、パフォーマンスやクオリティを劣化させるだけだと信じている。

誰もが自分の考えることはプロダクトをよりよくするものだと信じているけど、実際にはそれらは衝突することがあるから、関わる人間が増えれば増えるほど、衝突の解決に大半のリソースがつぎ込まれるが実際的なプロダクトの改良に対してはリソースが枯渇するという状況になる。

ではディレクションのコストを減らしてクオリティを上げるにはどうすればいいか。ディレクションは人間によって生じるので人間を減らせばよい。

特にディレクションを必要とする意見の衝突をよく起こす人間をできるだけ遠ざける。
あまり意見の合わない人間はそもそも傍に置かないほうがよい。

また意見の衝突が起きたときにはディレクションに対して責任を負う人間が強権をもって解決すべきでもある。

「こっちのほうがよい」とか「あっちのほうはだめ」とかそういう話を越えられないのだったら、プロダクトの方向性について一番考える責任を負う人間が決めればよい。「話し合い」みたいなのを続けてもそれ以上よい結論は得られないはず。

たぶんよいプロダクトを作れる環境というのはコミュニケーションに適した環境ではないと思う。いわゆる「働きやすい環境」ではない。

たとえばアップルの社内は根回しとかすごいらしい。しかしよいものを (も) 世に出している。いろいろ気に食わないところはあるけれど、どれだけプロダクトに対する責任者として半ば独裁者のように振る舞ったとしても、けっきょくアップルを会社として、組織として成り立たせていた、というのはすごいと思う。考えなしに同じことをやろうとすると人が離れておしまいになるだけだと思う。

僕はいわゆる「働きやすい環境」はあまり求めていない、というか、「働きやすい環境」というのは作っているものと自分の距離が短くて、あらゆる意味でインタラプションが少ない、という風に自分の中で定義があるので、必ずしも「働きやすい環境」という価値観は共有されない。

どれだけ福利厚生がよかったり、そういう「よいところ」があっても、作るものがつまらなかったりださかったら、まったく意味がないと思う。たくさんの給料と福利厚生に肥えてゴミのようなものを作っているようでは、それはただの消費だと思う。

だから、中長期的に見てよいものを作るために必要そうなら、コードを書く手をとめて政治みたいなことをしてみてもいいと思っている。自分が政治的な手を動かして、これから先、人為的なしがらみをなくせるのならそうする。

"Shut the fuck up and write some code"

自分は (コードに限らず) 作ったもの以上に雄弁に語る言葉を知らないし、言葉の先だけであれこれ語るのはとてもかっこ悪いし恥ずべきことだと思っている。

しかし、そういった価値観がある一方で、長期的によいものを作るのに最適とは言えない環境が目の前にあるのだったら、それを正すということも結果的に "write some code" にあたるのではないか、と思っている。