仕事紹介 | 株式会社ユニスティ
- 採用情報トップ
- 仕事紹介
仕事紹介
プロジェクト進行とエンジニアの役割を紹介
ソフトウェア開発のプロジェクトを進めるにはいろいろな手法がありますが、基本は、事前に設定した工程をクリアすることでスケジュールを進めます。ここでは一般的なプロジェクトの流れを理解していただくために、代表的な工程の内容と、ユニスティのエンジニアがどのように関わっているのかについて紹介していきます。
計画
まずはクライアント企業が、どのような目的で新しいシステム(業務ソフトウェアやインフラ)の導入を考えているのかをヒアリングし、実際の状況に照らし合わせて現状課題を抽出します。そしてどれだけのスケジュールとコストで課題を解決に導けるのかを算出し、プロジェクトのグランドデザインを行います。ITコンサルタントや経験豊富なIT営業が担当します。
要件定義
要件定義とはユーザの要望や課題をさらに細かく調査・分析して、ITによって実現すべき機能を明確化していくことです。具体的には、ユーザの求める成果を出すためにソフトウェアで実現すべき内容を整理し、どのような構成でどのような技術でその内容を実現するかを検討・提案・定義していく作業です。
このフェーズで的確な作業を行わないと、後の工程でどれだけ品質の高い作業を行ったとしても、出来上がったシステムは使いにくいもの、あるいは導入効果の薄いものになってしまいます。そこで、このフェーズはクライアントの業務知識と開発経験が豊富なSEが担当することがほとんどです。
設計(基本設計・詳細設計)
要件定義で定義した業務内容を実現するシステムの構成を把握し、開発するソフトウェアの仕様をどのようにプログラミングしていくかをまとめていく作業です。尚、ソフトウェア全体の構成を設定することを基本設計、そこから切り出されたひとつひとつの機能単位の仕様をプログラムの構造にまで落としていく作業を詳細設計と呼びます。ここまでが上流工程と呼ばれます。SEとしての力量が問われるフェーズです。
開発
仕様書(設計書)に従い、プログラミングしていく工程です。プログラミングとは、事前に決められたプログラミング言語を用いてソースコードを書いていく作業(コーディング)です。CやC++、Javaなどが代表的なプログラミング言語です。さらに出来上がったプログラムが設計書通り動くかをテスト(デバッグ)し、バグ(プログラムミス)があれば修正していきます。より正確に、読みやすく、メンテナンスしやすいプログラムを書けるプログラマが優秀とされます。
試験(結合試験・総合試験)
開発工程で作成した機能毎のプログラムを結合し、システム全体として仕様通り正しく動くかどうかをテストするフェーズです。試験を実際のハードウェア環境で行う場合は、後述する移行作業と連続して進めます。
移行・運用
完成したソフトウェアをシステムとしてハードに実装し、現場に導入します。そこからはシステムの実稼働に入りますが、日々のデータの集計・保存、状況変化に対するソフトウェアのアップデート(追加開発)などの業務を運用と言います。
保守
ソフトウェアに新たなバグが見つかり、そのバグが原因で障害が発生した場合、あるいはハードウェアに障害が発生した場合、早急な対応が必要となります。システムのダウンはクライアント企業の信頼を大きく損ねることになるため、極力システムを停止せずに障害対応をしていく技術が必要となります。また、安定稼働のために普段からのシステムパフォーマンスの監視も重要な保守業務です。