Wikiがソフトウェア開発スタイルを変える日

Web百科事典Wikipediaのおかげで、Wikiの名前は広く知れ渡った。Wikiは誰でも参加してWebサイトを編集できるツールである。シ ンプルで簡単に使えること、バージョン管理機能があり即座に元に戻せることなど、とかく利便性が高く、いろいろな用途に使われ始めている。

Wikiの現在形と将来の方向性

2009年には50%の企業がWikiを持つようになると予測されているように、Wikiの利用は広まりを見せ、個人やグループだけでなく企業での利用も顕著になってきている。

Wikiの企業利用の特徴として、情報共有に使われるだけでなく、ソフトウェア開発にも使われるということが挙げられるだろう。例えばソフトウェア開発において、課題管理・プロジェクト管理ツール(trac, redMineな ど) では、Wikiによりドキュメント管理される。

そのWikiの将来に関する議論は現在各所でなされている。Wiki コミュニティ(WikiSym, Wiki Science, WikiManiaなど)で議論されている Wikiの将来形は、Wikiサーバ間でのデータの連携、コンテンツにアクセスするAPIの標準化、記述形式の標準化、などの言葉で表現される。

これは、作成したページやデータの寿命が、しばしば使用中のWikiソフトウェアに依存する制約から解放しようとする、いわばデータの永続性を追求する流れである。

Wikiとソフトウェア開発プロセス

Wikiの将来を占う上で一つ見逃せない流れがあると感じている。それは、ソフトウェア開発プロセスの各工程に直結した利用が始まっているという流れである。

例えば、要求分析フェーズ、テストフェーズなどでの利用が提案されている。 要求分析フェーズでは、Wikiページの集合の基本構造をテンプレートとして提供することで、複数のステークホルダからの要求を効率的に整理しようとする試みがある。例 えば、要求分析に必要なユースケースを記述するためのページテンプレートが提供され、データの入力および管理が楽になる。ま た、受け入れテストツールであるFitNesseはWiki サーバを内包し、テストケースの記述にWikiを用いている。受け入れテストは顧客側が中心となってテストをするという性質を持つため、複数の人の協調作 業を支援するWikiの特性を うまく活かしている例である。

このように、Wikiは複数のステークホルダによるソフトウェア開発が行われる場合の効率化に貢献している。

Wikiの1つの漂着点

では、こうした流れの先にあるのは何だろうか? 一つの可能性として、ソフトウェア開発プロセスの他のフェーズ、例えば実装(プログラミング)フェーズなどにも浸透することを挙げよう。つまり、Wiki がソフトウェア開 発を一貫して駆動するという新しい ソフトウェア開発スタイルを生み出すという展開もあるのではないだろうか。

実際のところ、実装フェーズでWikiを利用することに関して、Wikiページをプログラムの単位にしようという構想を 持つ人たちもいるようだ。個人的に、その端緒を感じたのは、ブラウザ上でプログラミングを行うツールが出現してきていることである(Lily, EditArea, QEDWikiなど)。

作成したプログラムを誰かに手早く見せる、コメントをもらう、変更してもらう、という作業をバージョン管理機能を持つWikiでカバーするのは相性が良さ そうである。特に、ソ フトウェアの利用に制約があるようなシンクライアント環境、急なコードレビューなどの状況下では、ブラウザ一つで利用できる Wikiの手軽さが生かされる。

それがおもちゃのようなプログラムからの出発であったとしても、現在のソースコード管理システム(SVN, CVSなど)とはまた別の、プログラミングにおける手軽なコラボレーションの形を生み出す可能性を感じている。決まり事に従い、適切なツールをインストー ルして使いこなせば複数のステークホルダによるソフトウェア開発の生産性は飛躍的に高まる。しかし、このプロセスがもっと手軽な方式で実現されても良いよ うな気 がしてならない。