初リーダーでのアジャイル開発
(1)今回の事例: 企業向けクラウド・サービスのポータル・サイト構築
第2回の「情報共有」では、筆者がアジャイルな開発の基本をどうやって身に付けたのかを解説しました。第3回の「改善」では、筆者がより実践的な内容をどのように学んでいったのかを解説しました。
今回のテーマは「反復」です。筆者が反復について経験を積んだ背景には、筆者自身の立場の変化があります。筆者は、プロジェクトのリーダーとして、これまでの学びを基に、プロジェクトを「反復」して育てていったのです。
これまでの筆者は、アジャイル経験が豊かな上司、先輩、そして、社外のチーム・メンバーとともに、アジャイルな開発を実践してきました。今回は、リーダーとして、チームに対して率先してアジャイルを展開する立場になったのです。
今回は、過去の2回の事例とは異なり、プロジェクト全体の流れを、開始当初から収束するまでにわたって解説します。これまでの2回の事例で伝えた内容も含みつつ、「反復」に焦点を当てながら、筆者が2010年7月まで参画した「企業クラウド・サービスのポータル・サイト構築」を題材に解説します。
まずは、今回解説する事例で構築したシステムの背景と特性について、簡単に説明します。
ここ数年の市場におけるクラウド・サービス化の流れの中、筆者が所属するTISも、クラウド・サービス、特に企業向けのエンタープライズ・クラウドと呼ばれている分野でのサービス展開を行うことになりました。それが、「TIS Enterprise Ondemand Service」と呼ぶ名称で提供しているサービスです。
TIS Enterprise Ondemand Serviceでは、企業のITシステム向けのサーバー環境やネットワーク・サービス、およびその運用機能などをオンデマンドで利用できる基盤を提供します。サービスの形態はPaaS(Platform as a Service)とIaaS(Infrastructure as a Service)です。企業内に閉じたプライベート・クラウドや従来のシステム構築案件に対してIT環境を提供できるだけでなく、TISが提供するデータセンター・サービスやシステム・インテグレーション・サービスと組み合わせたシステム構築が可能です。
今回の事例では、このTIS Enterprise Ondemand Serviceにおいて、企業ユーザー向けのサービス・フロントとなるポータル・サイトを構築しました。本サービスを契約したユーザーが直接利用するという点で、そのサービス自体の利便性に直結する、という特性を持っていました。
ポータルが提供する具体的な機能は、仮想マシンやネットワーク・サービスの申請機能、これらの起動やバックアップ/リストアなどの管理を一元的に行う機能、ユーザー・プロファイルに関する機能、プロビジョニング機能、インフォメーション/問い合わせ対応に関する機能、などです。
図1: TIS Enterprise Ondemand Serviceポータルのスクリーン・ショット(クリックで拡大) |
(2)初めてのリーダー
今回のプロジェクトに参画したのは、2009年9月のことです。当時の筆者は、第3回で紹介した事例(常駐先で開発していた「業務システム」の構築プロジェクト)が終わり、自社(TIS)に戻っていました。
そのような中、これから立ち上がろうとしている次のプロジェクトへ、リーダーとしての配属が決まりました。
プロジェクト開始当初の開発メンバーは4人です。今回も、前回までと同様、システムを構築する言語にはRubyを選定しました。メンバーは、以下の通り、経験もスキルもまちまちな構成となりました。
- Rubyでの開発が初めてのメンバー
- プロジェクトとしての仕事が初めてのメンバー
- Rubyもアジャイル開発も経験豊富なメンバー
- 筆者
以下は、私が所属していた期間の、プロジェクトの概要です。
表1: プロジェクトの概要
項目 | 内容 |
---|---|
参加期間 | 2009年10月~2010年6月 |
人数 | 4~6人 |
エンドユーザー | IaaS/PaaSサービスの利用企業(システム管理者) |
ビジネス・オーナー | TISの事業部 |
今回のプロジェクトの特徴は、ビジネス・オーナーが、筆者たちにユーザー要件を提示する立場であると同時に、筆者たちのプロジェクトと同様、TIS Enterprise Ondemand Serviceから見た開発チームの1つであるという点です。
筆者の開発チームは、本サービスのエンドユーザーが操作するWebフロントエンドを構築する担当チームです。一方、筆者たちのプロジェクトから見たビジネス・オーナーであるTISの事業部は、仮想化されたサーバーを直接管理するサービスのバックエンド側を構築します。フロントエンドとバックエンドは、API(Application Programming Interface)を用いて接続します。
今回のプロジェクトは、筆者にとってリーダーとしての初めての仕事でしたが、今回のテーマの「反復」が示す字義通り、特に新しいことはしていません。次ページからは、3回のリリースを通して筆者たちのチームとビジネス・オーナーが取り組んだことを、時系列で説明します。これまでに得た経験を「反復」することで、プロジェクトをいかにアジャイルな開発に向かって実践していったのかを、生の経験を通して伝えます。