旧態依然とした開発現場では、成果物の作成と作業の管理に多くのムダな時間をかけている。本当に必要な成果物は、利用するソフトウエアだけと割り切り、その他の成果物はムダに作成しない。アジャイル開発のプラクティスを参考に効率的な開発の方法を紹介する。

今回のポイント
  • ウォーターフォール型の開発は、成果物の大量作成、仕様の伝達など、管理と作業にムダが多い。
  • 成果物の量を減らす、伝達のムダを減らす、ムダに細かく非効率な管理をしない、自動化でスピードアップする、といったことを重視する。
  • 開発を効率化するには、アジャイルソフトウエア開発宣言の価値と、「少人数チーム」「チケット管理」「テスト駆動開発」「継続的インテグレーション」というプラクティスを利用する。

 本連載は、ウォーターフォール型の開発プロセスにアジャイル開発のプラクティスを部分的に組み込み、プロジェクトに潜む様々なムダを排除する「ハイブリッドアジャイル」を提案している。今回は、システムエンジニアの立場からソフトウエア開発の効率を上げる方法について解説する。

 開発の効率を上げるためには、アジャイルソフトウエア開発宣言にある4つの価値のうち、「プロセスやツールよりも個人との対話を価値とする」「包括的なドキュメントよりも動くソフトウエアを価値とする」という2つの価値を特に意識しておきたい。これらの価値をどのように実現するのかを見ていこう。

ウォーターフォール型の開発は非効率

 ウォーターフォール型の開発では、ムダな時間が生じてしまう。主なものには、(1)過剰なドキュメントの作成時間、(2)次工程への伝達時間、(3)非効率な管理時間、(4)手作業による非効率な作業時間、といったムダが挙げられる(図1)。

図1●ウォーターフォール型の開発のムダ
[画像のクリックで拡大表示]

 (1)の過剰なドキュメントの作成時間から説明する。ウォーターフォール型の開発では、上流工程から下流工程に仕様が伝達される。しかも伝達方法は、ドキュメントをベースにすることが多い。

 このように工程ごとの成果物としてドキュメントを作成する場合は、多くのムダが生じる。例えば、ドキュメントの重複だ。前工程で作成したドキュメントと重複する記載が後工程のドキュメントにあったりする。さらに、会社の開発標準に合わせるという理由で、特に必要のないドキュメントまで作成している場合もある。

 ドキュメントを残しておき、将来のエンハンスに役立てるという意見もあるだろう。ところが、エンハンスごとにドキュメントを修正するのは大きな手間になる。例えば、度重なるエンハンスによってドキュメントの修正が追いつかないといったことが挙げられる。このような事態に陥ると、プログラムと設計書に差が生じてしまう。結局、状況を把握するにはドキュメントではなくソースコードを見なければならないわけだ。これでは、ドキュメントを残した意味がなくなる。

 また、エンハンスの際に十分な予算が確保できず、設計書の修正を省いてしまうことも考えられる。一度、修正を省いてしまうと、その後の設計書の信頼性は失われる。信頼できない設計書が残ってしまえば、設計書と実際のプログラムとの一致調査が必要だ。これは、エンハンス時のムダな作業時間につながる。

 続いて、(2)の次工程への伝達時間を説明する。これまでの連載でも説明したが、伝達のムダはウォーターフォール型の開発現場でよく見られる。ウォーターフォール型の開発では、工程ごとに担当者が異なる場合が多い。そのため、設計担当者からプログラマに設計仕様を伝達する時間やプログラマが設計仕様を理解するための時間が発生する。これらの時間はムダだ。

 (3)の非効率な管理時間の典型例は、開発者個人の進捗を管理している場合だ。管理することは構わない。ムダな時間を生み出すのは、ガントチャートなどを使って個人単位の進捗を細かく管理しているような開発現場である。

 進捗管理者は、開発者を細かく管理して管理力の高さに自己満足しているかもしれない。しかし、筆者にはこのような個々の管理はムダな作業にしか見えない。すぐに崩れる計画を毎日再スケジュールすることになりかねないからだ。

 (4)の手作業による非効率な作業時間は、自動化すればよい処理をわざわざ手作業で行っている場合が挙げられる。例えば、テストの作業だ。仕様変更やエンハンスが発生した場合のデグレードテストを手作業で行えば、それだけムダな時間が発生してしまう。

この先は有料会員の登録が必要です。「日経SYSTEMS」定期購読者もログインしてお読みいただけます。今なら有料会員(月額プラン)が2020年1月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら