ソフトウェア開発の全体最適化のキーにコラボレーションが必要な理由とは
最近、企業のソフトウェア開発におけるQCD、クオリティ・コスト・デリバリー(納期)への要求がさらに厳しくなっている。その背景には、ビジネスプロセスの一部としてソフトウェア開発が完全に組み込まれていることがあり、日本アイ・ビー・エムの熱海英樹氏は「従来型の開発手法ではビジネス側の期待に応えることが難しくなっている」と語る。
そこで注目されているのが、ソフトウェア開発における要求、設計、実装、テスト、保守と運用、さらに更改(バージョンアップ)も含めたライフサイクル全般にわたって管理する「ALM(アプリケーション・ライフサイクル・マネージメント)」の考え方だ。各工程の成果物を一元的に管理することでトレーサビリティを確保するとともに、生産性向上の実現をめざす。
現在、様々なALMを冠する開発支援ツール、ソリューションが提供されているが、熱海氏は「工程間が、成果物だけで会話されているケースが多い。工程を担うメンバー同士は分断され、コミュニケーションが不足していることにより、様々な問題が発生する根本原因になっている」と指摘する。また最近では、同じチームのメンバーであっても、遠隔地に分散していることも少なくない。場合によっては国も違う。さらに直接工程が接していないチームメンバー同士の繋がりは、皆無に近い。「コミュニケーションはメールで十分」という意見もあるが、一部の人だけしか議論の経緯と結論を知らないということが起こる。よほどの工夫をしないと情報共有は容易ではない。
ビジネス部門とIT部門のコミュニケーションも課題だ。日本情報システム・ユーザー協会(JUAS)が毎年行っている企業IT動向調査において「ITに対する顧客満足度が向上しない」という結果が数年来出続けている。実はソフトウェアの品質そのものは、同協会のソフトウェアメトリクス調査によって著しく向上していることが分かっている。その事実に反して満足度が上がらないのは、ビジネスの現場が本当に必要としているITが届いていないからだ。熱海氏は「ビジネス部門とIT部門のコミュニケーション不足は、無用なものを開発してしまうリスクと認識する必要がある」と指摘する。
そこでIBMは自身のソフトウェア開発の経験も踏まえて、「成果物」ではなく「人」のコラボレーションを中心にしたライフサイクル管理を可能にするIBM Rational CLMソリューションを開発した。CLMはコラボレーティブ・ライフサイクル・マネージメントの略であり、いわば進化形のALMと言えるものとなっている。
では、なぜソフトウェア開発でコラボレーションが重要で、CLMが必要なのか。それはまず、ITがビジネスに直接貢献することへの期待が高まっていることが挙げられる。一つの例として、先のJUASのレポートに「経営層からIT部門への期待と貢献度」という設問で「ビジネスモデルの変革」「ビジネスプロセスの変革」が共に60%以上も期待に応えきれていないという結果が出ている。しかし、現実問題としてIT部門だけでビジネス改善をITで実現することは難しいため、ビジネス部門とコミュニケーションだけではなくコラボレーション(協働)して、より根本的な要求を練り上げてITに実装しなければならない。
次にプロジェクトの短期化がある。再度、先のJUASのレポートから「システム開発の工期」という設問では約4割のプロジェクトが工期遅れであるとの結果だ。熱海氏は「複合的な原因が考えられ、一つはプロジェクトの短期化であり、他には要求変更による手戻りがある」と推測する。ビジネスの現場が業務改善を行う際にITへの反映がボトルネックになることが増えている。最近では朝令暮改のスピード感でビジネスが変化していくためITの対応の遅さが不満として認識されてしまう。こういった状況を打破するには、開発プロセスの種類に関係なく、ある一定期間に区切って優先度が高い機能からリリースするような開発手法が望ましい。
これらを実現するには組織/工程/職種の壁を越え、状況に応じたすり合わせを行いながらプロジェクトを遂行する必要がある。そのコラボレーション基盤としてCLMはうってつけだ。IBM Rational CLM ソリューションは、要求管理(Rational Requirements Composer)、構成・変更管理(Rational Team Concert)、品質管理(Rational Quality Manager)の3つの分野の管理システムを統合しており、ツール・インフラの壁をも越えることで次の図のような工程/職務をまたがった開発プロセスの実現が可能だ。すべて共通のユーザーインターフェースになっており、同じ操作感で色々な作業が行える。
開発チームの生産性目標を達成する5の行動規範を実践
IBM Rational CLM ソリューションにより、ALMの効果を最大化して生産性を高めることが可能となる。IBMでは多くのプロジェクト経験から導き出した5つの行動規範の実践を合わせて提唱している。チームの生産性を具体的な目標として設定し、それを達成するために行うべき規範として分類したものだ。
またIBMはCLMを開発すると同時に、ライフサイクル管理を実現効率的に実践するための行動規範を、多くのプロジェクト経験によって導き出している。それは以下の5つだ。
として以下の5つを掲げ、それぞれで達成すべき目標を定めている。
1. 開発のリードタイムを短縮するために「リアルタイムにプランニング」する
2. 品質を向上するために「ライフサイクルでのトレーサビリティー」を活用する
3. ソフトウェア価値を最大化するために「コンテキストに応じてコラボレーション」する
4. 状況の予測精度を向上するために「開発インテリジェンス」を適用する
5. ムダなコストを低減するために「継続的な改善」を実施する
熱海氏は「『5つの行動規範』というと想像しにくいかもしれませんが、『生産性を高めるための心得、五箇条』といったニュアンスで理解していただくと分かり易いかもしれません」と補足する。またウォーターフォール型やアジャイル型といった開発プロセスの種類に依存しないことも重要だ。
本稿では各行動規範の詳細を説明することは割愛するが、具体的にどのようにコラボレーションによるライフサイクル管理を行っていくのか。CLMにおける管理の中心は「計画」であり、決められたマイルストーンごとの作業スコープを入力していく。熱海氏は「CLMの開発コンセプトの根本は、開発メンバーが自分に割り当てられている作業に必要な情報に、確実に到達可能にすることにある」と語る。
「ライフサイクルでのトレーサビリティー」を実践する一つの形が追跡可能性・ビューという表形式の画面で、要求にもとづく実装の作業、さらにテストケースの関係の確認が可能となっている。主に作業の抜け・漏れが無いことを把握するためのものであるが、加えて、前後の作業が把握できるため、作業指示が曖昧な場合であっても“正しい”成果物を作ることができる。結果として作業の質が向上する。
また作業内容の把握という点では、「コンテキストに応じたコラボレーション」の効果が大きい。要求や作業管理のアイテムに直接、ディスカッションする“場”が備わっているため、SNSのように関係者間で内容の確認を手軽に行える。そして残された履歴から経緯を理解し、的確な作業を実施できる。
CLMの活用を部分的に紹介したが、IBM社自身のソフトウェア製品開発で効果を確認したところでは、年4~6%の生産性を向上し続けることが可能と見込んでいる。またQCD視点で次の表とおり効果が期待される。熱海氏は「管理システムと行動が伴うことで開発チームの組織力、開発力を継続的に高め続けていくことができる」と語る。
CLMソリューションを実現した統合フレームワーク
IBM Rational CLM ソリューションはRational Requirements Composer(要求管理)、Rational Team Concert(構成・変更管理)、Rational Quality Manager(品質管理)の3つの製品がシームレスに統合することで可能となった。そのコラボレーション基盤にはIBMが開発したJazzプラットフォームが使われている。かつて開発ツールの統合プラットフォームとして Eclipse を作り上げたように、サーバーサイドの統合プラットフォームを実現した。
異なるベンダー間の製品を連携するに n 対 n の複雑な関係になる言わばスター型であるが、IBMが Jazzプラットフォームで目指しているのは、ハブ・スポーク型でのスマートなライフサイクル管理の統合である。(下図)
Jazzプラットフォームを中心にすることのメリットは、あらゆる成果物や情報のリポジトリー、さらにはユーザーの管理を集中化できる点にある。担当者は管理システムの隔たりを意識することなく作業に集中できる。要素技術には Web を採用しており、主にWebブラウザーからアクセスする。前ページの「追跡可能性・ビュー」の画面は、列ごとにリンク先のシステムが異なっているが、画面を切り替えたりログインし直したりすることなく情報にアクセスできることの手軽さは魅力的だ。
異なるベンダー間の製品を統合するにはデータの違いやAPIの実装技術の違いなどのハードルがあるものだが、Open Services for Lifecycle Collaboration(OSLC)という標準化団体で管理データのスキーマとAPIの標準仕様化を進めている。要素技術は XLM とREST APIを使うことが決まっており汎用性が高い。IBMは発起人の一社として仕様策定の活動を行っている。まさにここで決まった仕様を実装したものがJazzプラットフォームなのである。
以上のように、IBM Rational CLMソリューションは、ソフトウェア開発の生産性をコラボレーションにより向上することで、ビジネスにおけるITの貢献を高めることができる。さらにALMシステムを統合する開発プラットフォームとしては、オープンな仕様に則っており拡張性・柔軟性の面で将来性がある。より高い次元のソフトウェア開発を実現するプラットフォームとして、CLMが注目されている。
・関連リンク
・IBM Rationalソフトウェアに関して
http://www.ibm.com/software/jp/rational/
・IBM Rationalソフトウェアお問い合わせ
IBM ソフトウェア・ダイレクト 0120-550-210
受付時間:平日9時30分から17時30分まで(12時から13時を除く)
ROUTERTL@jp.ibm.com
・同時掲載のCodeZine記事『“アジャイル”の次へ:IBMの開発プロセス戦略の今(1)RUPはどこに消えたのか?』も併せてご参考ください。