開発者と近づくWebデザイナー
アジャイルソフトウエア開発
iKnow!は、アジャイルソフトウエア開発に基づいて開発を進めています。筆者は、同僚や、プロセスやツールにおけるインタラクションに重きをおいています。ややこしいドキュメンテーションに時間をかけるのではなく、機能するソフトウエアを開発することに取り組んでいます。
そして、要求仕様の中で変更があればフレキシブルかつ責任をもって、そのニーズに即座に対応できる能力に価値を見いだします。変更については、過去の失敗に対する認識、ユーザーのニーズと要望への配慮、インターネットの様相の変更から生まれます。結果としてインターネット上のコミュニティーへの露出がより多くなっていることのきっかけにもなっています。
早い周期、頻繁なリリースのため、イテレーションのコンセプトを使い、開発プロセスを管理しています。イテレーションとは、ある特定のタスクセットを達成させる期間を任意に区切ったものです。iKnow!の開発の初期段階では、イテレーションは毎週行われ、時には、もっと短い期間で行われることもありました。
今は、イテレーションサイクルを2週間にしています。このサイクルの中で、プロダクトロードマップから達成する機能が割り当てられますが、これは重要度とイテレーションの枠内で達成できるものが決められます。これらの機能の開発はコードフリーズ直前まで続けられます。この時点で、すべての新しい機能の開発がストップし、最終のテストが始まります。最終テストに2日ほど要し、もしすべてテスト工程で問題がなければ、実際のサイトが新しいコードでアップデートされます。
クリエイティブな開発は、リリースサイクルのすべてに存在します。しかし、たいていはコードフリーズになった後、プロダクトを公開する直前に必要とされる最終のインターフェースを仕上げる時が最も忙しくなります。
クリエイティブチームは、サイトプランニングチームによって、作り出されるワイヤーフレームである簡易設計の中で、新機能におけるプレ・ビジュアライゼイションを早い段階で行います。よりアジャイルであったり、何らかの理由でデベロッパーがインターフェースの開発やデザインを先に行うような機能の場合は、後でクリエイティブチームが修正をすることもあります。
アセット管理
イテレーションサイクルにおけるファイルの変更管理や、コードの質を維持するために、iKnow!ではバージョンコントロールソフトウエアである「SVN」を使って開発しています。Railsのフレームワークとあわせて処理をする時に、バージョンコントロールはデベロッパーとデザイナーが、作業スペースや機能の範囲において比較的別々に作業することができます。
デベロッパーやデザイナーは、それぞれ全Webアプリケーションコードのローカルコピーと、開発中の最新データのライトバージョンを持っています。機能をローカルコードでテストするには十分なところまで開発したら、リモートバージョンでアップデートをし、コードコンフリクトがあれば修正、解決します。その時に、ローカルファイルはリモートコードベースにアップロードされ、テストのためにデベロップメントサーバーに配置されます。
バージョンコントロールを今まで使われたことがない人には、すぐに使い始めることをお勧めします。無料で使えるものから有料で使えるものまで、選択肢はたくさんあります。私はSVNを使って、PhotoshopファイルやFlashファイルやIllustratorファイルなど、すべてのデザインアセットを管理しています。
ファイルのコンフリクトを管理することに最適とは言えませんが、簡易な方法でファイルバージョンやバックアップを管理します。もし、何らかの理由でファイルを紛失してしまった経験があれば、なぜこれが重要かがわかるでしょう。Adobe Cueのようなソリューションもありますが、私は、簡潔であり、多用途性のあるSVNを好んでいます。
SVNは、インディペンデント・クライアントとサーバーソリューションのプラットフォームです。サーバーはリモートサーバー上でセットアップされ、新しいプロジェクトはレポジトリに保存されます。クライアントはローカルにインストールをし、ユーザーネームとパスワードで、リモートファイルサーバーにアクセスできます。筆者は、Tortoiseと呼ばれるGUI(グラフィック ユーザーインターフェース)バージョンとコマンドラインクライアントを組み合わせて使っています。
GUIは、コードのコンフリクトを管理することに優れており、コマンドラインはコードの早急なアップデートや、コミットに役立ちます。効率的なコンフリクト管理では、より多いコードの統合を可能にし、多くの人々が同時に同じファイルに変更を入れることができます。