こんにちは!
株式会社Story’s 代表取締役の佐藤です!
前回は「会社員SEとフリーランスSEの仕事の違いって?」」の動画の補足として、「【上流工程を目指す方必見】システム開発の種類と上流工程の職種」を紹介しました。
下流工程ではなく上流工程を経験することで、年収やフリーランスの単価を上げるきっかけになります。学ぶだけではなく経験を積んで上流工程でのスキルアップは必要不可欠です。
今回も引き続き「会社員SEとフリーランスSEの仕事の違いって?」の動画の補足として、「【上流工程を目指す方必見】ITフリーランスで磨くべきスキル5選」について紹介します。
▼よろしければYouTubeもご覧ください!
ITフリーランスが上流工程で磨くべきスキルとは?
前回のブログでお伝えしたように、上流工程に関わる職種にはプロジェクトマネージャー、プロジェクトリーダー、システムエンジニアがあります。
上流工程はシステム開発において非常に重要な工程です。
この上流工程の出来栄えによってシステムの品質に大きな影響を与えることになります。
上流工程で仕事をしていく上で磨くべき5つのスキルは下記の通りです。
- コミュニケーション能力(チーム力)・スケジュール管理(リスク管理)
- 要件分析
- 要件定義
- 業界・経営知識
- 設計書などのドキュメント作成スキル
それでは順番に解説していきます!
スキル①:コミュニケーション能力(チーム力)・スケジュール管理(リスク管理)
コミュニケーション能力(チーム力)
まずどの仕事にも関わらずとはなりますが、上流工程に関わるエンジニアに必要なスキルは、コミュニケーション能力(チーム力)です。
お客様がすでに実現したいITシステムの概要を作成している場合は参考にします。
ですが、前提としてお客様はシステム開発の専門家ではありませんので、お客様がお客様自身のニーズを過不足なく伝えることは困難です。
お客様の発する言葉の裏に何が隠れていて求めているのかをヒアリングする能力がないと、お客様にとって満足のできるシステムは作成できません。
そのためお客様のニーズを引き出すコミュニケーション能力が必要です。
引き出す能力が必要な一方で、コミュニケーション能力が低いとシステム設計の背景を上手くお客様に伝えられないので、お客様に伝える能力も必要です。
また、クライアントがシステム開発に関する知識を持っているとは限りません。
そのため、上流工程のエンジニアはなるべく専門用語を使わずに分かりやすい表現で説明する能力も必要です。
お客様に適切にヒアリングを行うことはもちろん、下流工程の技術者と円滑なコミュニケーションを取ることも、上流の技術者には必要となります。
お客様とのコミュニケーション不足はシステム開発の失敗につながる原因です。
システム開発では開発に関わる様々な方とのコミュニケーションが必要です。
お客様、チーム内のメンバー、社内関係者など、立場が違う方とコミュニケーションをとらなければなりません。
そのため、相手の状況や立場を理解して適切なコミュニケーションができる能力が必要になります。
システム開発を成功へと導くためには、上流工程・下流工程を含めた全体のチームワークが欠かせません。
チームのメンバーで日頃から積極的にメンバーとの意思疎通を図ることで、作業面・環境面に関する要望や不満を把握しておくことが大切です。
スケジュール管理(リスク管理)
上流工程では開発チームメンバーの作業量やスケジュールの管理、プロジェクト全体のスケジュールや課題の管理を行いながら、作業を進めなければなりません。
また、トラブルが発生した際の窓口となるのも上流の仕事です。
損害を最小限に抑えつつ、トラブルを収束させていくかといったスキルも求められます。
上流工程を行っていく中で、「必要な機能が抜けている」「プログラムで実現できない設計になっている」「曖昧な設計になっている」などの問題があると、プログラムは正しく作成できません。
また、システム運用後にトラブルを引き起こすことがあります。
このような場合は、工程の遅延や上流工程へ後戻りのような余計な時間やコストが発生し、いわゆるプロジェクト炎上状態を引き起こします。
お客様の信用を失うだけでなく、致命的な問題が発生してしまうと、最悪の場合は損害賠償問題に発展することもあります。
このように、上流工程で発生した微細なミスが、下流工程での作業や出来上がったシステムの運用に大きな影響を及ぼしてしまうことがあります。
上流工程で行う作業は、システム開発プロジェクト自体の在り方に関わる重要なものと考える必要があるでしょう。
スキル②:要件分析
上流工程に関わるエンジニアには、要件分析スキルも必要です。
「何を目的として新たにシステムを作りシステムをどのように役立てたいのか」をシステムに対する要求を明確にするための、最初のステップです。
「こういうことを新しくできるようにしたい」「使用中の既存システムのここをもっと良くしたい」などのお客様からの要求を引き出して、お客様からどのようなシステムが求められているのかをドキュメントに盛り込むことで可視化します。
お客様からヒアリングして得たニーズは、そのままではシステムには落とし込めません。
そのニーズを各項目に分けて、それぞれの項目で必要な要件を分析していく必要があります。
その分析を行うことでどのようなシステムを作っていくかを明確にして、そのシステムを作成することについてお客様との合意を得ます。
初期段階から下流工程での開発作業開始まで、お客様の合意を取りながら設計を進めていくことが重要です。
納期や予算管理などはIT技術と関係ないように思われますが、納期通りにその予算内で実現できるシステムを設計するのも重要です。
スキル③:要件定義
上流工程で要件分析の次に上流工程で求められるスキルは、要件定義です。
要件定義は主として、これからシステム開発を行っていく上でのお客様のご要望を整理します。
例えば、
- お客様がどのようなシステムを欲しているのか
- お客様がそのシステムでどのようなことを実現したいのか
- お客様がどのような機能を実装してどのような性能を求めているのか
を整理します。
お客様側で、「システム化するために必要な情報の一覧」の作成ができない場合、開発ベンダーやテスト会社が代行することがあります。
お客様の業務フローが可視化されていない場合はこの段階で作成しておきましょう。
「依頼したはずの機能がついていない」「他のシステムとの連携がとれていない」のようなトラブルは、要件定義の不備が原因です。
こうした不備が起きないよう、要求定義での段階では実際に使用できる予算や納期と調整することで、必ず実現可能な開発範囲を決定していきましょう。
この後の工程の作業をスムーズに行うために「トレーサビリティマトリクス」を作成しておくことをオススメします。
トレーサビリティマトリクスとは、要件が各工程のどこで実装されて、該当するプログラムがどれであるかが一目で分かるようにまとめられたマトリクス表のことです。
プログラムで不具合が発生した場合、それが各工程のどの部分なのか分かるだけでなく、要件に対応したプログラムの有無が分かるので、実装漏れも防げます。
システム開発プロジェクトは、要件定義で定めた内容をベースにして進んでいきますので、要件定義に不備があるまま開発が進められると、まったく意図していないシステムが出来上がってしまうケースもあります。
このように要件定義は開発工程における「最上流工程」であり、システム開発の成否を分ける重要なフェーズであると認識しなければいけません。
後にトラブルが発生しないよう、開発側とクライアントの双方がしっかりと認識を合わせておくことが大切です。
スキル④:業界・経営知識
システム開発の上流工程においては、業界・経営知識も求められます。
お客様の属する業界に関する専門知識がないと、ヒアリング時に言葉の意味を間違って受け取ってしまったりとんちんかんな受け答えをしたりして、お客様の信頼を損ねてしまいます。
IT技術者の能力を最大限に発揮するためには、様々な業界の知識や経営に関する知識もITフリーランスには重要なスキルの1つです。
IT業界は流動性が高く、情報もツールも日々アップデートが必要です。
上流の工程では、実際にコーディングを行う必要はありませんが、最新のITスキルに関するアンテナは張っておくことをオススメします。
スキル⑤:設計書などのドキュメント作成スキル
システムエンジニアに求められるスキルですが、ITシステムを実装するために必要なのが設計書などのドキュメント作成スキルです。
お客様の要望を聞き、実際にその内容を文章にするのも上流工程を担当するシステムエンジニアの重要な仕事です。
上流工程では多くのドキュメントを作成する必要があります。
上流工程の成果物となる要件定義書や内部設計書、お客様や社内関係者に説明するための資料など、他にもいろいろな資料を作成する必要があります。
特に要件定義書や設計書はシステム開発の基盤となりますので、責任も重大です。
特に、ドキュメント作成で大事なのは、誰が見ても理解しやすい構成で作成することです。
そのため、一例とはなりますが、「目次を作成して見やすくする」「適度に見出しをつけてメリハリをつける」「文章全体を整理する」といったドキュメント作成スキルが求められます。
また、作成した設計書をベースにプログラミングを担当するシステムエンジニアやプログラマーがシステムを形にします。
そのため、お客様と要件定義を決めるときは下流工程のことも考慮する必要があるので、上流工程では下流工程の技術や経験も重要になります。
まとめ
いかがでしたでしょうか。
本記事では「上流工程を目指す方必見】ITフリーランスで押さえておくべきポイント5選」について解説しました。
上流工程の担当者は、システム開発における全体の取りまとめ役になります。
同じ上流工程のメンバーをまとめる立場を任されたり、下流工程のエンジニアの取りまとめを担当したりすることもあります。
そのため、マネジメントスキルがあるエンジニアは上流工程への転職でも有利になります。
上流の仕事は一般的にはチームで実施することが多く、責任を1人で背負うケースはほとんどありません。チームで一丸となって目標を達成することは、上流工程の大きなやりがいにも繋がります。
自分で考えて定義したものがシステムという形になって見えるので、お客様から直接「ありがとう」といった感謝を伝えられる点も上流工程の大きなやりがいです。
会社員で活躍したい場合やITフリーランスでの独立を目指す場合は、上流工程の経験を積むことで他の方との差別化を図ることが出来るので、上流工程にチャレンジすることをオススメします。
株式会社Story’sでは、上流工程を目指したい方の育成・サポートにも注力しています。
もし上流工程を目指したい方がいらっしゃいましたら、お気軽にコンタクトフォームよりお問い合わせください。