システムの開発効率は、開発するシステムの規模が大きくなるほど低下するといわれています。では、システム開発において、開発工程を効率化し、生産性を向上するにはどうしたらよいのでしょうか。
作成・管理ツールを使用して生産性を向上する
もちろん開発要員の技術力によって左右されますが、一人の人間が一日に設計や開発、テストなどの作業を行える量というものはある程度決まっており、それらを劇的に向上させる方法は存在しません。
そこで、従来は人が行っていた作業の内、自動化できるものをツール化することで開発要員の負担を軽減し、生産性を向上させることができます。
また、プロジェクト内の成果物の作成・管理を共通のツールで行うことで、情報共有や成果物管理などの効率化も期待する事ができます。
テストツール導入で動作確認を効率化
システム開発におけるテスト工程では、開発したソフトウェアの実行や、ソースコードの検証を行い、システムが期待した通りの動作をするか確認します。テスト工程は、バグの検出などシステムの品質を担保する上で非常に重要です。
高い品質を求めるためには、膨大なテストケースを想定し、単調で地道な繰り返し作業が必要となります。そのため、テスト工程は開発全体の中でも非常に多くの作業工数を占めることになります。そこで、テストツールの導入によるテストの自動化は開発全体からみても、効果の高い効率化方法といえるでしょう。
また、テストツールを使うことで、人が発見できなかったテスト項目の重複や漏れなどを検出できるため、テスト自体の精度の向上も期待できますし、テスト実行の際の人的ミスを排除するといった効果も期待できます。
その他効率化の方法
システム開発を効率化する方法としては、主に以下のようなものが挙げられます。
・生産性を阻害する要素(無駄)の排除
物や情報が必要な時に届かず作業が停滞してしまったり、前工程における遅延によって後工程の作業が行えないなどの「停滞の無駄」、本来必要ないはずの成果物の作成や、過剰な品質追求などの「作業の無駄」、成果物や、過去の情報などが適切に管理されていないために発生する「探す時間の無駄」、人的リソースや物資運搬などの移動時間に費やす「移動の無駄」。
各工程を分析し、これらの無駄な要素を排除することで開発工程全体に潜む無駄な工数を削減し、効率化することができます。
・開発手法、環境、ツールなどの整備
プロジェクトに応じて、最適な開発手法、環境、ツールを使用することで効率化が図れます。
・再利用による生産性の向上
過去に開発したソフトウェアを部品化して再利用することにより、プログラミング作業を減らし、開発工程を効率化できます。
・プロジェクト要員のスキル、経験の向上
プロジェクト要員自体の能力自体が生産性に直接影響を与える他、プロジェクト要員間の能力の差が大きい事によって生産性が低下する可能性もあります。
実現方法としては、①教育などにより成長を促す方法、と②スキル、経験の高い人員の再配置、という二つの方法があります。