今ではあまりもてはやされることのないインターネット前史。インターネットによってあれこれ変わった、と言うものの、実際にその影響力の振る舞いを正面から分析した話はそれほど聞かない。 ざっと、 - ARPAが明確な目的意識を持ってリソースや機会を提供した - 現場に余計な制約がかからず自由があった - いくつかのブレークスルーが意図せずやってきた これらがポイントになっているように見える。 様々な当事者がこれほどの影響を及ぼすと思っていなかった、と振り返っている。 これがなければ発展しないというブレークスルーの連続。 - パケット通信方式 - ネットワークのインターコネクション方式 TCP/IP - リソースの検索手段 gopher とワールドワイドウェブ ブレークスルーを迎えるたびに、インターネットは当事者が予期するもの以上になっていく。傍観者には何が起こっているのかわからなかったに違いない。 よりプロジェクトらしいOSIプロトコルがそれほど利用されずに終わったことと比較すると興味深い。 - 目的ははっきりしている、リソースは潤沢 - 価値の明確な定義、実装方法の計画が実現に先立って準備された - ブレークスルーを予期する態度があった やるべきことが明確でその意義もわかっているのに、実装がない、進まない、出来が悪い。 プロジェクトで言えば上流はうまくやったのに結果が出ない。 現場にかかる制約や、行動原理に大きなポイントがありそう。 インターネットはアイディアではなく、実装と命名がリードして発展した点も際立っている。優れた実装が、優れたネーミングによって人気を集めることが原動力になって、新しい層を形成していくイメージ。 新しい層が生まれるために、ひとつ手前の層の存在が前提になっている。これは欠かせない条件のように思われる。ブレークスルーを迎えて一気に次の段階に進むのだけど、前の層が不十分な時にそれは起こらない。次のブレークスルーを生むことを可能にする、十分さとは何かという話。 ブレークスルーを生み出す環境は、スケーラブルで、拡張に対して筋の良いもので満たされていなければならず、それは一つの層で提供される解決が、シンプルに効率的な手段で提供されるということでもあるように見える。良い仕様や計画が先読みをしようとするのとは真逆に、一度に一つのことを、シンプルに、汎用的な形で解決することを、連続して積み上げるということ。 これは、アジャイル開発におけるイテレーションのルーツかも知れない。 また、ある時代に行き渡った技術的なコモディティが、次のイノベーションの土壌になるような歴史のパターンとも共通点がありそう。 RFCが実装の可能性を含んだ提案を受け入れ、可能でかつ良いものが標準化するために機能しているのも、インターネットの発展と整合したやり方になっているように見える。 契約やデザイン、定義の類が先行するとソフトウェア開発が行き詰まる実感と、インターネットの発展の歴史は共通点が多いように感じられる。インターネットの歴史は、コンピュータの連携を可能にするソフトウェアの発展を実際に進めた人の経験と、大学や企業など組織がそれを受け入れたり拒否したりする (インターネットヒストリーには、「机をバンバン叩く」人々が度々登場する) ことを通して描かれる。規模は違っても、現在行われているソフトウェアの仕事も多かれ少なかれ、ソフトウェアを実現することとそれをどう受け入れるかの問題という意味で、似たような構図が繰り返されていると言える。 社会の中でソフトウェアの影響力が増大するに従い、生産的な活動がソフトウェアの生産に関わる、もしくは良質なソフトウェアを生み出すことに貢献しなくてはいけないことが増えているように思われる。おそらくインターネットの発展プロセスから学べることは多い。 ソフトウェア開発の成功パターンがイノベーションのミニチュアのような姿をしていつつ、物理的な現象を対象にする技術よりも、伝搬とブレークスルーへ至る速度がものすごく早いために、社会との軋轢を生みやすい (人間の感覚が慣れる速度を上回り、結果としてついていけない) 可能性があるのではないか。 イノベーションを起こすには、イノベーションが起こりやすい条件を整えて、待つしかないように見える。結果的に、邪魔しないことが最速なのではないか。(ハッカーと画家の一節、営業のとんがり頭には「できたときができるとき」と言うしかない、だったか) ソフトウェアを生み出すものたち、もしくはそれに準じる仕事をするものたちがプロジェクトの生産性を握っている場合、ARPAのように条件を整えて放置するのがいいのではないか。 ただ、当初の目標を達成しつつあるとき、ブレイクスルーが起こった時には、条件も変化する必要がある。起こりつつあることを正確に把握しつつ、予期的には振る舞わない、と言うことが、イノベーションを最大化するときに周囲に求められる態度で、これは一般的に、予算に対する責任の果たし方 (予期を現実化する) と相反する。この矛盾があるため、社会の側、あるいはイノベーションの原動力いずれかにストレスがかかり、軋轢が生まれるのではないか。