アジャイル開発の原価管理(前編)
フロントローディング

2020年6月2日公開

ウォーターフォール開発が主流の時代にあっては、ソフトウェア開発の原価管理といえば、効率化、調達費用削減、手戻り防止などを主たる施策とするとともに、見積りの精度を高めることを狙ってきました。

しかしアジャイル開発が主流となるとともに、「アジャイル開発とは異なるプロセスであるウォーターフォール開発の原価管理方法をそのままアジャイル開発に適用できないのではないか?」という疑問も発生してきました。

ここではソフトウェア開発の原価管理について考察します。

ハードウェア製造業の原価管理

アジャイル開発、ウォーターフォール開発といったソフトウェア開発の原価管理の前に、まずはハードウェア製造業の原価管理についてみてみましょう。

原価管理の三本柱

原価管理というと、原価低減(=コストダウン)をイメージすることが多いと思われますが、ハードウェア製造業では、以下の3つを原価管理の3本柱と呼ぶことがあります。

・ 原価維持
・ 原価改善
・ 原価企画

  • 原価維持

    設定した目標原価を達成するための活動です。プロセスだけでなく、原材料費の維持も対象とし、その変動要因である購買ルートや為替の変動リスクへの対応もその範疇です。

  • 原価改善

    原価低減ともよばれます。改善によって過去の目標原価を上回るコストダウンを狙った活動のことです。原材料費だけではなく、労務費や流通コストなども対象とします。

  • 原価企画

    原価設計とも呼ばれます。企画設計段階いわば源流から「コスト」のみならず「納期」や「品質」もつくりこむ活動です。以下のような手法が代表的です。

    • VE/VA

      VE(Value Engineering:価値工学)、VA(Value Analysis:価値分析)
      より安価に、同じ効果を発揮する原材料や方法を採用することで、同一機能に対するコストを削減する方法です。

    • QFD

      QFD(Quality Function Deployment:品質機能展開)
      顧客要求と求められる品質特性との関連を明らかにし、品質特性を実現する機能、構造に展開することで製品仕様を設計する方法です。
      機能、構造ごとに目標原価を割り当てることで、顧客要求に基づいた品質と原価を企画設計段階でつくりこむことが可能になります。

    • コンカレントエンジニアリング

      異なる複数の部門が同時期に活動することで、品質向上と開発期間短縮を実現する方法です。
      自動車開発であれば、スタイリング、開発部門、生産技術部門など異なる複数部門が同時に活動することで、例えば

      ・ スタイリングが空力性能に及ぼす影響を開発部門が検知する。
      ・ 成型加工時の寸法安定性上の問題を生産技術部門が検知する。

      というように、問題を早期に検知します。これによって、後々発生するはずだった修正コストを(その発生要因もあわせて)解消するとともに、開発期間の短縮が可能となります。

原価維持や原価改善は、主に生産段階以降の原価管理を対象としていますが、原価企画では、製品のライフサイクル全般に関わる原価管理を対象としています。
なぜなら、ある工程における原価の発生要因はその工程よりも前の工程で決定されるためです。

ライフサイクルコスト

ライフサイクルコストという考え方があります。
製品やサービスの提供にかかるコストすべて、つまり設計・生産だけではなく、企画段階から、流通、廃棄に至る製品ライフサイクルにかかる全てのコストのことです。


・つくりやすいのか?
・運びやすいのか?
・捨てやすいのか?

これらは、企画設計段階で既に決定されています。

原価の発生要因、つくる上で、運ぶ上で、捨てる上でなど製品ライフサイクル全般に渡ってコストを発生させる要因のことをコストドライバーと呼びます。

先ほど例に挙げた成型加工時の寸法安定性は、生産時の歩留まりを悪化させコストを上昇させます。
寸法安定性は設計段階でつくりこまれるコストドライバーであり、生産工程でより多くのコストを発生させる要因です。


原価企画はライフサイクルコストの低減余地が大きい(=ライフサイクルコストが未決定な)早期の段階で、品質をつくりこむと同時にコストドライバーを見極め対策することで、ライフサイクルコストの最小化を狙います。

フロントローディング

フロントローディングとは文字どおり負荷の前倒しのことです。

原価企画では、製品の企画開発段階で不具合やコストドライバーを検知し、削減抑制することで品質をつくりこみ、ライフサイクルコストを下げ、製品リリースの時間を短縮することを狙います。ライフサイクルコストの低減余地が大きい、すなわちライフサイクルコストの決定がまだあまりなされていない時期での活動です。

製品ライフサイクルの初期段階つまりフロントに負荷がかかることから、フロントローディングと呼ばれます。


ライフサイクルコストの決定要因であるコストドライバーは、製品の企画開発段階でその大部分が決定されます。各技術や各工程を考慮し、多面的な視点に基づいたコンカレントエンジニアリングが必要であり、コンカレントエンジニアリングをより効果的に機能させるために、クロスファンクショナル(機能横断)チームやマトリクス組織が必要となります。そして最も重要なことは実際に試すということです。試作を重ね、多面的な視点に基づいて各分野の専門技術者たちが、同時に実際に本物で検証するということです。

もっとも、量産開始までの時間制限もあれば、ハードウェアであるため実際に試作するコスト(例えば金型製作にかかる多大な費用)の制限もあります。そのため効率的な検証のためにシミュレーションによる疑似的な検証も実施します。

フロントローディングは手法と考えられがちですが、現象と考えた方が妥当かもしれません。負荷の前倒し自体は手法ではなく、品質のつくりこみやコストドライバーの削減に必要な原価企画の活動によって負荷がフロントに移動する現象であるためです。

ソフトウェア開発の原価管理

さて、ソフトウェア開発ではどのような原価管理を実施しているのでしょうか。


最初に全てが計画されているウォーターフォール開発では、原価改善(原価低減)が重要な課題です。とくに作成請負契約によって受託したSIベンダーにとっては、売上価格が決定されているため、原価低減すなわちコストダウンによってのみ利益の確保が可能だからです。

以下の3つは、おもだったコストダウンの施策です。

・効率化 ~ プロセスやツール
・調達費用削減 ~ 外部調達、単能工の利用
・手戻り防止 ~ レビュー強化、チェックリストの利用

  • 効率化

    プロセスやツールによる効率化が代表的でしょう。
    プロセスの標準化/横展開、統合開発環境の利用やフレームワークの利用、インテグレーション/テストの自動化などによる効率化が代表的です。

  • 調達費用削減

    工程ごとの専門技術者(いわゆる単能工)が担当することで、教育コストを低減することが可能です。また、廉価な外部調達(外製化や派遣技術者の利用)によるコストダウンも代表的な施策です。

  • 手戻り防止

    工程ごとのレビュー強化や、レビューの際にチェックリストの利用による手戻り防止が代表的な施策です。

上記の内、「調達費用削減」と「手戻り防止」の2つは、工程ごとにドキュメントを作成し次工程への入力とするウォーターフォール開発ならではのコストダウン施策です。

手戻り防止

アラン・M・デイビスの著作『ソフトウェア開発201の鉄則』によれば、

・もし、要求仕様書に誤りがあれば、見つけるのが後になればなるほどとんでもなく高くつく。
・もし要求仕様書の誤りが設計まで残っていたら、それを見つけて修正するのに5倍のコストがかかる。
・もしコーディングまで残っていたら、10倍かかる。
・もしテスティングまで残っていたら、20倍かかる。
・もし納入時点まで残っていたら、200倍かかる。

と、あります。
上流でつくり込まれた不具合は、後工程になればなるほど修正・変更コストが急激に上昇するということです。


ウォーターフォール開発のフロントローディング

ウォーターフォール開発では、『フロントローディングによって手戻りを防止する』との主張をよくみかけます。

・入念にレビューする。
・静的解析を強化する。
・単体テストをしっかりやる。

などの方法です。

最初に全てを計画し、計画どおり直線的に工程を進めるウォーターフォール開発にとっては、確かにこれらの方法である程度の手戻りを防ぐことはできるでしょう。

しかしフロントローディングというには、大切なものが欠けていそうです。
そう、最も重要な、実際に試すということができないのです。

実際に試すことができるのは、インテグレーションしたその後です。

ハードウェア、OS、ネットワーク、データベース等のミドルウェア、外製パッケージソフトウェア、内製のソフトウェアコンポーネントなど、システムの構成要素すべてを統合し「本物を対象とした」End to End なテストでなければ品質をみることはできません。

構成要素それぞれについて、品質、機能、性能などを検証されていたとしても、実際に統合してみるまでは実際に試していることにはなりません。相互作用やボトルネックも判明しなければ、コストドライバーの特定も叶わないのです。

ウォーターフォール開発では原価企画的な活動は難しそうです。原価維持や原価改善を中心とした原価管理が限界であり、現実的であるといえそうです。

続いて、中編ではアジャイル開発の原価管理について考察します。

参考文献

  • Alan M. Davis (原著), 松原 友夫 (翻訳).『ソフトウェア開発201の鉄則』.1996-3-22.日経BP.ISBN-10:4822290026

  • 小川正樹.『実践原価企画―環境経営に対応した理想ライフサイクルコストの追求』.税務経理協会.2001/07. ISBN-10:4419037849

  • Ken Auer(原著),Roy Miller(原著),平鍋 健児(翻訳),遠藤 真奈美 (翻訳),高嶋 優子 (翻訳),山田 禎一 (翻訳).「XPエクストリーム・プログラミング適用編―ビジネスで勝つためのXP」.ピアソンエデュケーション. 2002/08,ISBN-10:4894715554

  • ケント・ベック,『XPエクストリーム・プログラミング入門―ソフトウェア開発の究極の手法』. ピアソンエデュケーション. 2000/12, ISBN-10:489471275X

  • ジェームズ・M・モーガン,ジェフリー・K・ライカー『トヨタ製品開発システム』.日経BP. 2007/2, ISBN-10:4822245705

  • 平鍋健児. An Agile Way『ソフトウェア開発とフロントローディング』.

    https://blogs.itmedia.co.jp/hiranabe/2008/01/post-3a7f.html

  • 吉田栄介.『原価企画能力―持続的競争優位をもたらす』.中央経済社.2003/02.ISBN-10:4502219800

   

執筆

  • 坂田 晶紀(さかた あきのり)

    株式会社富士通ソフトウェアテクノロジーズ Agile⁺開発センター
    ソフトウェア開発者、中小企業診断士(Registered Management Consultant)

    メインフレームOS、主にシステム資源最適化プログラムの開発に従事。
    その後、WEBアプリケーション開発業務に携わり、2002年からアジャイル開発を実践。
    アジャイルソフトウェア開発の品質管理、開発管理、組織マネジメントを中心に、約1,000の職場をコンサルティング。

   

テクノロジーコラム一覧

ページの先頭へ


前編 ライフサイクルコスト
前編 ライフサイクルコスト2
前編 フロントローディング1
前編 手戻り防止
前編 TOP