ARCHIVES
アーカイブス
アーカイブス

「ユーザー主導開発」の効果と取り組み方

日本のITを変えるユーザー主導開発 第2回


2009年09月15日
※内容は公開当時のものです

ウルシステムズは、企業の情報システム部門を強くする様々な取り組みを行っています。 世界経済の急激な変化に対応し、攻めのIT投資で成長を実現する方法として提唱しているのが、「ユーザー主導開発(ULSD)」です。「ユーザー主導開発(ULSD)」は、ユーザー企業自らがさらなるスキルを身に付け積極的に関与することで、無駄のない適正なコストでのシステム開発と人材育成が可能となる新しい考え方です。インタビュー第2回では、「ユーザー主導開発(ULSD)」の効果と取り組み方について代表取締役社長 漆原茂に聞きました。

実際にユーザー企業はどのように開発に関わるのでしょうか?

interviewee

一言でいうと、プロジェクト全体の計画立案や業務要件定義からはじまり、開発のPDCAサイクルを回す活動を開発ベンダーと一緒になって主体的に行います。もちろん、プログラミングやハードの設置のような「いわゆる作業」を行う必要はありません。プロジェクトの要所で必要なリーダシップを発揮することで、プロジェクトを正しい方向に導いていきます。

PDCA というのは、ご存じのように、計画(Plan) 、実行(Do)、評価(Check)、改善(Action)というサイクルを繰り返すことで目標を達成するというものです。実際、どんなプロジェクトも最 初に決められた緻密なスケジュール通りに整然と進んでいくものではありません。プロジェクトの進行と共に、様々な問題が発生して、計画からのずれが生じま す。そこを破綻させずに決められた予算と期日を守りながら調整していくことが発注側のもっとも重要な役割なのです。このPDCAを回すプロジェクトマネージャーの役割を、開発ベンダーにだけ求めていたのがシステム開発を非効率なものにしてきた原因なのです。これまでは、ユーザー企業側にプロジェクトマネージャーがいる場合も、定例会議に出て報告を受けるだけの存在でしかありませんでした。プロジェクトで起きている問題点を理解して、その解決のために知恵を絞り、 行動していくということが大切なのです。

実際、重要なポイントを押さえることで、専門的な管理手法を知らなくても、このPDCAサイクルを回すことはユーザ側にもできます。大きく3つのポイントをご紹介しましょう。1つは業務要件定義、2つ目はプロジェクトマネージメント、3つ目はアジャイル開発の実践です。いずれもユーザー主導開発には欠かせないエッセンスです。これらをベンダーに任せっきりにせず、自分達の仕事という意識で取り組むことが必要です。

例えば、業務部門から優先度の高い機能の追加を要求されたとしましょう。そのときに開発ベンダーにできることは、受け入れて追加費用を請求するか、その要求を断るかという二者択一しかありません。ところが、ユーザー側の情シスメンバーであれば、業務部門を説得し他の機能を使って解決するといった調整が可能になります。つまり、ユーザー側のプロジェクトマネージャーが主導的に動けば、PDCAの改善(Act)のための選択肢が増え、プロジェクト全体の課題解決の効率が上がるわけです。

ユーザ主導開発はどんな効果があるのでしょうか?

pdca

効果はずばりコストの削減です。丸投げで開発ベンダーにさせるよりもずっと短い期間で本当に必要なものを作ることが出来ます。

アジャイル開発というものを聞いたことがあるかも知れませんが、これはユーザー主導開発の典型例です。短期間での開発という意味でとらえられていることもあるようですが、それは本質ではありません。アジャイル開発の最も重要なポイントは、短期間でのくり返し開発によって、PDCAを素早く回すことで軌道修正しながら進めていくというところにあります。

ユーザーは短期間で部分的に構築したシステムを見て、本来必要な要件が揃っているかを確認します。その際に、機能が不十分であったということがわかれば、次のくり返しでその機能を追加するという具合に進んでいきます。ただし、そのまま機能追加だけを進めてしまうと要件は膨らんでいく一方です。そこで、機能を追加する場合には優先度の低い他の要件を削るといったことを行います。こうした要件の出し入れを行いながら短期間での開発を繰り返すことで、スケジュールと予算の範囲内で最高のシステムを作ることができるのです。

またお客様社内にノウハウを知的資産として残していけることも大きな効果の1つです。システムが更改されるたびに膨大な費用をかけて現状分析をやりなおしている事例をよく拝見します。一度検討した知識が社内に蓄えられていないからです。ユーザー主導開発では、社内にノウハウが残るため、ベンダーに依存しすぎず自分達で「その先」を描いていけます。

弊社でもたくさんのプロジェクトを支援してきましたが、いずれもお客様ご自身が深くプロジェクトに関わって下さっていることが大きな成功要因となっています。

具体的にどのくらいのコスト削減効果がありますか?

例えば、弊社が行った生産管理システムへの適用例では、システムの開発期間もコストも大幅に削減することができました。当初、開発ベンダーからの提案はパッケージをカスタマイズして構築するという案で10億円強、期間にして1年半という見積もりでした。これが、最終的には3億円程度、期間は7ヶ月ということで、それぞれ1/3にまですることができたのです。

生産管理はそれぞれの会社毎の個別事情が多いために、パッケージだとカスタマイズ個所が多くなりますし、使わない機能も多くなります。最初にすべての要件定義をしてしまおうとすると、半年やっても終わりません。現場の担当者に聞けばいろいろ希望を答えてくれますが、まだできていないシステムについての仕様なので、本当のところどんな機能が欲しいのかユーザ自身もよくわかっていない状態です。元の要件が曖昧である以上、ベンダーもどうして欲しいのかについて、明確に理解できているはずはありません。

この事例では、アジャイル開発を導入することにより、1ヶ月単位で要件定義と開発を行いシステムをリリースし、それをユーザに使ってもらってフィードバックをするということを繰り返してシステムを構築しました。この進め方にすると、業務部門が欲しいことが合っているのか、本当に欲しいのか、1か月後にすぐにわかります。そこで必要な修正を加えていくというPDCAを迅速に回すことができるようになったのです。

従来通りの丸投げの方式で開発を進めていれば、1年半後に出てきたシステムの機能のほとんどは使い物にならないことになっていたでしょう。そうなればかなりの規模の追加開発ということになっていたはずです。実際に利用するユーザが、開発に主体的に参画するユーザ主導型開発だからこの見えないコストを防ぐことができたのです。

アジャイル開発を例にしてお話しされましたが、ユーザー主導開発は通常のウォーターフォール型の開発でも有効なのですか?

もちろん有効です。ユーザ主導開発は、ユーザ側が開発プロジェクトのPDCAのサイクルを回すことに参画することで開発の効率を高める手法です。アジャイル開発では、要件全体が見切れず手探りで進めなければならないようなシステム構築には非常に効果的な方法ですが、そのようなシステムばかりではありません。要件の定義をしっかり行って進めていく従来のウォーターフォールで十分なシステムも多数あります。ウォーターフォール型であっても、ベンダーの開発作業がどう進んでいるのかを客観的にユーザ側で把握し、計画との違いを見つけ出して必要な手がすぐに打てるようにすることで、開発を効率的なものにしていくことが出来ます。

定常的にいくつもの開発を並列で行っているユーザ企業の場合には、自社の標準のフレームワークやツールを使ってベンダーに開発してもらうのが有効です。標準のツールを使ってもらうと、チェックがしやすくなりますし、何よりユーザ側にノウハウが蓄積されます。開発ベンダーは、自分たちの慣れたツールとプロセスで進めたいという主張をしますが、そうするとユーザ企業からは状況を把握しにくくなります。遅れているように見えるが、自分たちの経験では大丈夫だといった、ベンダー側の言い訳の温床になります。

もっと問題なのは、そうして導入したツールのせいで、その後の開発がベンダー固有のソフトウェアでロックインされてしまうことが起こります。企業内で行われている開発が、複数の開発ベンダーを主体に行った結果、似たようなフレームワークがたくさんあって、それぞれ継続開発は他に頼めないという状況になっていたりします。こうなってしまうと、企業インフラの維持だけで、膨大な見えないコストが発生し続けることになります。このあたりは、経営トップにも気がつかないうちに進行しているので気を付けた方が良いですね。

大がかりではなく、手軽にユーザー主導開発を始めることはできますか?

ユーザ主導開発の基本は手軽で簡単です。プロジェクト計画書を作って開発ベンダーとの進め方の取り決めを規定します。これだけです。

最初にプロジェクト計画書を提出させ、それに従ってプロジェクト管理を行うということをしっかりお互いに決めて進めます。ユーザ側がPDCAを把握して、口を挟めるように最初に取り決めをしてしまうわけです。アジャイル開発でも社内標準化の場合もこの基本は必ず押さえる必要がありますが、ここまでやるだけでも、後の進み方は全く変わります。

アーカイブス一覧へ