ソフトウェアを作る上で、コードを書く以外に大切なこと@ニコ動
ソフトウェアアーキテクトが知るべき97のこと
Richard Monson-Haefel
オライリージャパン 2009-10-05
売り上げランキング : 1617
Amazonで詳しく見る by G-Tools
Richard Monson-Haefel
オライリージャパン 2009-10-05
売り上げランキング : 1617
Amazonで詳しく見る by G-Tools
右上の本の刊行記念トークセッション@ジュンク堂書店。アーキテクトってつまり現場監督?面白かったのでメモ。自己加工で正確なトーク内容ではなく雰囲気も再現されていないのであしからず。
- ◆紹介
- 鈴木雄介さん - 「アーキテクト」って?
- アーキテクトとは、ソフトウェアを作る上でコードを書く以外の大切なことをやる人。それで伊藤さんや小野さんに日本語版での日本人の執筆を依頼した。仕事はSIer。在庫がないと数日で生命が危険になる医療機器のメーカーで在庫改善を提案したら役員から怒られた。
- 伊藤直也さん - はてぶの人。
- Webアプリケーションは作れる人も多い。ただ、はてなの膨大なデータをWeb上で展開するアカデミックなデータマイニングとなるとどうしていいか分からない。両方できると強い。最近はコーディングではなく、社員数が増えたはてなのマネジメント。そのほうが全体の生産性があがるので。
- 小野和俊さん - 徹夜ダメの人。
- 以前半年ぐらいペアプログラミングばっかりやって社内を遊撃隊してたら新人にきれられて反省した。マネジメントは後悔したのでプログラマに戻ってる。エンタープライズのパッケージの会社なのでクラウド化に取り組んでる。
- ◆アーキテクト的な仕事へのターニングポイント
- 伊藤さん
- 以前のはてなはマネジメントがなくて、技術者が苦手なことやいやなことを避けてしまい、ユーザー登録フローみたいなお決まりごとはおざなりだった。それでも楽しくやっていたが、インフラがぼろぼろになったときに困った。データセンターいってインストールとか、誰もやりたがらないようなチーム作業のマネジメントが必要になった。
- 小野さん
- 新卒で入ったサンマイクロでアメリカでのマネージャのダグラスが強烈で、リリースできないシステムで徹夜しようとしたらスキーに連れて行かれ、3日間滑らされた。トラブルを抱えているときは頭が悪くなってて、1つを解決すれば3つの問題が解決するのに、3つの問題を解決しなければならないとなっていまう。はちまき巻いてがんばりますじゃなくて、ゆとりを持って相談してると「あれいらないんじゃない?」ってなる。シリコンバレーはすごいと思ったが、細かいものづくりは日本のほうがいいからと思って起業したのがきっかけ。
- 鈴木さん
- アーキテクトと名乗るのは恥ずかしかった。プログラミングの反対側みたいなやつらが象牙の塔からよくわかんない絵を書いてきて、これ作れみたいなネガティブなイメージがあって、でも会社のマネジメントに関わるようになったら、仕事をうまく回すための役割として、「アーキテクト」という言葉が一番しっくりくるようになった。
- 伊藤さん
- 一年前なら依頼は断っていた。「おれはハッカーだハァハァ」みたいな
- 小野さん
- 実際の基準があいまいだけど、読んでみるとシステム設計に携わる人のぶっちゃけ話で親近感が沸いた。
- 鈴木さん
- 元々はイベントでやったのがウケて、それからwikiで集まったのが本になっている。
- ◆過去のソフト開発での失敗から学んだこと
- 伊藤さん
- 20代のころは「マネジメントなんていらない、プログラマーサイコー」みたいなこをブログでよく書いてたので、なかったことにしたいというのは半分冗談だが、天才プログラマーというか優秀な人が一人いればものごとは上手くいくと考えていたようなところがあったが、そういう人に上手くお願いする人がいないといけない。優秀な人がユーザーフロー書いていたりとか、組織としてなってしまう。あるいは、新人のころにオブジェクト指向にはまってぐちゃぐちゃやってしまい、先輩に引き継いでもらって土下座して謝りたい気持ちの思い出とか。
- 小野さん
- 会社設立したころ、目をキラキラさせてがんばって2年間、ずっと会社に泊まってという頃があり、自主的にやってるからいいかなと思っていたのが間違いで、身体的には疲れているからイライラしてしまったり、そんななのに徹夜をアピールしてしまったりということをブログに書いたら40万アクセスで、徹夜でぐぐると2番目でSEとしてなんなのかという。
- 伊藤さん
- インフラでトラブって夜中に携帯にメールがきて、人力で直してという消耗戦をやってて、人を増やしたら増やしたでなんでやってないのとかおれ徹夜したのにとかもめごとになって、マネジメントが必要になった。
- 小野さん
- 全員サッカーでみんなでわーっていってがんばるけど試合には負けているという。
- 伊藤さん
- 自分がそういう立場になって分かったけど、監督は必要。
- 鈴木さん
- SIerに勤めていると、はてな的な面にあこがれがあるんですよ。「Webサービス、自分たちでやったもの世に問いたい」じゃんみたいな。であるパートナーと組んで設計したら、これ3年くらいかかる、出資者にお返しできないってなってしまった。夢に胸をふくらませて取り組んでいても、一歩引いて冷静にみている人がいないとだめで、迷惑をかけてしまった。SIerの仕事はリリースした時点で精度が100%じゃないといけない部分があって、Webならベータ機能でもいいのものならとりあえず出してというところがあるのに対し、基幹ではリリースした途端に何億円のトランが走るなら3年かかってもやるというのもあって、そういうバランス感覚はいい経験になった。
- ◆マネジメント100%でないところ
- 伊藤さん
- Webサービスの点からは、クライアントから機能を求められるわけではなく、自分達で魅力を高めていかないといけないので、家でプログラミングしていいプロトタイプができたら、会社に持ってきてチームでやったりしている。データマイニングのアルゴリズムはデータ食わしてみないと思ったような結果になるのか分からなかったりするところもある。
- 鈴木さん
- コード書くことも日本語のドキュメント書くこともパワポ書くことも、表現の形態としてあまり違わないなって思うこともある。
- 小野さん
- マネジメントは必要悪的なところもあって、少人数なら自由なほうが生産性も高いが、たとえばトラブル対処で再発防止策をつくってガチガチになって、機動性が失われてしまうので、バランスが結構難しい。
- 伊藤さん
- 再発防止策を作ってもその後起きなくて忘れてしまい、起きたときにはあの施策なんだっけになっているという。
- 小野さん
- 時々ライフサイクル的にこのルールはというのを棄てていくフェーズを作らないとそれだらけになってしまう。
- 鈴木さん
- IBMが全世界で50万人の会社をどうマネジメントしてるのかという話で面白かったのは、アーキテクト職になるには試験があり、アーキテクト同士で認めればなれるというのが制度化されているという。マイクロソフトではアーキテクト職を認定するのに、マイクロソフト社員じゃないアーキテクトの人のみが試験管で、本社のレドモンドで試験を実施している。
- ◆よいソフトウェアを作ること、コードを書く上で大事なこと
- 伊藤さん
- はてぶのリニューアルで思ったのは、つぎはぎだった設計を作って壊してをしまくったおかげで、大人数で開発してもぶれない形になった。ひどい経験がなくてベストな設計はどうやって分かるのか分からない。
- 鈴木さん
- SIerとしては逆に、システムが動くところを見ることがあまりないので、使われてなんぼとか使い勝手とか、そういう悩みはあまりないのかなと思うところもある。「作ること」と「使うこと」はアーキテクチャを境目に相対していて、作りやすいからいいというのと、使いやすいからいいというののすり合わせをうまくやっていく必要がある。ひゅっとやってひゅっと動くからいいよねといってもそれを作るのに何人月なんだとかというバランス感覚はコードを書く上で大事かなと思う。
- 伊藤さん
- ニコニコ動画のマネジメントのトップの人に、はてぶ自分でコード書いてるんですかと聞かれて、結構自信満々にそうですと答えたらダメですと怒られました。ユーザ的にはこのほうがいいが分かっていても、めんどくさかったり、無意識でもやめちゃうことが多くて、人にやってもらうようになった。ただ、5年後でもコードのことが分かりつつ人にやらせることができるかどうかどうかというと、やっぱり自分でも研鑽していかないといけない。
- 小野さん
- 会社では一度壊して作り直すようにして、情報を集めて新しい技術を使うようにしているが、シリコンバレーの技術者は実はあんまり最新情報を集めたりしていなくて、日本の方がシリコンバレーの最新情報に詳しい。最新情報を集め続けてもそれで満足してしまったりするので、作り直しのタイミングであえて新しい技術を入れてみる。それを5年後に作り直すときにも、いったんリセットしてというふうにやっている。
- 伊藤さん
- よいユーザ体験ができるのがよいソフトウェアという意味でいうと、ユーザ寄りを心がけているというところはある。iphone持ってなくてツイッターもやってないのは、日本の携帯はまだ普通の携帯が多いから。会社見渡すとみんなiphoneだし、はてぶ使ってるのもiphoneユーザーが多いけど、あまり先鋭的にならないように意識している。はてぶを作ったときは、需要があって作ったというより、インターネット最高みたいなという信念で作っていた。であるていど流行ってふと気付いたのが、もともとリテラシーのある人がどんど加速しているだけで、リテラシーのない人があれを使って新しい体験をしたという感じにはなっていない。最近のサービスもそうで、もっと全体を押し上げるようなサービスを作ろうとするのに、あまり先鋭的な位置にいないように心がけている。
- 小野さん
- 僕は好きなことにのめりこむタイプで、ゲーム5000時間やってて親戚に心配されたりしたけど、のめりこむとコミットしたくなったり、関係ない新しいことが仕事に役立ったりする。
後の参加者の質問は省略。