Movable Type の開発

※本記事は、旧 Tech Talk Blog 内の 「Movable Type の開発 (http://www.sixapart.jp/techtalk/2006/08/movable_type.html) はてなブックマーク - 」 で公開されていた記事を移転しました。

こんにちは。Movable Type 製品開発チームの吉松です。そのうち登場する真打ちがやたらに深い技術の話をしてくれると思うんで、その前にまずは前座ということで、Movable Typeの開発チームの生態をさらしてみようと思います。

Movable Typeの開発チームは、サンフランシスコの本社にいるプロダクトマネージャ、エンジニア、QAリード、インタラクションデザイナ、および東京オフィスにいるエンジニアとQAリードから成っています。また、ヨーロッパにローカライゼーションの担当者がいます。いろいろ紆余曲折を経てきましたが、現在はこの太平洋をまたいだ3拠点で開発作業、具体的には外部仕様や内部仕様の策定、実装、テスト、リリースノートの作成までをこのチームで担当しています。この面々は、irc.freenode.netの#movabletypeと#movabletype-jaに出没しています。sixapart.comおよびsixapart.jpに設置されたフィードバックフォームからの投稿もこのチームに直接届く仕組みになっています。

開発チームは、ほぼ1ヶ月単位でコードネームの付いたプロジェクトをまわしています。このプロジェクトの中で、仕様策定、実装、テストというフェーズが完結し、成果物が「リリース」されます。現在はUNICRON [1] という名前のバージョンを開発しています。

これは、Movable Typeの製品が毎月公開されるという意味ではありません。多くの「リリース」は内部にとどまります。要求仕様のセットをすべて実装し、公開するに足る状態になった時点で、正式リリースを行うためのプロジェクトが別途開始され、一連の手順を踏んで公開にいたります。ですから正式にバージョン番号の付いた形でリリースされる製品は、内部的には複数の「リリース」を経てきたものです。

1ヶ月という期間で仕様策定から実装、テストまでを行うので、チームのメンバーそれぞれが自分の判断で毎日の仕事をこなし、かつチーム全体での意思決定をすばやくできるようにするという、一見相反するような要件が課されることになります。太平洋と大西洋をまたがった時差もあります。

そういうわけで、私は朝8時30分くらいには遅くともネットワークにサインインして、社内のIRCに入り、USチームとチャットで情報交換をすることから1日が始まります。そこで何らかの問題があったり、仕様に関する確認事項が出たりすると、ビデオ会議ができる部屋に移動して30分から1時間ほどビデオ会議に入ることもしょっちゅうです。会議というと非効率、製品開発の敵、というようなイメージがありますが、MT開発チームは普段近くにいない分お互いに顔をあわせて話し合うことが重要なので、無意味で非効率なものではありません。雑談などもしながら、離れていてもチームとして1つの方向を向いていることを確認しあう大事な時間になっています。なんだか遠距離恋愛の説明みたいですが。

リリース前にはどうしても切羽詰った状況になることがあります。ときにはサンフランシスコのメンバーが日本時間に合わせて夜中までオフィスにいることもあります。私は品川から赤坂まで自転車通勤をしているのですが、夜中の2時に起きて自転車で出勤したこともあります。そんなときこそ逆に一体感が得られてハッピーになったりするものです。

大体日本のお昼前にはサンフランシスコのメンバーは帰宅するので、その後は日本でプロジェクトの続きを行います。ソースコードを管理しているsubversionのリポジトリ、バグトラッキングシステム、仕様書(Wiki上にある)などはすべてサンフランシスコとヨーロッパのメンバーと共有しています。日本で見つかったバグをサンフランシスコのメンバーが翌朝修正したり、サンフランシスコのメンバーが書いた機能仕様を日本のメンバーが実装するという具合に、お互いが寝ている間に作業が進むようになっています。そしてときにはフィードバックに対応し、IRCで雑談し、イントラブログに書き込まれたMTプラグインのネタを実装してみたりしていると外が暗くなってくるので、自転車で帰るという生活です。

ときにはメンバーで飲みに出かけることもあります。そう聞けば当然日本のメンバーだけで出かけていると思われるでしょうが、MTチームはときには太平洋をまたがってパーティをすることもあります。本当はみんなで集まって乾杯できればいいのですが、今のところはビデオ会議システムを経由しての乾杯でがまんしていますが。どっちが何時だったのか聞きたいあなたには、It's five o' clock somewhereという言葉を送りましょう。

Movable Typeの開発はこんな具合に進んでいます。また、Movable Type Publishing Platform製品ラインの開発に入っているときは、http://code.sixapart.com/svn/movabletype/のリポジトリにチェックインするので、誰でもその進捗を確認することができます。このリポジトリへのチェックイン情報は、すべてボットによってirc.freenode.netの#movabletypeと#movabletype-jaに通知される仕組みになっているので、IRCでチャットしている間にも、MTのソースコードが改善されたということがわかる仕組みになっています。ぜひIRCに雑談しに来てください。

----

[1] MT 3.2のコードネームがSPAM FIGHTERであったことはよく知られていますが、MT 3.3/MTE 1.0のコードネームがTINSEL/TRIBBLEであったことはあまり知られていないでしょう。S、Tと来たので次はUというわけです。UNICRONって何だ?という方はwikipediaをどうぞ。

Six Apart をフォローしませんか?

次の記事へ

とある TypePad エンジニアの開発環境『使ってます。vim と ack 。』

前の記事へ

Tech Talk Blog をスタートします