
[ホーム]
[最新エントリー]
[あすなろBLOG]
[あすなろNEXTBLOG]
[あすなろカウンセラーBLOG]
[インタビュー]
[スペシャルコンテンツ]
[テックスペース]
|
|
次へ |
2008年01月29日
就職して一番初めの仕事から、難易度の高い仕事を任され、めきめきと力をつけていった楽天技術研究所代表 森氏。この後アサインされるプロジェクトはさらに難易度が上がります。どのように課題を乗り越えたのかをお伺いします。

■その後はどういったお仕事をされていたんでしょうか。
次に担当したプロジェクトは、官公庁の大規模な検索システムを作るというものでした。2000年を過ぎる頃には、JavaのJ2EE1.2.2がでてきて、XMLの仕様が固まりつつあり、それらの技術を使うことを提案したところ、提案が通ったんですね。結果、提案したこともあって、プロジェクトのテクノロジー部分をほぼ自分ひとりでやることになりました。
■検索エンジン作ったことないのに。
前回のプロジェクトで、アーキテクチャの全貌は見てたので、これにオブジェクト指向を取り入れたらこういう感じかなというイメージは掴めていたつもりだったんですが・・・。その2.3年は凄まじく勉強しました。ちょうどプロジェクト開始から半年くらいたったころ、八重洲ブックセンターのコンピュータコーナーで、そこにあるJavaの本は全部読破していたことに気づきました。もう読んでない本ないや、じゃあ仕様書読むしかないと、VMの仕様書読んでました。(笑)
■何年のプロジェクトですか。
プロジェクトは3年。基本設計が半年、プロトタイプ開発で1年、本番開発が残りの期間です。プロトタイプ開発の段階で、いろいろありまして、新卒が10名入りました。
■新卒が10名ですか。
運よく、彼らはコーディングができる新人で。(笑)アーキテクチャの部分はオブジェクト指向で作り汎用性を高くし、アプリケーションの部分は、Servletの機能をうまく使いながらも、Servletをあまり意識せずにテンプレートに書くみたいな感じにしました。
■経験のなさは、アーキテクチャでカバーですか。
でも、技術的な課題も見えていました。というのは、官公庁のデータは、歴史的な価値もあり、保持し続けなければいけない項目が多く、データ項目が肥大化します。おそらくこの点で苦労するだろうと思っていました。
■その課題にどう取り組まれたのでしょう。
この点を克服するにはマジックが必要だと思いました。
■マジックですか。
はい。うまくいく仕組みです。そこで僕は、ケント・ベックらによって提唱されていた、「XP(eXtremeProgramming)」に注目しました。当時まだ翻訳は少なかったけど、メンバーと一緒に、海外の文献などを調査して、XPを開発プロセスに取り入れました。
■マジックは起こりましたか。
これはかなりうまくいきました。最もこだわったのは、テストの自動実行です。まず、ソースコードやモジュールを管理する仕組みを、UNIXの更新履歴管理ツールである、SCCSをベースに、過去のバージョンを手軽に取り出したり、ロックしたり、共有することができる仕組みを作りました。そして、5分に1度、レポジトリ上のプログラムを全部コンパイルして、登録してあるユニットテストを自動的に走らせるということを実施しました。
■作りながら動かすってことですね。
常にコンパイルして動作確認していますから、誰かが取り出して間違って修正したり、間違ったものを入れたりしたら、エラーが出て止まります。ユニットテストの結果は、リアルタイムで共有のイントラで誰でも閲覧できるので、気づいた人が「ここが間違ってるよ」とか、「ここ直しておくね」といったコラボレーションが生まれます。それこそ、アジャイル開発の真髄である、「コラボレーションしながら作りこんでいく」ですよね。
■コラボレーションが自然と生まれるということですね。
それから、失敗することを恐怖しなくなるという利点もあります。間違えばすぐにエラーになるけれど、だったら元に戻せばいいだけです。このプロジェクトでは、リリース直前に、アルゴリズムのチューニングも実施しました。普通、アーキテクチャレベルを頻繁に改良するなんてことできませんよね。常にテストし続けていたからこそできることです。
■先進的ですね。
XPでは、ペアプログラミングとかがよく注目されますよね。僕は、コンティニュアス・インテグレーション(継続的インテグレーション)が真髄だと思います。
■このプロジェクトは成功体験となりましたか。
はい。新卒10名を主戦力とし、新しい技術を取り入れ、ピュアなオブジェクト指向でモデリングし、しかも大量のデータを扱うシステムということで、社内でも事例としてよく取り上げられました。次の年にはEJBを導入して3層にしたり、自分達でロードバランサーつくったりと、かなり凝りまくりましたね。
■その後も新しい技術に取り組む日々ですか。
2004-2005年の間は、運用チームのマネージャーをやっていました。
■運用ですか。また違う畑ですね。
既に実稼働していながら、様々な要因から障害が発生しているシステムの運用プロジェクトへのアサインでした。プロジェクトマネージャーから、「森なら何とかできる!」と説得され引き受けました。入った頃は、トラブルは頻発するは、聞いたこともない罵声を浴びるは、今思い返しても、耐え抜いた、生き抜いたと言える経験でした。
■どうやって立て直したんですか。
まず、それまでやっていた運用の報告ミーティングはすべて中断してもらって、運用の情報はすべて僕が集約して、お客さんには僕一人からの報告に切り替えました。
■得たものはありますか。
運用に必要なマネジメントについていっぱい学びましたね。インフラもネットワークとかサーバとかの保守管理のしかたとか、アプリケーションというのはどういうサイクルで保守していくのが良いかとか、お客さんとコミュニケーションして計画、管理しながらやっていくかとか、実稼動しているシステムの積みあがっている障害やバグを減らしていくか、その間お客さんの業務的な制限があるか、それをどう協力してもらうかとか。
■辛い状況に変化はあったのでしょうか。
3ヶ月くらいして罵詈雑言はなくなり、「このプロジェクトは本当に困難で何もかも信用できなかったが、森さんは信用できる」とお客様に言っていただけました。
■その経験から学んだことは何でしょう。
二つあります。ひとつは、「逃げない」ってことはすごく重要だということ。(笑)もうひとつは、人が嫌がる仕事はすごく重要だということです。
■嫌な仕事から逃げてはいけないということですか。
運用の現場で、お客さんが怒っているという状況。普通、嫌でしょうね。でも、嫌がられているけど必要とされている仕事をやるということは、結果として後でスキルが身について、為になると感じました。
■お客さんに絶対的なコミットをせざるを得ないので覚悟が違うわけですか。
まさに、「事件は現場で起きてるんだ!」ですよ。この経験で、システムを作る以外の視点を得ることができました。この後、システム入れ替え時のハードウェアの調達計画の立案まで手伝ったんですが、現場では求められたら答えるしかないですから。すごく勉強になりました。
■先ほどの検索エンジンのプロジェクトとは違う学びを得たんですね。
検索エンジンのプロジェクトでは、意識的にハードルの高い課題に取り組みました。この運用のプロジェクトでは、技術的な高みというより、人生の教訓的にいろいろ学ぶことがありました。
■森さんの新しい部分が鍛えられてしまったんですね。
とにかく、逃げないってことです。
次回は2月5日up予定
第14回(3)「転職の経緯と、チームで魔法のような成果を出す方法」
楽天についてもっとしりたい
楽天が誕生して10周年!楽天のサービスはどのように発展してきたのか。
詳細はこちら⇒【楽天】10周年記念特集:楽天開発ヒストリー
|
|
次へ |
|
|
[ホーム]
[ブログコンセプト]
[個人情報]
[著作権]
