楽天テクノロジーカンファレンス まつもとゆきひろ氏の講演から学ぶエンジニアのあり方

photo by zalgon

はじめに

先日、と言ってももう1ヶ月以上も前ですが、楽天が主催するRakuten Technology Conference 2013 というイベントに参加してきました。全セッション、エンジニアによるエンジニアのための内容となっており、英語オンリーな点を除けば私にとっては非常に楽しいものでした。

その中でも、最も興味深かったRubyの開発者でもあるまつもとゆきひろ氏の講演内容について簡単にまとめたいと思います。

まつもと氏講演の概要

以前、同氏のmrubyの講演を聴いた際には、プログラミング言語への計り知れない愛と情熱、そしてスーパーハッカーっぷりを余すところ無く見せてくれました。しかし、この日の内容は少し俯瞰的な視点から、変化の激しいこの時代にエンジニアはどのように歩んで行くと良いのか、というものでした。

以下、いくつかの視点でまつもと氏の講演内容をまとめます。一部意訳が含まれます。

我々エンジニアが生きるこの時代はどのようなものか

10〜20年前の世の中と比較し、ものづくり、特にソフトウェア開発の環境は大きく変化している。インターネットを始めとするIT技術が狭く急激な流れを生み出している。

また、ソフトウェアというものは物理法則からの制約を受けない。そのため、容易に、大きく、複雑になることができる。例えばTOYOTAプリウスソースコードは数百万行に達すると言われている。

このような環境の中で、しかし我々エンジニアは次のような錯覚を持って開発を行っているのではないか。

エンジニア持ちがちな間違った前提

  1. 我々は、何を作ろうとしているかを理解している

  2. 我々は、何を作りたいかを理解している

  3. 周囲の状況は変化しない

しかし、これらは誤りである。我々は無知を認めなければならない。 未来は予測できず、何を作りたいかを理解していない。 ビジネス価値を最大化する、と言いながら、何がそれを成すのかを理解していない。 ex 140文字のTwitterが、これほどまでに成功するなど、サービス開始当初から予測している人はいなかった。

我々が無知であるならば、とりうる選択肢は限られている。

いくつか候補があるが、最も角度の高いものは"試行錯誤(Try and error)"である。

試行錯誤が許される時代

試行錯誤が選択肢になるためには必要な条件がある。

  1. 何度も挑戦できること

  2. 失敗がローコストであること

20年前、ネットワーク接続料も高く、コンピュータも高価だった時代にこの条件は満たされなかった。

しかし、今は違う。

コンピュータはとても安くなり、インターネットにどこからでも接続できる。

プログラミング言語の抽象度は高くなり、ソフトウェアの開発費は安くなった。

これらを劇的に推し進めたのはオープンソース・ソフトウェアであり、インターネットコラボレーションである。

Open source everything but core competance

競争力を生み出すもの以外はすべてOSSで実現するべきである。

そして、自らのソフトウェアについてのオープンコミュニティを形成するべきである。これはOSSに限った話ではない。プロジェクトは最小化し、いずれ解体すべきだ。

そしてもしオープンソース・ソフトウェアを開発する機会があるのであれば、大事なことはただひとつ。

Keep Moving Forward, or Die(進み続けよ、さもなくば死あるのみ)

OSSコミュニティは迫り来るサメのようなものである。開発者はコミュニティの何者にも追いつかれない速度で前に進み続けるしか無い。

何度も挑戦し、早めに撤退する(Try often, fail early)

FROM: "Failure is the end of the world" TO:"You can OK to fail" ("失敗したら終わり"から"失敗してもいい"へ)

Create great software, and Change the World

まとめ

まつもと氏の講演内容についてのまとめメモでした。

また、講演後のQAセッションでも、自らソフトウェアを作り前進し続けるメリットは大きな自由を得られること、また、大きな企業はエンジニアをクリエイターと見ておらず歯車と考えている、などの考えを語っていました。