プロジェクト座談会
入社年次や担当業務が異なる3名のエンジニアに、プロジェクトの業務フローを説明していただきつつ、仕事のやりがい、魅力、醍醐味などをアピールしてもらいました。
現在担当しているプロジェクト例:某製造系メーカーの場合
プラスチックフィルムなど、軟包装の製造販売をしている企業の基幹システムの構築から保守・運用まで、プロジェクトの全工程を担当している。
Phase 1 要件定義 |
お客様の要望を伺い、「何を、どうやって、いつまでに作ればよいか?」を明確にします。 |
---|---|
Phase 2 機能の明確化 |
具体的に「どのような機能があればいいか」をディスカッションしていきます。 |
Phase 3 詳細設計 |
必要な人数・日数・費用を算出した後、お客様の要求を満たすシステムの具現化・設計を行います。 |
Phase 4 開発・ プログラミング |
設計段階で作った仕様書をもとに、CやJavaといった言語を用いてプログラムを行います。 |
Phase 5 試験・テスト |
プログラムを仕上げるための試験計画を立て、単体・結合・システムテストを実施します。 |
Phase 6 納 品 |
完成したシステムをお客様に納品し、レクチャーした後に実際に利用していただきます。 |
Phase 7 運用・保守 |
納品したシステムのトラブル対応やシステム改定など、運用・保守管理を行います。 |
Phase 1 要件定義:お客様の要望内容に対する要件定義(ヒアリング)
AK
システム開発は「要件定義」からスタートします。「お客様がやりたいこと」の詳細を把握し、私たちのリソースを活用してシステムに落としこんでいく、その道筋を組み立てる段階です。
HM
お客様との取引では、同時にいくつものプロジェクトが動いていますが、いずれもこのフェーズでの認識を誤ると後々になって生じるロスが大きくなってしまいます。そういう意味でヒアリングはとても重要ですよね。
SO
お客様がシステムを通じて実現したいこと、現在抱えている業務上の課題の「詳細」と「漠然としたイメージ」を伺い、私たちの頭の中で消化して、組み合わせることで、やっとシステム開発の一歩目が踏み出せるのです。
Phase 2 機能の明確化:要件を実現するためのシステム的な機能を明確化
AK
お客様から要件定義(ヒアリング)した内容について、「要件定義書」というアウトプットを作るのが次の段階。案件規模の大小によってそのレベルや関わる人員、工数は変わってくるけど、まずは打ち合わせを経て、決まった機能において“何ができるか”を明確にしていきます。そこで具体的にどのようなシステムを組むかが決まっていくのです。
SO
お客様の業務で、“システムでやる部分”と“そうでない部分”を明らかにすることで、必要または不必要な機能を決めていきます。もちろん要員のかけかたにもよってスケジュールも変わってくるし、長いプロジェクトだと1年間ぐらいかかる場合もあります。
Phase 3 詳細設計:作業性の高いインターフェースや処理内容の設計
HM
次のフェーズでは、要件をもとにシステムの流れやデータ項目を設計し、データベースやプログラムの仕様を構築していきます。ここでは一つ一つの機能に対して、視認性が高く使いやすい画面構造や一括処理・バッチ処理についてどのようなインプット・アウトプットにしていくかを噛み砕いて決めていきます。
AK
ここまでで大切なのが「調査」。お客様の要望を実現することが可能かどうか、設計業務やこの後、開発を進めるにあたってミスや漏れがないかをその都度調べていきます。システムは単独では動かないので、後々の工程の簡略化・効率化につなげるためにも、事前調査はとても重要です。
Phase 4 開発・プログラミング:設計した処理内容に基づき、プログラムを作成
HM
設計段階で作成した仕様書をもとに、CやJavaといった言語を使ってプログラムを組んでいきます。建築でいうと実際の家造りの段階ですね。時間をかけて計画、設計された事柄を、プログラムとして装備していくという意味から「実装」とも呼ばれるフェーズです。
SO
要件定義や基本・詳細設計がしっかりできていれば、そこまで難易度の高い業務ではありませんので、新入社員や年次の浅い社員はプログラム開発業務からキャリアをスタートさせることが多いと思います。手がける分野によって使用する言語は異なりますし、それぞれ習得するための難易度も異なりますので、ここは焦らず、じっくりとプログラミングスキルを身に付けるフェーズでもあります。
Phase 5 試験・テスト:機能単体・機能間の連携を鑑みたプログラムテスト
AK
「試験・テスト」では、設計段階や要求分析用のドキュメントを確認し、欠陥やミスの有無を確認します。システムを構成するモジュールの「単体テスト」、機能同士のつながりやモジュールを連携させて動かす「結合テスト」、本番に近いテスト環境を作り、構築したシステム全体の動きを確認する「システムテスト」など、視点を変えて細かくチェックしていきます。ここで発見されたバグは、要件、設計、開発段階のどこに原因があったかを追求し、修正を行います。
SO
テスト項目については、プロジェクトがスタートする前にテスト計画書を作って明確化しています。また、メンバー間のコンセンサスを取り、どのフェーズでどういったテストを行うかを周知した上でプログラミングに入ることもあります。
Phase 6 納品:完成したシステムをお客様に納品
HM
テストを繰り返し、最終的な受け入れテストを実施した後に本番環境に移行します。晴れて「納品」になります。私たちシステムエンジニアが本当にうれしいのは、納品した後に、お客様からいただく「便利になった!」「お願いしてよかった!」という感謝の言葉ですね。
SO
そうだね。でも、納品・稼働したことがゴールではなく、“お客様の課題を解決したソリューションとなっているかどうか”が一番大切。ご満足いただいた結果、お客様のビジネスが成長・発展する姿を目の当たりにし、世の中に役立つものづくりをできたという達成感が、また“次”のプロジェクトに向かう原動力になります。
Phase 7 運用・保守:システムトレーニングや運用・保守などのアフターフォロー
HM
システム納入後には運用・保守管理業務が発生します。お客様がシステムを使いこなせるようにサポートを行ったり、テスト段階で検出できなかったバグなどを修正していきます。
SO
納品後にお客様の要求が変わることもありますので、システムのバージョンアップなどを行うこともありますね。
AK
システムの変更や修正といった運用・保守管理は、長期間にわたる場合がほとんどなので、企業担当者(情報システム部門)にとって私たちのサポートがとても大切。だから、お客様のニーズをしっかり把握し、的確に対応する力やコンサルテーション力が重要になるのです。
先輩からのメッセージ
AK/当社で働くメリットとしては“多彩な分野のプロジェクトに携われる”点になります。これから社会人になるという人に「今後」を決めることは難しいでしょうし、暮らしや仕事の多様性が顕著な昨今であればなおさらです。そこでまずは広い視野を持ち、好奇心や探究心、向上心さえれば必ず自分の「今後」が見えてくる環境ですよ。だんだんと近づいてくるその「今後」を見据えて、それぞれの強みを引き出しつつ、100%の力を発揮できるようにサポートしていくのが現在の私の目標です。
HM/私の入社動機は「自分の手がけたもので社会貢献がしたい」という点にありました。文系学部を卒業し、システムに関する知識は皆無。それでも私たちが暮らす世の中を支えるこの仕事が本当に面白いと感じて、いまに至ります。これまで多くの先輩方のお世話になってきました。迷惑もたくさんかけたと思います。でも、一人として後輩社員を見捨てる先輩はいません。ちょっと無理かなというチャレンジをさせてもらい、たとえ完遂することができなかったとしても、見放すことなく背中を支えてくれる会社です。
SO/向上心を触発してくれる会社ですね。自主的な取り組みではあるのですが、お客様先で会計システムを手がけていたときは簿記資格、金融系のプロジェクトではフィナンシャルプランナーの資格を取得するなど、将来を見据えた行動を後押ししてくれます。「様々な業界の裏側をシステム面で支えたい」という入社動機をそのままに、お客様の業種や業務内容を問わず独立系SIerとして“自由”に仕事をさせてもらったことで、多くの経験を得ることができました。エンジニアとしての価値を高めるのには最高の環境だと思います。