PR

旧態依然とした業務システムの開発現場では、チームの生産性もメンバーの士気も低い。事態を打開するには、開発プロセスの改革が欠かせない。アジャイル開発のプラクティスを参考に、開発プロセスを改革する方法を紹介する。

今回のポイント
  • ウォーターフォール開発で非効率な部分に悩む現場は、ぜひ開発プロセスの改革に取り組むべきだ。

  • 開発プロセス改革の本質はムダを排除することである。

  • アジャイル開発の具体的技法であるプラクティスはウォーターフォールの現場でも役立つものが多い。

 IoT(インターネット・オブ・シングズ)や人工知能(AI)といった技術が盛り上がりを見せ、ITエンジニアの活躍の場が広がっている。新しい技術に触れ、サービスを提供する現場にいるITエンジニアは総じて士気が高い。開発プロセスにも新しい工夫を次々と取り入れていて、高い生産性を実現している。

 一方で、企業情報システムの開発の現場はどうか。こちらの開発プロセスは依然としてウォーターフォール型が主流だ。開発効率の悪さなどに悩み、生産性や士気が停滞しているケースが散見される。

 ウォーターフォール型の開発プロジェクトでよく発生する問題は4点挙げられる。(1)開発コストが膨れ上がる、(2)開発に直結しない作業に時間を取られる、(3)手戻りによる工数が大きい、(4)指示待ちメンバーだらけになる、である(図1)。

図1●ウォーターフォール開発で発生しがちな問題
図1●ウォーターフォール開発で発生しがちな問題
[画像のクリックで拡大表示]

 (1)は、要件の変更や追加が多いときや、開発規模の見積もりの精度が悪いときに起こりやすい。(2)は開発に必須ではないドキュメントの作成などを指す。こうした作業に時間がかかると、しわ寄せが後の工程に及び、プロジェクト全体が遅延する。(3)は開発の終盤に要件の変更や仕様のずれなどが判明したケースに典型的だ。(4)の指示待ちは、計画を重視して開発を進める副作用で、メンバーが自律的に動けない状態を指す。

 これらの問題を克服するため、開発プロセスを改革したいと考えるITエンジニアは多い。ところが、具体的に何をどう改革したらよいのかが分からず、結局は生産性も士気も上がらない従来通りの開発プロセスを続けてしまいがちだ。

 改善を諦めてしまえば、あなたやあなたのチームは確実に置いていかれる。ほかの現場との差は開くばかりだ。そこで本連載は、「開発プロセスを改革したいが、どうしたらよいのか分からない」と悩むITエンジニアに実践方法を紹介していく。

ムダの排除を追究しよう

 まずは開発プロセス改革の基本的な考え方を紹介しよう。そもそも、開発プロセス改革とは何だろうか。一言で言うなら、ムダをなくすことだ。

 先に挙げたウォーターフォール型でありがちな4点の問題も、全てムダと捉えられる。例えば(1)の開発コストが膨れ上がる直接的な原因は要件の変更や追加だ。では、なぜ変更や追加が発生したのかといえば、本来開発すべき要件とは別のもの、つまりムダなものを作っていたからだ。

 同様に(2)はムダな作業に時間を取られている状況であり、(3)の手戻りはそれまでの作業がムダになったことを意味する。(4)の指示待ちメンバーばかりの状態は、指示がなければメンバーは何もしないので、人的リソースがムダになっている。従って、現場に潜むムダをいかに発見し、効果的に取り除くかが、開発プロセス改革の本質である。

 では、ムダを取り除くにはどうすればよいだろうか。この点については先人たちが様々な手法を考案し、実践し、知恵に昇華してきた。現在までの経緯を簡単に整理しておく。

 システム開発の現場に先行してムダの排除に力を入れていたのは製造業だ。トヨタ自動車など日本の製造業の現場における生産方式を米国の研究者が研究し、「リーン生産方式」と名付けて体系化した。作業者が意識しなくても問題が目に入る状態を作る「見える化」や、必要なものを必要なときに必要量だけ生産する「ジャスト・イン・タイム(JIT)」などの手法とともに知られる。リーンには、「ムダがない」「ぜい肉がなく引き締まった体」といった意味がある。

 このリーン生産方式は多くの製造業に広まっただけでなく、システム開発の現場にも大きな影響を与えた。例えばメアリー・ポッペンディーク、トム・ポッペンディークの両氏は、リーン生産方式をシステム開発に応用するための考え方を整理し、「リーンソフトウエア開発」を提唱した。

 リーンソフトウエア開発は、7つの原則を掲げる。(1)ムダをなくす、(2)知識を作り出す(学習効果を高める)、(3)決定をできるだけ遅らせる、(4)できるだけ早く提供する、(5)人を尊重する(チームに権限を与える)、(6)品質(統一性)を作り込む、(7)全体を最適化する、である(表1)。これらの7原則は、開発プロセス改革にとっての重要な着眼点である。

表1●リーンソフトウエア開発の7つの原則と22のツール
出所:メアリー・ポッペンディーク、トム・ポッペンディーク 著「Lean Software Development: An Agile Toolkit(邦題:リーンソフトウエア開発~アジャイル開発を実践する22の方法~)」
表1●リーンソフトウエア開発の7つの原則と22のツール
[画像のクリックで拡大表示]

 また、リーンソフトウエア開発では7つの原則と対応付ける形で、22のツールを紹介している。アジャイル開発を多少なりとも調べたITエンジニアであれば、いくつか見慣れたものもがあることに気付くだろう。「イテレーション」「リファクタリング」などだ。

 そう、アジャイル開発で提唱されている手法は、リーンソフトウエア開発の7原則と22のツールを基に、具体的な開発手法として定義したものといえる。アジャイル開発には、開発現場のムダを排除するための具体的な知恵や技法が凝縮されているわけだ(図2)。アジャイル開発を理解することは、開発プロセス改革への近道である。

図2●ムダを取り除くための考え方、手法、具体的技法
図2●ムダを取り除くための考え方、手法、具体的技法
[画像のクリックで拡大表示]