鈍重な開発チームは鈍重なシステムを作る?/パート3:役割とポリシー(後編)The Rational Edge(2/4 ページ)

» 2007年11月20日 12時00分 公開
[Scott W. Ambler, Per Kroll,IBM]

統合ライフサイクル環境

 ソフトウェアの開発は、チームメンバー間の強力なコラボレーションに依存するが、時間帯や就業時間の違いによる一時的な分断や、異なる場所で開発が進められていることによる場所的な分断は頻繁に発生する。大規模な対話を管理する効率的なメカニズムが必要となるため、多数ある開発作業の規模によってはコラボレーションも困難になる。これに加え、管理監督が必要になるほか、規制当局に確実に準拠するために必要な経理も行うことになる。

 統合ライフサイクル環境は、上記を可能な限り低コストで実現し、すべてとはいわないまでも、大半のガバナンス手法に権限を与えるインフラを提供するために構築される。統合ライフサイクル環境で重要なコンポーネントには以下のようなものがある。

 ソフトウェアコンフィギュレーション管理(SCM)。大半のプロジェクトには数千の可動部品があり、それぞれが新バージョンの登場ごとに頻繁に進化している。そして、これらは理想的に1日数回は稼働中のアプリケーションに統合する必要がある。そのためには、密接に統合されたコンフィギュレーション管理、変更管理、そしてビルド管理機能が要求される。SCMは、統合ライフサイクル環境のバックボーンを構成している。

 デザインと構築。コードを効果的に開発するにはパワフルなIDEが必要になる。デザインとアーキテクチャの機能により、コードの複雑性を管理し、開発者テスト機能がコードの品質の高さを保証する。SCMとの密接な統合は、変更管理と頻繁なビルドの投入にとって極めて重大なものだ。

 テストと品質保証。アプリケーションがますますミッションクリティカルになると、信頼性、パフォーマンス、安定性、ユーザーエクスペリエンス、そして機能に関する品質改善の必要性も増す。機能およびパフォーマンスのテストツールは、まさにその実現を目指したものだ。SCMと自分のデザイン/構築環境との密接な統合に加え、運用環境の適切な品質特性を保証するため、テストと品質保証の環境が業務とシステム管理の環境に密接に統合されていることも極めて重大となる。

 プロセス、プロジェクト、そしてポートフォリオの管理。ライフサイクル環境の残りの部分に統合されるプロセスは、過去の経験から学ぶことを可能にし、一貫性の実現や、効率性と生産性の向上に役立つ。プロジェクトとポートフォリオの管理機能は、適切なプロジェクトへの投資、プロジェクトの適切な実施、そして効率的管理を保証するための適切な測定規準の提供が確実に行えるよう支援する。ライフサイクル環境との密接な統合は、オーバーヘッドを回避するため、測定規準の収集や分析などのありふれた作業が自動化された簡単なガバナンスを可能にする。このような管理スタイルには、コンプライアンスに必要なプロセスが開発プロセスにシームレスに統合され、必要なレポートも自動的に生成される「コンプライアンスの組み込み」(本シリーズのパート2「反復開発の『ここはぜひカバーしたいポイント』」で解説)も含まれる。

 業務と要件の分析:事業価値を付加するには、既存および目標とするビジネスプロセスをよく理解し、進化する要件に対する理解を共有したうえでアプリケーションを開発する必要がある。ライフサイクル環境との密接な統合は、今日の急速に進化するビジネス環境においては必然的に生じるものだ。

メリット

 優れたガバナンスソリューションは、開発されるものが費用効果の高い形で会社の戦略と確実に適合するよう価値を管理しなくてはならない。統合ライフサイクル環境は、ガバナンスに関して以下のように多数のメリットを提供する。

 ガバナンス手法の効率的インプリメンテーションの実現。統合ライフサイクル環境は、分散開発、コンプライアンス要件、そして大半の開発組織が直面する大規模開発などの複雑性を検討しているときを中心に、特定されたガバナンス手法のすべて、もしくはほとんどのインプリメンテーションを促進する。

 TCOの削減。統合ツール環境は、個々のツールを集めた場合よりもアップグレード、トレーニング、そして人の移動に関連する費用を削減し、サポートやライセンスの費用も削減することでTCOを引き下げる。

 コラボレーションの実現。特にチームが各地に分散したり、大規模な開発作業の一部に組み込まれると、効率的な開発にコラボレーションが大きな力を発揮するようになる。統合ライフサイクル環境は、これらの状況において効率的なコラボレーションを大幅に促進する。

 簡単なガバナンス。誰が何を変更したかといったありふれた日常業務や、品質およびコストといった測定規準の収集や分析を自動化することにより、一度適切な環境が確立されれば、統合ライフサイクル環境がガバナンスをかなり容易にしてくれる。

 手法の実現。説明したほかの多くの手法は、反復作業開発、シンプルで関連性のある測定規準、そして柔軟なアーキテクチャなどからなる統合ライフサイクル環境によって実現もしくは促進される。

トレードオフ

 統合ライフサイクル環境の導入には以下のような多数の代償が伴う。

 必要スキルのアップ。貧弱なポイントアプリケーション環境から統合ライフサイクル環境に移行するには、新しい環境に対応できる新たな人材への投資が必要になる。

 初期投資。ライフサイクル環境の獲得には初期投資も必要になる。

 継続的近代化。ツールは、古くなり、改善され、常に進化する技術に合わせてアップグレードが必要になる。統合ライフサイクル環境は多くの密接に統合されたアプリケーションで構成されているため、統合を絶対に破壊しないよう、どのツールをいつアップグレードするか慎重に監視する必要がある。これは、継続的にアップデートされるライフサイクル環境の提供ベンダにアップグレードの一貫性に関する問題を任せることで対応できる。

アンチパターン

 以下のようなアンチパターンを回避しなくてはならない。

 継ぎはぎだらけのツールセット。自社で構築するのは統合ツール環境なのか、それともアプリケーションなのか? ベンダは多額の資金を統合開発環境に投資し、かなりの資金がないと、「フリー」のオープンソースツールを利用しても、ソフトウェア業界のツールプロバイダが持つ専門知識には絶対にかなわないというリスクがある。

推奨デフォルト

 デフォルトではIBM Rationalソフトウェア開発プラットフォームを推奨する。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ