【システム開発工程編】エンジニア採用基礎講座

System_development_process

近年ますます採用競争が激化するエンジニア採用。

しかし、エンジニア採用に必要な知識量は膨大。何を勉強したら良いのか、どこまで理解しておけば良いのか、頭を悩ませている人事の方は多いのではないでしょうか。
また、webサービス系の企業ではエンジニアの方が採用を手伝ってくれるようになってきましたが、SIerやソフトウェア開発企業などでは、まだまだ十分な協力体制が構築できていない所も多いでしょう。

本記事では、エンジニア採用を行うために重要な知識である「システム開発工程」を、それぞれ文系の方にもわかりやすく解説します。
また、上流工程では「採用担当として覚えておきたい事」としてすぐに実務に活かせるポイントも紹介しています。

※この記事の平均読了時間は、「3分00秒」です。

なぜエンジニア採用に「システム開発工程」の理解が重要なのか

System_development_process

エンジニアにとって、どの工程を任せてもらえるかは大きな関心事です。
また、エンジニア採用が加熱する中、任せたい工程とその工程の経験をもつエンジニアというマッチングのみでは採用が出来ない場合があります。採用できたとしても、採用コストが大幅に膨張したり、採用期間が長期化してしまうリスクが発生します。
このような事態を避けるためには、システム開発工程とエンジニアのニーズについて理解することが重要です。

例えば、一般的には要件定義など上流工程になればなるほど、希望者が多くなる傾向があります。(特にwebサービス系のエンジニアでは実装(開発)を極めたい職人気質な人もいるので、一概には言えない部分もあります)

そのため弊社では、任せたい工程よりも下流の工程の経験があるエンジニアも対象にすると採用がしやすいと提案することがあります。要件定義のポジションを採用するのであれば、設計や開発の経験があるエンジニアを狙い、開発のポジションを採用するのであれば、運用保守の経験があるエンジニアを狙うのです。全くの未経験を採用すると、採用後の教育コストが高くなってしまいますが、この方法であればバランスを保つことができるのです。

実際に、主に要件定義を行う大手コンサルティングファームでも、開発経験のあるエンジニアもターゲットにすることで、採用を加速させています。

このように「システムの開発工程」を理解しておくだけで、エンジニア採用に大きなメリットが生むことができるのです。

エンジニア採用で必要な知識「システム開発工程」を解説

家

システムの開発工程を考える時に、家を作る工程に喩えて考えてみると非常にわかりやすいと思います。

家を作るときには、まずはどんな家を作りたいかを検討し、設計図を作成し、作る手順や材料を決めます。その後、実際に作り上げる作業を行います。終盤には、実際に水漏れなどの不具合がないかをチェックし、最終的に家を引き渡します。完成した家も、何年か経てば不具合が発生するので、そのメンテナンスを都度行います。システムの開発工程も上記と同様の工程で進んでいきます。

どんな家を作りたいのか検討 → ①企画・要件定義
設計図を作成し、作る順番や作る為の材料を決める → ②設計
実際に作り上げる作業 → ③実装(開発・構築)
水漏れなどの不具合がないかをチェック → ④テスト
最終的に家を引き渡す → ⑤デプロイ(公開)
何年か経てば不具合が発生するので、そのメンテナンスをする→⑥保守・運用

それでは、下記で、企画・要件定義から保守・運用までの詳細を紹介します。

①企画・要件定義

顧客がシステムを通して実現したい目的や要望を踏まえて、システム全体像を明確する工程です。

会社HPなどの作成を例にすると、サイトを作る目的やターゲットを明確にします。その目的やターゲットに応じて、サイトで搭載したい機能を考え、どこまで実装するかを打ち合わせます。
コンテンツの種類、画面表示や操作方法なども具体的に考えていきます。サイトの見た目だけでなく、運用方法やセキュリティなど安全性についても仕様を検討します。

採用担当として覚えておきたい事

一部システム会社ではセールスが担う事もありますが、このフェーズで活躍するのが、いわゆるコンサルタントと呼ばれる人たちです。受託開発のエンジニアの方の多くの転職理由で、「上流工程をやりたい」というのがありますが、それは、この「企画・要件定義」をやりたいという意味です。 

②設計

サイトを具体的にどのようなシステムで実装していくか設計します。スケジュールや費用などの検討もこの工程で行われます。この設計という工程は、基本設計と詳細設計に分けられる場合もあります。

基本設計は見える部分を考える工程です。大雑把な機能の一覧、どんな機器で動かすかや、どんなスケジュールで作業を進めるかなどを考えます。
それに対して詳細設計は見えない所を考える工程です。

プログラムの構造やデータの流れなどの細かい部分まで決まっていれば、あとはプログラミングをするだけです。

採用担当として覚えておきたい事

エンジニアの採用で、この設計の経験のみを求められるケースはほとんどありませんので、設計という工程があるぐらいの理解で問題ありません。エンジニアの中で、「アーキテクト」「テックリード」と呼ばれる人たちはこの設計にメインで関わる人たちなので、知っておいても良いかもしれません。

実装(開発・構築)

programing

ここ一番イメージがつきやすい工程かと思います。黒い画面に、JavaRubyなどのプログラミング言語を打ち込んで実際にシステムを作っていくのが、まさにこの実装です。アプリケーションの場合は「開発」、インフラの場合は「構築」と呼ばれるケースが多いです。

Webサービスを運営する会社で、アジャイルで開発する場合は、この開発工程が非常に重要になってきます。

採用担当として覚えておきたい事

受託開発企業の採用で、要件定義や設計をメインに行うポジションであっても、「手を動かせるエンジニアが欲しい」と言われるケースが多くあります。その「手を動かせる」というのが、この実装経験を持つか否かを意味するのです。コンサルファーム出身者や、事業会社の社内SEの方の多くはこのフェーズを委託しているので経験がなく、採用対象として外される場合もあります。

④テスト

テストというのは、開発したシステムが期待通りに動作するか、構築したシステムが仕様書通りの機能や性能要件を満たしているかについて検証する工程です。

「単体テスト」「結合テスト」「受入テスト」に分けられます。

プログラムや機能ごとの確認を行う単体テスト、プログラムを結合してバグがないかを確認する結合テスト、そしてお客さまによる完成度チェックを行う受入テストとなります。

⑤デプロイ(公開)

一言で言うと、使える状態にすることを意味します。デブロイすることでシステムが完成します。

⑥保守・運用

作ったシステムの健康状態を監視し、システムを不便なく使えるように維持管理することです。保守・運用を行うことで、作ったシステムを継続的に稼働し続けることができます。

エンジニア採用に重要な「システム開発工程」全体像

System_development_process

おわりに

本記事では、システム開発工程について解説しました。
これで、エンジニアの職務経歴書から、自社のポジションにマッチする人材かどうか、最初の判断ができるようになるのではないでしょうか。

次の記事では、業務系システムとWEB系システムの違いについて解説しています。

【業務系システムとWEB系システムの違い編】エンジニア採用基礎講座

エンジニア採用にお困りの人事の方へ

VOLLECTでは、ダイレクトリクルーティングの代行と、スカウト管理ツールの提供をしています。

エンジニアを採用したいがスカウト文作成を自社のエンジニアに協力してもらうのは難しい
・ダイレクトリクルーティングを導入したいけれど工数やノウハウが心配
・導入しているけれど上手く活用できていない
・エージェントや求人媒体などの従来の採用手法では採用が上手くいかなくなってきた

など、ダイレクトリクルーティングでのスカウトにお悩みの企業/採用担当者の方がいらっしゃいましたらお気軽にこちらのページの下部フォームからお問い合わせください。