(5)テスト
テストは、開発した個々のプログラムが設計書どおりに稼働するかを確認する作業である。最小はプログラム単位のテスト(単体テスト)から、複数のプログラムを呼び出して単一機能を確認する連結テスト、業務単位での動作を確認するシステムテスト、利用者の操作性を中心としたユーザー受け入れテストなど複数のテストをこなす。テストを行う際には、テスト計画書やテスト仕様書を作成し、テストの目的や確認範囲を明確にしてからテストの実行に入る。また、事前に個々のテストケースの設定を行い、テストケースの入力を実施した結果がテストケースで確認すべき内容と一致しているかも確認する。情報システムの品質を高める作業である。
(6)稼働準備と導入
開発したプログラムを実際の本番環境で稼働させるためのシステム環境の設計やプログラム管理の仕組みを準備すること。データベースの変更を伴う場合には、その移行方法・手順と移行後の確認作業の手順を事前に定めておく。カッコよく例えると、NASAでスペースシャトルを打ち上げる準備そのものと似ているといってもよいだろう。
(7)システム運用・維持管理
開発した情報システムを本番に導入しただけでは終わらない。その後も安定的に稼働させるためのシステム運用を定常的に行う。主に、システムの運行を監視したり、システムのリソースを監視したりすることが中心である。また、開発したプログラムも、稼働後にさまざまな理由によって改修を行うことになる。この場合、対象は小さいが、(1)のシステム要件定義から同じ作業を行う。ただし、ドキュメントは新規に作成するのではなく、既存のドキュメントの修正、プログラムの修正を行うのみである。テストは新規と同程度実施し、システム全体の品質が低下しないように努める。
◇
コンピュータが世の中に登場した初期のころは、コンピュータ技術者が少なかったため、これらの工程をすべて同一の技術者が行っていたが、技術者の数が増えるにつれ、分業制が進み、現在では主に上流工程は大手のシステムインテグレータが担当し、下流工程は中小のソフトウェアハウスが担当するという構図になっている(図1)。
図1 ソフトウェア業界 業態別構造 |
よくソフトウェア業界が建設業界と似ているといわれるが、マンションやオフィスビルを建てる場合のゼネコンの役割が大手システムインテグレータであり、実際の建設作業や内装を行うサブコンや工務店の役割がソフトウェアハウスと考えると分かりやすいだろう。大きなリスクを取れるところが元請けとなり、下請けの企業は逆に限定的なリスクを取ればよいという中で共存関係が成り立っているのである。
最近では、より早く情報システムを構築するための手法として、小さなプログラムを少しずつ開発していくアジャイル開発という手法が注目を浴びているが、高い品質を要求される企業の情報システムの中では、まだ十分浸透・定着しているとはいえないのがソフトウェア業界の現実である。
先に大きなリスクを取れるところが元請けになると述べたが、その元請けが可能な企業においても得意分野が存在する。例えば、官公庁向けの情報システムを得意としている企業には、富士通やNECといった国産メーカー系企業が多く、業界インフラストラクチャの分野ではNTTデータが群を抜いている。金融機関向けの情報システムでは、メガバンクではそれぞれの銀行の情報子会社が元請けとなり、その情報子会社の下でソフトウェア業界の企業が、主に下流工程を担当している。証券業界では、共同利用型サービスを提供している野村総合研究所が有力な企業である(図2)。
図2 ソフトウェア業界 分野別メジャー企業 (補足)「業界インフラストラクチャ」とは、特定の業界共通で利用される基盤となる仕組みのこと。例えば官公庁におけるインフラは電子政府、金融業界ではクレジット決済のCAFISを指す。 |
一方、業務アプリケーションパッケージを提供している企業の中にも得意とする業界が存在する。代表的な製品としてSAPを見てみると、非金融系の企業には比較的満遍なく導入されている。製造業の中では製薬業界や化学系、非製造業では商社に多い。これらの共通項を考えてみると、グローバルに展開している企業、外資系の資本が入っている企業という特徴が見えてくる。
次回は、ソフトウェア業界で働く人たちの職種、キャリアパスについてお伝えする。
筆者プロフィール | ||
|
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。