ProjectKeeperに見る開発方法論
ガントチャート機能の改修[後編]
そんな中で、実装方法として以下の2つの方法が比較検討されました。
・Adobe Flex 3、Adobe Flash(以下Flash)
・HTML+JavaScript
この2つを比較すると、表現力、メンテナンス性双方においてHTML+JavaScriptより、Flashの方がRIAに適しているということは、間違いありません。ではなぜ、あえてFlashとHTML+JavaScriptの手法と比較する必要性があったのでしょうか。
SIOS Applicationsのプロジェクトメンバーには、Flashによる開発経験のある人がいませんでした。一方、 HTML+JavaScriptによるRIAは、SIOS Applicationsやほかの製品開発にて豊富な経験がありました。アジャイルにおいては、動いているソフトウエアを作るというサイクルを回し続けることが重要となります。経験不足によるアジャイル開発は、サイクルを不安定にしてしまうリスクを伴います。
HTML+JavaScriptの実装であれば、今回の改修のノウハウをほかの機能で再利用できる可能性もありました。Flashで実装した場合、再利用する機能がFlashでなければ利用できません。開発メンバーが限られている状況下、すでに存在する機能・ノウハウをいかに利用するか、そして今後再利用できるものを開発するということを重視する必要があります。
比較検討の結果、RIA機能の開発にはHTML+JavaScriptの手法を用いました。SIOS Applications基盤にRIA機能と連携する手段が実装され、すでに存在するほかの機能をRIA化する可能性が広がりました。
HTML+JavaScriptへのチャレンジにより、既存のコードを生かしつつRIA化する道が整ったのです。
RIAとアジャイル開発
ガントチャートの改修は、3人のプログラマーと1人のデザイナーで行い、最初はシステム要件を要望のチケットとして精査し、すべてをRedmineに登録することから始まりました。
開発は2週間に1回の割合でマイルストーンを配置して、これをアジャイルの1ローテーションとし、反復開発を実施しました。反復の中で常に注意すべき点はユーザビリティの確認になります。常に動作状態を確認できるアジャイル開発により、開発初期の段階から多くの人の目で確認することが可能です。プロジェクトメンバーで確認することもあれば、営業のマシン上で要望が本来要求していたものとかけ離れていないか確認することも可能です。
今回RIAの機能改善では、アジャイル開発がとても適していることが明確になりました。RIAは見た目が「きれい」という印象がありますが、最も重要なことは「操作性」です。操作性は直感的なもので、人によって受け取り方、感じ方が変わってしまいます。パッケージ製品のため万人に受け入れられるような操作性が求められていましたので、開発とレビューを反復して品質を向上できるアジャイル手法はまさにうってつけでした。
今回は、アジャイル開発における開発環境作りと、実際どのような製品を作ったのかをご紹介いたしました。ただし開発手法はあくまでも手法です。ちょっとしたひずみにより容易にプロジェクトが崩壊してまうこともあります。このひずみは自然と修復されるものではなく、一度プロジェクトが崩壊すると回復することはとても困難です。製品に対する要望と同様、開発手法に対する意見をプロジェクトメンバーは必ず持っていることでしょう。
開発プロセスでは、プロジェクトに対するフィードバック・改善を率先して行い、開発手法を含め、常にプロジェクトメンバー間でコミュニケーションをとっていくことが大切です。開発手法を検討した時点で、開発プロジェクトのサイクルは回り始めているのです。