最近,WebアプリケーションやWindowsソフトの取材で,“このソフトは担当者が一人で作っています”という事例に続けて遭遇する機会があった。フリーソフトや趣味のソフトではなく,会社が商品として提供し,不特定多数のユーザーが使っているアプリケーションを一人で作って,一人でメンテナンスしているという点に興味を覚えた。

 先週都内で開催された開発者向けイベント「ITpro Challenge!」でも,ドワンゴの戀塚昭彦氏がニコニコ動画を一人で(しかも3日間で)作ったと語っていた(関連記事)。よく考えてみれば,ITpro Challenge!に登壇したようなハッカーとかアルファギークなどと呼ばれる優れた開発者でなくても,企業内で一人でソフトを作っているケースは思いのほか多いのではないだろうか。

 アプリケーションの規模や内容,また開発者のスキルにもよるだろうが,おおむね一人で開発するほうが,
・低コスト
・開発/修正のレスポンスが早い
・マネジメントが容易
・情報共有のためのコミュニケーション・ストレスやギャップが少ない
といったメリットがある。

 もちろんその反対に,
・一人の人間に会社の資産が依存する
・ノウハウや技術,人材が流出する
・品質や納期に不安が残る
といったリスクがともなう。だが,これらは会社側から見たリスクだ。開発者側にはデメリットはあまりない。強いて言えば,失敗したときの責任逃れができない,という点があげられるかもしれないが,それはチーム開発でも同じだろう。

 つまり,可能であれば,一人で作るほうが良いのではないか。そんなことを考えながら,冒頭の事例のそれぞれの開発者に話を聞きに行った。

営業一人,開発一人のWebアプリケーション

 Clogger.jpというサイトをご存じだろうか。Amazon.co.jpやぐるなびといった様々なWebサイトから,自分が欲しいものや興味がある/気になる商品などを集めて,オリジナルのカタログを作成し,他人と情報交換ができるというサービスだ。yatai(グレープシティの子会社)が運営している(関連記事)。

 このWebアプリケーションを一人で開発し,メンテナンスしているのが,グレープシティ未来事業部の高倉真一氏だ。グレープシティと言えば,学校向けの業務システムや.NET/Javaのコンポーネント・ベンダーとして有名だが,高倉氏は,そのどちらでもない研究・開発のチームに所属している。

 Clogger.jpのアイディア自体は,別の人物が考案したものだ。当時グレープシティは,一般ユーザー向けのWebアプリケーションの開発実績はまだなかった。そこで,研究・開発チームの高倉氏にお鉢が回ってきた。当初は,Clogger.jpを実現するためのInternet Explorer(IE)の拡張機能の開発だけを依頼されたそうだ。しかし,それだけではデモをしてもわかりにくい。そこで,クライアントのGUIを含めてトータルに開発し,早々に公開してフィードバックをもらおうというということになった。

 開発を始めたのは,2006年9月頃。サーバー側はASP.NET(Visual C#)+PostgreSQL,クライアントではJavaScriptを活用するAjaxアプリケーションだ。この時点では,まだ高倉氏が一人で開発すると決まっていたわけではない。パートナーとなるベンダーを探していたが,適当な相手が見つからず,結局一人でこつこつ作ることになっていった。

 アイディアはあったというものの,きちんとした仕様書があったわけではない。実際の開発にあたっては,販売担当である中野康剛氏と話し合い,必要な機能を洗い出しながら実装していった。開発担当は一人なので,会議というほど大げさなことをすることもない。メールや電話で好きなときにコミュニケーションを取れる。多少不明な部分があっても,自分で判断してとりあえず作ってしまうことができる。小回りがきいて,効率の良いプロジェクトだったと高倉氏は振り返る。

 とはいえ,初めてのことばかりだったので,開発は容易ではなかった。特に「Webブラウザの互換性には苦労した」と高倉氏は言う。Clogger.jpが対応するブラウザは,IE,Opera,Firefox,Safariの四つ。どのブラウザでも同じように動作するように,どれかに依存するコードを注意深く見つけて,書き直していく作業が必要だった。また,ドメインを超えてコールするスクリプトを実現するのも難しかった。

 しかし,こうした難題をひとつ一つ乗り越えていくことは「開発者として大きな自信になった」(高倉氏)と語る。問題を解決したときやアプリケーションが完成したときの達成感は,かつてないほど大きなものだった。

 結局,2006年12月にVer.1.0のClogger.jpを公開した。9月の時点で2006年内には公開したいという要望があり,それに応えることができた。2007年5月には,携帯電話からアクセスできるモバイル版も公開した。今もって,高倉氏が一人でメンテナンスし,機能拡張を続けている。

 担当が替わったときのためのドキュメントは残しているか?という質問に対しては,「ぜんぜん書いてない」と笑った。仕様を考えながら実装していったので,途中時点のドキュメントを残してもあまり意味がないと思ったからだと言う。担当替えになったらドキュメントを書くつもりだが「開発者はソースコードを見ればわかる」(高倉氏)。

 では,一人で開発することで困ったことは何か? 「強いて言えば,逃げられないこと。こんな機能はできないかと聞かれたときに,できないとは言いにくい」と言う。つまり,自分のスキル・レベルを理由に“できない”と言ってしまったら,アプリケーションの機能性は小さくなってしまう。難しそうなこと,やったことがないことに積極的に取り組んでいかなければならない,それを高倉氏は「逃げられない」と表現した。それは「責任感」と言い換えることもできるだろう。

 ずっと同じことをやっていて飽きないか?──実は,これを一番聞きたかった。すると高倉氏は「ぜんぜん飽きていない!」ときっぱり言い切った。やりたいことがまだまだあるのだと言う。「特に,サーバーサイドはデータベース・アクセスの高速化や,スケラービリティ確保などの課題がある。クライアントでも,Silverlight(Microsoftのリッチ・クライアント技術)対応などにチャレンジしたい」と熱く語った。