開発現場のノウハウをもっと共有して、ハッカー文化を企業に根付かせよう
日本のオープンソース会の重鎮(そして自称プロのよっぱらいでもある)楽天技術理事のよしおかひろたか氏が、はてなダイアリーの未来のいつか/hyoshiokの日記で「IT産業には民族誌が必要だ」というエントリを書いています。このエントリにはとても共感するところがあります。
よしおか氏は以前から、ハッカー中心の企業文化を日本に根付かせたいという意志をもってさまざまな活動をされていて、今回の「IT産業には民族誌が必要だ」という意見もそれを実現する要素の1つです。
ではなぜ民族誌が必要だとよしおか氏が書いているのか、本題に入る前に、よしおか氏が言う「民族誌」とは何なのかを、今年の2月にデベロッパーサミット、通称デブサミでよしおか氏が行った講演「ハッカー中心の企業文化を日本で根付かせる」のスライドから少し読み解いていきましょう。
ハッカー中心の企業文化を根付かせるために
この講演でよしおか氏は「良いソフトウェアを必要とするすべての企業」にハッカー中心の文化が必要なんだと言っています。
現在、ほとんどすべての企業がコンピュータなしにはビジネスが行えない現実を考えると、要するにほとんどすべての企業にハッカー中心の文化が必要なんだという野望を語っているように思います(そんなのあたりまじゃないか、というよしおかさんの声が聞こえそうです)。
なぜ必要かと言えば、それによって社会をよくするため、企業の競争力を高めるため、それがベストプラクティスだから、という理由があるのですが、結局は自分がその方が心地よいから、という理由がいちばんなわけです。それでいいと。
そしてその企業文化をどう作るのか、という場面で登場するのが民族誌です。企業文化というのは外からは知られることがないために、それを文章にして形式知に変換して知らせるような媒体が必要になると。
民族誌というのは組織文化を描いたものであり、ハッカー文化を高め、根付かせるに重要な役割を果たすものであると。過去のすぐれた民族誌として以下の書籍が挙げられています。
ちなみに、デブサミで行われたこの講演は後日「縦デブサミ」(デブサミで同一時間帯に横並びで行われたために参加者がどれか1つにしか参加できなかった講演を、縦に並び替えて行われたイベント)で再演され、そのときのビデオが公開されています。興味のある方はぜひご覧になってください。
なぜ民族誌が必要なのかと言えば
さて、本題の「IT産業には民族誌が必要だ」というよしおかさんのエントリに戻ると、ここでよしおかさんは、米国に比べると日本の開発現場ではノウハウの共有が十分行われてこなかった点を指摘しています。
米国のソフトウェア開発の現場に働くエンジニアの流動性は高いので、Microsoftの出身者がOracleに転職して、そのビルドプロセスについてMSのベストプラクティスやdisciplineを転職先のOracleに輸入するということは日常的に行われていた。業界のpracticeやdisciplineが教科書という形式知になって流通するはるか以前に経験値として、人とともに緩やかに流通するというシステムがそこにあった。
RDBMSのアーキテクチャも、Sybase/Informix/Teradata/IBMなどなどの開発者が転職を繰り返すことによって、徐々に共通の理解が共有されていった。
一方で、国内では人材の流動性が米国ほどなく、また企業のガードも固いために、ノウハウの共有ができていなかったと書いています。
富士通や日立あるいはNECのかつてのエンジニアたちのノウハウもどこかには絶対あったと思う。人材流動性がないが故に、あるいは彼らが管理職となるとともに、そのノウハウはどこかに死蔵され社会全体として活用される機会は永遠に失われた。
そこで企業文化を伝えるには、人の流動性と民族誌が必要だ、という主張につながります。
結局のところ一人のエンジニアとしてはいろいろな現場を渡り歩き実際のpracticeやdisciplineを経験することによって少しずつトレーニングをつんでスキルをつけていくしかない。
組織としては、転職者という人を媒体にして、組織として学ぶしかない。
そして、そのような現場の諸行を記述する方法論こそが民族誌である。IT産業の現場の民族誌を自ら記すことによって、そのノウハウを広く知らしめ、社会の財産にする。
そう、最後はそれが社会の財産になるのです。
もっと「どんな風に働いているのか」を広めよう
国内にも、もちろん民族誌的なブログは少ないながらもあります。最近だとAmazon(AWSではなく小売りの方)の開発部門に転職した浅井良氏のブログ達人プログラマーを目指してにポストされたエントリ「転職して感じたウォーターフォール文化とアジャイル文化の違いについて」が話題になりました。
浅井氏はオージス総研からAmazonへ転職されて感じたことをいくつか書いています。
第一に大きく違うと思ったのは、会社の売上や利益に直接つながる、ビジネスの中心に近いところに開発チームが置かれていて、当然プログラマーはプロダクトオーナーなどビジネス担当の人と密接にやり取りをしながら開発を進めるというところがありますね。
とか
チームのサイズが小さくて、業務担当の人とプログラマーが直接会話できる距離にあるため、作成する文書は非常に少ないというところがあります。
とか
B2Cでどんどん新しい機能をリリースしていくという環境では、システム全体を何年もかけて作り直すという機会はほとんどありません。むしろ、細かい機能改善やバグフィックスを行うというプレッシャーが常にあり、その中で空き時間を見つけてリファクタリングを繰り返すという方向になります。そういう意味では、SIerのように新システムの開発をゼロから行うという機会はめったにありません。
とか、そういう組織やカルチャーで仕事をしているのかと、読んでいてとても面白い内容になっています。
このエントリは海外でも話題になっていて、「 Japan’s IT Exodus: A Personal Perspective (Part 1) 」という記事の中で英訳され、コメントが多数ついています。
Publickeyでも、開発者が企業内でどんな働き方をしているのか、これまでいくつかの記事で取り上げてきました。
- 週に1日、エンジニアが開発に集中できる日を作ろう
- 社内ハッカソンをしよう
- クラウドに仕切り値はない、付加価値のない代理店モデルは破綻~アジャイル開発×クラウドがもたらす変化(前編) Scrum Gathering Tokyo 2011
- グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか?
よしおかさんが言うとおり、別の会社でどんな風に開発が進んでいるのか、どんな風に働いているのかは多くの人が興味を持っているはずですし、その情報交換をすることで、もっといい方法のヒントが得られて、そこから身の回りの働く環境や開発の方法をもっとよくしていけるのではないかと思います。
日本ではまだまだブログを書くことを会社に理解してもらえなかったりするケースが多いと聞いていますが、少しずつよい方向へと変えて行きたいものです。面白いブログがあれば、Publickeyでも取り上げていくつもりです。
もちろんそれは、Publickeyにとってより面白いブログが書きやすくなる、都合のよい利己的な理由なのですけれど。