実装だけでなく「何を作るか」を考えられるエンジニアへ
実務経験が3年程度になると、プログラミングだけでなく、 基本設計や詳細設計、テスト、リリースなど、 開発工程を一通り経験している人も増えてきます。
ここから収入を上げていく方法の一つが、 要件定義や基本設計などの上流工程まで担当できるようになることです。
ただし、開発経験が3年あるからといって、 すぐに要件定義だけを担当する案件へ移る必要はありません。 まずは現在の開発経験を活かしながら、 基本設計や顧客との打ち合わせにも参加できる案件を選ぶことが現実的です。
要件定義とは「顧客が欲しいもの」を整理する仕事
要件定義では、顧客から言われた内容をそのまま仕様書にするわけではありません。 顧客が抱えている課題を聞き出し、 システムとして何を実現する必要があるのかを整理します。
例えば、顧客からこんな相談があった場合
「現在Excelで管理している顧客情報を、 社内のメンバーがWeb上で確認できるようにしたい」
この要望に対して、誰が利用するのか、どんな情報を管理するのか、 閲覧・編集権限はどうするのか、検索機能は必要なのか、 既存データをどう移行するのかなどを確認していきます。
つまり要件定義では、 「どう実装するか」だけではなく「なぜ必要なのか・何を作るのか」を考える力 が求められます。
要件定義案件を取るために積んでおきたい経験
基本設計の経験
画面設計、API設計、DB設計など、 要件を実際のシステム設計へ落とし込む経験です。 要件定義と開発をつなぐ工程なので、 上流を目指すなら特に重要な経験になります。
顧客との打ち合わせ経験
顧客の要望を聞いたり、仕様について説明したりする経験も重要です。 最初から会議を主導する必要はありません。 まずは先輩やPMと一緒に参加し、 議事録作成や仕様確認から経験していきましょう。
開発工程全体の理解
要件定義をする人にも開発知識は必要です。 実現が難しい要望や工数が大きくなる仕様を判断するには、 実装・テスト・リリースまで経験していることが強みになります。
仕様を文章にする経験
要件定義書、画面一覧、機能一覧、業務フローなど、 誰が読んでも同じ理解ができる形で仕様を残す力も必要です。 普段から設計書や仕様書を書く経験を増やしておきましょう。
技術以外に必要になる知識
要件定義ではプログラミング言語の知識だけでは足りません。 データベース、ネットワーク、API、認証、セキュリティなど、 システム全体について幅広く理解しておく必要があります。
さらに重要なのが業務知識です。 例えば金融、物流、EC、人事、会計など、 特定の業界や業務について理解しているエンジニアは、 顧客が何に困っているのかを理解しやすくなります。
技術力 × 上流経験 × 業務知識
この3つを組み合わせることで、 単に「プログラムを書ける人」ではなく、 顧客の課題からシステムを考えられるエンジニアを目指せます。
案件を変えるときは「工程」を確認しよう
上流工程を目指す場合、案件を選ぶときに単価や使用技術だけを見るのではなく、 自分がどこまでの工程を担当できるのかを確認することが大切です。
「開発+詳細設計」「基本設計から参画」 「顧客との仕様調整あり」といった案件を経験することで、 要件定義へ進むための実績を少しずつ作ることができます。
いきなり「要件定義経験者募集」の案件だけを狙うのではなく、 現在の経験で参画できて、今より一つ上の工程を経験できる案件 を選ぶことがポイントです。
まとめ
開発経験3年程度になったら、今後どのようなエンジニアになりたいのかを 一度考えてみるのがおすすめです。
要件定義などの上流工程を目指すのであれば、 まずは基本設計や顧客との打ち合わせなど、 現在より一つ上の仕事を経験していきましょう。
開発経験を土台にしながら上流工程と業務知識を身につけることで、 担当できる案件の幅が広がり、 結果として単価や収入を上げることにもつながっていきます。