初心者の方などは、システム開発ではどういうことをするのかが分からない人も多くいます。
漠然とプログラムを作ることでしょ?と想像する人もいるでしょう。
そこで、ここでは、システム開発ではどういうことをするのかを中心にお話をしていきます。
システム開発の工程とは?
システム開発とはそもそも何なのか?については、以下の記事を参照してください。本質を書いています。
では、システム開発では具体的に何をするのか?です。
システム開発の目的がユーザーの要望を果たすためということをまずは理解してください。
ユーザーのニーズといってもよいでしょう。
ユーザーが困っていることや悩み苦しみをなんとかしたいという思いがシステム開発の出発点です。
その思いなくしてシステム開発はありえないのです。
そこで、このなんとかしたいという思いに対して、われわれSE・プログラマーがコンピューター技術でシステムを作りことで、なんとかしてあげるということです。
そして、ここが重要ですが、作ったシステムを気に入ってくれたなら、満足してもらえたなら、そのシステム開発は本当の意味で「成功」なのです。
その満足の中には、当然、「間違いがなく」、「予算内で」、「期限内に」終わらせられたということが前提となるのです。
これらはシステム開発全体を通して貫かれる、満足を提供するための前提条件だと覚えてください。
専門的にいうと、「QCD」と呼ばれます。
- Quality(品質)・・・間違いがなく
- Cost(予算) ・・・予算内で
- Delivery(納期)・・・期限内に
これはユーザーの立場にたてば当然のことだということが理解できると思います。
まず、間違いだらけのシステムなんて誰も使いません。いくら予算内で納期に間に合おうとも、一生使われないことでしょう。
ましてや、損害賠償を求められるかもしれません。当然、瑕疵担保というものがあるので、無償で直すことになります。
誰が得しますか?
他の予算や期限についても同様です。
いくら要望通りのシステムを作るためとはいえ、当初の予算を大幅に上回るのであれば、そのユーザーは、別の方法を考えるかもしれません。
あるいは、そのシステム自体諦めるかもしれません。それが開発途中で後戻りできない状態でもっとお金がかかるんですと請求されても、怒りしか生まれないのではないでしょうか?「もっと早く言えよ!」と。
約束した期限に間に合わない場合も怒りを買うことになります。
このように、システム開発において、特に意識をしなければいけないのは、ユーザーの要望を実現させるためには、QCDを土台におかなければならないということです。
そして、その土台をしっかりと守り管理する役割を担うのが「プロジェクトマネージャー」なのです。
体で言えば、血液のような役割をするのが、QCDとも言えるでしょう。それを管理するのですからホームドクター的な役割がプロジェクトマネージャーと言えます。
この土台のもと、ユーザーの要望を実現させるために段階を踏みながら仕上げていきます。この段階のことを「工程」と呼ぶのです。
システム開発の工程にはどういうものがあるのか?
ユーザーの要望を実現させるための段階を「工程」と呼ぶと説明しました。
では、具体的にどういうものがあるのでしょうか?
現場によって多少呼び方が異なる場合がありますが、概ねこのような工程があります。
- 要件定義
- 外部設計
- 内部設計
- 製造(実装やプログラミング、コーディングという場合もあり)
- 単体テスト
- 結合テスト
- 総合テスト
- 受入テスト
- 納品(リリース)
- 運用・保守
そして、特に重要な工程は、一番目の「要件定義」です。
この工程で、ユーザーの要望をしっかりと理解し、どのように実現していくのかを突き詰めていく工程になるからです。この工程がしっかりできていないと、後工程の外部設計以降、全てに影響してしまうからです。
このイメージを図に表すと以下のようなイメージなります。
黄色のユーザーの要望が一番下に存在し、全てを包み込んでいます。
つまり、この黄色の中から外れたら、ユーザーの要望を満たすことができないのです。結局は、失敗することになるのです。
上記の図のイメージをしっかり覚えてください。
土台として、ユーザーの要望は全てに浸透しているのです。例えばプログラミングしていても、ユーザーの要望を満たすためがないといけません。
そして、ユーザーの要望の上に、「QCD」が存在します。
ユーザーの要望を実現させるために貫かれる血液の役割として、これも全てに浸透しています。
これらが下でがっちり支えられている状態で、要件定義からの作業を行わなければいけません。
どの工程においても、土台からはみ出した時点でそのプロジェクトはシステム開発は失敗すると思ってください。
要件定義から上に積み上げていくイメージで各工程が進んでいきます。赤が重要工程となります。それは、一番ユーザーと意識を合わせる機会が多いからです。
色が薄くなるほど、重要度は低くなります。
製造、単体テストが一番重要度が低くなっています。
理由は、この工程は、極論すれば、自動化できる工程だからです。つまり、人以外でもできる工程ということです。しかし、まだ完全に自動化というのは難しいため、プログラミングは人が行っています。
いずれ、システム開発の最適化が進めば、最初に効率化を求められる工程であるということは覚えておくとよいでしょう。
各工程の詳細については、こちらの記事をご参照ください。
カテゴリ:システム開発の本質