BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Erik Meijer氏のハッカー的手法

Erik Meijer氏のハッカー的手法

原文(投稿日:2015/11/21)へのリンク

関数型プログラミングとリアクティブ非同期プログラミングで高名なコンピュータ学者のErik Meijer氏が,GOTO Copenhagen 2015で,癌告知を受けたことで人生の見方が変わったことなど,ここ数年の自身の生活について詳しく報告するとともに,ハッカーとしての生き方に対する自身の見解について語った。

Meijer氏は聴衆に対して,自身が2013年にMicrosoftを離れて,“世界中をリアクティブかつ非同期にする”という目標を掲げて自身のスタートアップであるApplied Dualityを設立したことを紹介した。最初の仕事は,関数型プログラミングの実現を目指して,ストリームライン版PHPのHackをFacebookと共同で開発したことだった,と氏は言う。それ以降はGoogleで,2014年にDartでasync/awaitとストリームをサポートする作業の支援を行っている。

その後,2014年のクリスマスイブの頃に,Meijer氏は癌の診断を受けた。それは氏の人生の最後を告げるような意味のものだった。集中治療室で過ごした5日間を振り返って,氏は,自分が望みさえすれば“ただ流されて”しまうこともできそうな,不思議な感覚だったと語っている。集中治療を終えた氏は自宅に戻り,腫瘍学的な治療を開始した。

それから普通の生活に戻るまで6ヶ月間が必要だった,とMeijer氏は説明している。その間に氏は,これまでの自身の人生を再評価して,残された時間で何をしたいのかをじっくり考えることにした。

これらすべての事が終わったら,私は何をしたいのか – すばらしい人たちのために,何か技術的なことができないか? […] 現実の世界で,現実の人々を支援する,現実の機会を。今ここ[ヨーロッパ]で難民たちに何が起きているのかを見れば,彼らが自分たちの行き先を見つける上で,Facebookなどを利用していることに気付くはずです。ごく普通の人たちにこれほどの影響を与えるというのは,実に驚くべきことではないでしょうか。

そのため,Facebookに参加して世界を結び付けるためのプロジェクトに貢献して欲しい,とZuckerberg氏から依頼を受けた氏は,それを受諾することにしたのだ。

この世界をつなぐ開発は,Meijer氏が好むトピックのひとつである“push”対“pull”に立ち戻る好機にもなった。世界の最先端にい続けたいのなら,“push”すること,つまりリアクティブであることが必要だ,と氏は言う。“pull”を使うというのは,基本的にはプログラムに,あらゆる種類のブロックポイントを加えるということであるから非効率的だ,と氏は言う。これに関連する大規模な実例がFacebookにあるのだ,と氏は続ける。Facebookは先日,1日のコミュニケーション数が10億人というマイルストンに到達したばかりだ。だがこれで終わりという訳ではない。世界中の人々が接続するためには,さらにもう1桁に近い拡大が必要だということになる。それを考えると“ぞくぞくする”,と氏は言う。

これほどのスケールアップを実現するひとつの手段として,氏があげるのが,すべてpushで行く戦法だ。これを実現するには,システム内にpull手法を用いているコンポーネントがひとつもないことを確実にするため,使用しているテクノロジのスタックをすべてコントロールすることが求められる。そうでなければ,そのコンポーネントがブロックポイントになってしまうのだ。 Facebookはまさにこの例にあてはまる,とMeijer氏はいう。同社はこれまで,200以上のテクノロジをオープンソースとして公開してきた。言語からデータベースまで,さらには仮想マシンからフロントエンドのフレームワークに至るまで。これは同社が,そのすべてのスタックをコントロールしているという証拠なのだ。同じような例がMicrosoftだ。同社はこれまで,async/awaitをすべての面に拡大する努力を続けてきたが,これは自社のフレームワークからpullコンポーネントを一掃するという意味を持つものだ。

Meijer氏は講演の最後に,プログラミング方法論とFacebookのハッカー的手法(hacker way)を取り上げた。氏の見解では,スクラムやアジャイルといったプロセスは,実は“教育の低い社員”を管理するための手法であって,そこで得られる成果も品質的には平凡なものだ。これとは逆に,開発方法を熟知する経験の深いプログラマを活用して,プロセスを不要なものにするのがハッカー的手法なのだ。Meijer氏は,Mark Zuckerberg氏のIPO文書から,Facebookで広く言われている“コードは議論に勝る”という“ハッカーの真言”を紹介した。これが真実なのは,コードとは,議論をしたり,UML図を書いたり,あるいはボード上のステッカを移動することとは無関係だからだ。Facebookのハッカー手法には5つの原則がある。

  • 影響に注目する: 重視すべきなのは,最も影響を与える部分はどこなのかであり,最も重要な問題の解決に貢献することである。
  • 迅速に行動する: 素早く学んで成果を出す。何かが有効か無効なのかを知るには,それを試してみることが唯一の方法だ。
  • 大胆になる: 何かを試す時にはリスクを負って,失敗の可能性を受け入れること。リスクを負わないことが本当のリスクなのだ。
  • オープンである: この重要性は,GoogleやFacebookなど,社員間での情報のオープンな伝達が進んでいるシリコンバレーの多くの企業を見れば分かることだ。
  • 社会的価値を構築する: あなたの仕事は会社を築くだけではなく,世界に影響を与えるものでなくてはならない。

すべてまとめると,ハッカーとはシステムの制限を試すために,合意されたルールの一部を無視するような人たちのことなのだ。官僚主義や不誠実,無能,退屈さを嫌うのがハッカーだとMeijer氏は言う。

常に批判せよ,常にハックせよ。

Meijer氏によれば,これはプロダクトオーナやスプリント,スプリントスケジュールなどを定義したスクラムの原則とは対極をなすものだ。スクラムは高度に規範的で,“法律の本を読むよう”であり,“コンプライアンスを確保するための警察や司法制度”を必要とする。スクラムのマネージャはまるで羊飼いのようだ,とMeijer氏は言う。そうではない,プログラマにはコードを書くという自身の仕事をさせながら,何が重要かを常に見続けるようにする,養蜂家のようであるべきなのだ。

この記事に星をつける

おすすめ度
スタイル

BT