お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

あらためて感じる、開発の進め方の難しさ

2006/04/16 14:43
  • このエントリーをはてなブックマークに追加

最近めっきり開発者モードへと還って失われた日々を取り戻しつつ目下急成長中(注:当人比)の江島でございます皆様いかがお過ごしでしょうか。

色々模索しながらやってきた新サービス開発プロジェクトですが、同僚のダニーがバックエンドのコードを書き、ぼくがUIの部分を担当するという大まかな分業に落ち着いてきています。

logo

すでにpretrieve.comというパブリックレコード検索エンジンを開発してリリースした経験のあるダニーはともかく、ぼくは本格的なウェブのサービス開発というのは初めてなので、あちこちで頭をぶつけながら修行中です。

この手のウェブのプロジェクトは、一見簡単そうに見えて実際やってみるとスピーディにやるのは結構難しくて、とくに進め方についてはずっと暗中模索でちょっとずつ前進という感じでやってきています。

rails

3月末にシカゴで行われた37signalsのセミナーで彼らの哲学に改めて深く感銘を受けたダニーの提案により、まずぼくがHTML+CSS+JavaScriptでそれっぽく動く画面のモックアップを書いて、バックエンドに必要なデータ構造などはそこから推し量り、そこからRuby on Railsのコードへとマージしていく、というUIセントリックなプロトタイピングのスタイルが自分たちには合っているということが段々わかってきて、そこからだいぶプロジェクトに加速感がついてきました。

なんていうと、まるで何もかも非常に順調にいっているように聞こえますが、実際の現場では色々と大変なんだよ、といいたいのが今回のポスト。

開発をしていると、日々、これはイケてる、これはイケてない、という議論を繰り返すわけですから、どんどん際限なくストレスがたまります。特にイケてない、という指摘をうまくやるのはとっても難しい。

まず、イケてない、ということを指摘する前に、同じだけのイケてる点を見つけて相手を褒めてあげることができなければ、プロジェクトはうまく回らない。これはマネジメントのセンスがある人は自然とやってる「他人を評価する」ことの基本中の基本ですが、ぼくみたいな凡人はある程度意識的にやらないと忘れがちです。

次に、イケてない、という場合に、単に自分の好みの次元で相手の労作をさっくりと残酷に否定してしまっていることがあります。これは自分が当たり前と思うことは必ずしも相手はそう思わないという教訓の典型で、相手に反論されて初めて相手にも深い意図、というか「思い」があることを知ることになります。

そして悪いことに、特にユーザ・インターフェースの善し悪しは、ロジックでは決して説明がつかないようなところに勝敗を分かつティッピング・ポイントがあったりするから厄介です。

とみに最近、ユーザ・インターフェースの使い勝手やルック・アンド・フィールに関してやたらと喧嘩になりがちだなぁと思っていたら、ダニーの方はかなり気にしていたみたいで、昨日になって色々と言われてしまいました。どうも、ぼくがダニーの言うことを真剣に聞かずに自分の意見を押し通している、ということのようです。

ところが、そう感じているのはむしろぼくの方だと思っていたので、結構ショックでした。

現時点ではタイミング的な制約から、まだ満足のいくデザイナーと契約できていないので、まるでよっしーが当時GREEのロゴを自作していたように(だよね?)、ぼくがロゴなどクリエイティブの製作からCSSやAJAX側のJavaScriptビヘイビアの作り込みまで自力でやっているわけですが、そういう部分に情熱をつぎ込んでいるぼくの姿を見ては「お前は専門家じゃないんだから今デザインに凝るのは時間の無駄だ。どうせプロフェッショナルなデザイナーが入ったら全部捨てることになるのだから。」とか何度も何度も言われて、傷ついているのはこっちの方だと思っていたのですから。

こちらは言葉で言っても通じない(そもそも英語の壁があるので)と思ったものについては実物で示すしかないと思い、コードを書き、あるものは確かに素晴らしいアイデアだと感じてくれたはずだし、あるものはくだらないと思われたでしょう。

subversion

でも、ほとんどの場合、くだらない部分については自分でも納得がいってないのです。ただ、どうすれば良くなるかわからずにウンウン唸りながら困っていて、もう毎晩のように24時を過ぎて燃え尽きて、「とりあえず」で諦めてSubversionにコミットして帰宅した部分に対して、翌朝になってヘボいとか言われると激しく萎えるわけです。そういうのはお互い様だろうけど、お互いに自分の意見を言うときには遠慮がない。

それでも、自分が気付かなかった視点からコメントしてくれることもたびたびあって、やっぱり人の意見を聞くのは大切だと思う。でも、意見が衝突してぼくが自分の意見を通したとき、ダニーはそれを「自分の意見が下に見られた」と感じていたらしいのです。

でも実際には、ぼくは彼の言ってることの真意は(全部とは言わないが大抵の場合)わかっていて、それでも自分のアイデアを試したい、そして、Super Smartなエンジニアである彼と違ってぼくはバカなので、泥臭く手を動かして実際に動く形にしてみないと、それがイケてるかイケてないか想像できないから、申し訳ないけどまずは黙って俺にやらせてみてくれよ。駄目だったらそのときに捨てるから。駄目だったときに、彼にとっては「それみたことか、おれには最初から予見できてたことだ。やっぱり時間の無駄だった。」かも知れないけど、ぼくにはそうじゃない可能性が見えているから、まずはやってみたいんじゃないか。。。と、そういうことなのだけど、そこがなかなか通じない。これまでにも何度もそういう経験を繰り返してきてるから、そろそろ理解してもらえてたんだと思ってた。

先に紹介した37signalsがウェブ上で出版しているGetting Realという本があって、これの哲学(素晴らしい啓蒙書です。ウェブ開発者ならぜひ。)に共鳴するか?っていう次元では、二人とも強烈に共鳴しているので、これをプロジェクトの依って立つ「原典」としているし、かなり価値観とか世界観が近い二人だと思うのだけど、それでも実プロジェクトで実装のディティールを議論するとか進め方とかの話になると、どうしても自分を見失いがちになる。

たとえば「Keep It Simple」っていう言葉ひとつとっても、そこにはお互い激しくアグリーで、もう原理主義的なぐらい徹底的に追求したいはずなのに、たとえばぼくは「冗長な説明調の英語がダラダラ載ってるのがシンプルじゃないから嫌い、シンプルにやれよ」と突っ込めば、「何でも単語だけで説明できると思うのは間違いだ」と反論され、反対に「お前は際限なくフィーチャーを詰め込みすぎだ、どんどんゴールが遠のいていく」と突っ込まれたら、「このぐらいのユーザビリティは何が何でも絶対必要だ」と反論する。一見、テキトーに決めてるんだろうぐらいにしか思われないような部分に、相手にとっては格別のこだわりがあったりするわけです。

つまり、お互い自分の専門領域外で興味のないところはややこしくなくシンプルであってほしい、っていう意味になっちゃってるわけです。でも、自分の領域のこととなると、ディティールが見えているから、単にシンプルという言葉をかざして相手が押しつけてくるものは手抜きにしか感じられなくなる。そういうディティールを練り込んで練り込んでシンプルにするっていうのは、数学の証明をなるべく短くしようとするのと同じぐらい、本質的に一番難しい仕事です。でも、完全で理想的な単純化なんて限られた時間では達成できっこないから、どこかギリギリのところで妥協しなければいけない。これは、こだわりをもってモノづくりをしてるときには、大変つらい決断なわけ。

でも、ぼくはダニーのことを一番深いところでは完璧に信頼しているし、向こうもきっと同じように思ってくれてるだろう。そして、今までの経験上、本当に全力でやり抜いたと言える、納得のいく次元の仕事ができた、と感じるときっていうのは、決まってこういう産みの苦しみと衝突を経験してきたし、これはグッドサインだと信じてる。(とか止揚しちゃったけど、心情的にはそんな生やさしいものではないよ、というのが今回のポストの趣旨なわけですが。)

仕事でアウトプットを出すっていうのは、本来かくも苦しいものです。自分が精魂込めて作り上げたモノであればあるほど、批判されればプライドが傷つく。アウトプットを出し表現するというのは、怖いこと。文章だろうがコードだろうがプレゼンだろうが絵や音楽だろうが、下手クソと言われれば傷つくし褒められれば至上の喜びを得られるという点ではすべて一緒。自分のアウトプットを批判されて「だよねー」とかヘラヘラ笑っていられるのは、その成果物に魂を込めていない証拠。

そういうわけで、精神的にも肉体的にもジェットコースターのような日々を送っております。

で、もう能書きについては結構だから一体いつになったら出てくるんだ、という話ではありますが、今はかなり佳境です。山場を超えたら具体的なご報告ができると思いますので、そのときにまた。

♪ Ozzy Osbourne / No More Tears

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー