日に日に進化を遂げていくIT技術。
現場へのシステム導入や業務効率化を図るためにシステム開発を考えている企業が増えてきました。それに比例し、IT企業やフリーランスで活躍する人も前年度から10万人も増加しています。
しかしそこで問題となるのが外注先の選び方。
選び方が多数ある反面、その外注先によって得意とする開発内容やスキル、コストの相場も大きく変わります。そこで今回はシステム開発を検討するに当たって気をつけるべきポイント3つをご紹介します。
1. 目的を明確にし、要件定義を詰める
まずシステム開発を進めるに当たって、依頼者は「要求定義」を設定する必要があります。
要求定義とはユーザーが何を必要としているか定義したもの(「仕様」といいます)をまとめることであり、依頼者が開発者に提示するものを指します。
それに応じて開発者は、依頼者からの要求をもとに予想される機能や性能について、また具体的な開発工程を設計するために業務フローや業務のシナリオについて記載がある「要件定義書」というものを作成します。この要件定義書がシステム開発における基盤となる資料となります。
言い方を変えると、開発者が「依頼者の要求をどのくらい理解できているか」という認識の物差しになったり、費用、コストの相場を知っていれば比較材料になったりする重要な資料です。
密な打ち合わせも必要ですが、要件定義書で小さな疑問や認識のズレを洗い出すことも期待するシステムの実現へ一歩近づく大切な工程なので、開発の前段階に報告しておきましょう。
また開発の途中で仕様の変更や機能の追加は提示された要件定義書のスケジュールに大きな影響を及ぼす可能性があります。
例えばプログラミングの途中で、システム上にボタンを1つ追加して欲しいと依頼したとします。
ユーザーから見ればほんの少しと思われる修正も、システムの内部ではデータ処理やロジックの変更、エラー処理の追加などの多くの修正を要したり、場合によっては設計を1からやり直す必要があったりします。
システム開発では、ユーザー側の要求を実現することがゴールです。そのためにも提示された要件定義書と要求に相違がないか認識のすり合わせをすることが重要になります。
2. メンバーの実績やスキルを確認する
システム開発を依頼しようと思った時、相手はフリーエンジニア(個人事業主を含む)、中小企業から大企業まで様々です。
システム開発に携わる人材のクオリティは、システム開発の成否に大きく影響します。ここでは依頼する開発者の規模別に委託時に抑えておくポイントを紹介します。
- フリーランサーに依頼する場合
フリーランサーの場合には、対応可能なOSやプログラミング言語などがあらかじめ公開されていることが多いです。
まず案件を提示する前に、公開されているスキルシートよりフィルタリングが必要となります。フィルタリングをする場合には、以下の情報を入手シましょう。
- 対応可能な言語・実績
- プロジェクト立ち位置や担当フェーズ、メンバー構成
- ポートフォリオの充実
※ポートフォリオとは、何ができるのかを効果的にアピールするテクニックを入れ込んだり、プログラミングの工程や考えた記事のことです。
そしてフリーランサーを決められたら、コンタクトを取り案件を提示します。
個人だということもあり、スキルや実績が開示され明確になっていることが多いので、スキルが見合えば早めにコンタクトをとりましょう。
- 小規模企業に依頼する場合
依頼者から案件を提示し、開発企業から提案を受ける際にどのようなメンバーが担当するかの情報を入手することが必要です。
また下請け企業が含まれている場合もあります。
その場合、個人情報保護の観点から名前までは伏せられているかもしれませんが、少なくとも以下の情報を入手しましょう。
- 役職
- 本案件での担当フェーズ
- 資格(IT系に限らず、場合によっては英語などの外国語力を知る必要もある場合があります)
- 担当フェーズの経験年数
そして開発企業から要件定義書受け取った後、依頼者側の主メンバーはシステム開発会社のエンジニアと必ず直接会話をし、エンジニアの能力を見極めることもポイントとなってきます。
エンジニアがシステムを理解しているか肝となってくるので、プロジェクトマネージャーは責任を持って管理ができそうか、スケジュール通り実行できそうか、など細かくヒアリングをすることが円滑に進められるコツです。
- 大中規模システム開発案件の場合
大中規模システム開発案件の場合、まずは案件を営業担当者に持ち込むところから始まります。
そこでシステム開発会社から案件に対応する提案を受けられたら、プロジェクトマネージャーと打ち合わせをします。しかし、もしそのプロジェクトマネージャーに信頼が置けそうになければ、別の方を紹介してもらえないか営業担当者に相談することも出来ます。
大手のシステム開発企業であれば、複数のチームが存在するので、プロジェクトマネージャーは一人ではありません。
またプロジェクトマネージャーには以下を確認しましょう。
- 役職
- 資格(IT系に限らず、場合によっては英語などの外国語力を知る必要もある場合があります)
- マネージングしたプロジェクト数・本プロジェクトに類似したプロジェクトの経験数
- 質疑応答での印象(システムの基本事項を理解しているか、信頼できるか)
※ちなみに「プロジェクトマネージャー」は役職ではなく役割です。Project Management Professional(PMP)という資格を持っているのが理想ですが、資格より現場経験値が信頼度に繋がるので、そちらを優先するのをおすすめします。
また大中規模システム開発の場合、プロジェクトマネージャーの采配はプロジェクトの成功を大きく左右します。妥協せず、営業担当者を通じてよりより人材を探してみて下さい。
3. コミュニケーションは密に取る
システム開発の進行中には、設計段階では想定できなかった問題が多く発生します。
- 技術上や設備上、進められない実装
- ソースコードの商用利用不可
- 環境構築中に扱うパッケージがダウングレード、アップグレードが必要な場合等
これらは開発者側、依頼者側どちらにも責任がない問題も起りえます。
そこで重要なのが進捗会議です。お互いの立場や事情を考慮して合理的な解決策を探るためにも、最低でも週に1回は進捗会議を開き方向性を再確認しましょう。
また開発者側から提案がある場合があります。さまざまな案件をこなしてきた企業やフリーランサーは、ユーザーの使いやすいデザインを熟知していたり、アイディアを持っていたりすることが多いです。よりクオリティを高めるには開発者側の案を引き出すことも一つの進め方です。
さらにお互いに相談しやすいような環境を整えることも必要です。
例えば、雑談感覚で気軽に話ができるチャットツールや、作業進捗やアクションアイテムを共有できるコラボレーションツールなどを活用し、コミュニケーションを密にとることで問題が小さなうちに、迅速に適切な対処ができます。
まとめ
システム開発をスムーズに進めるためには、依頼者側もプロジェクトへ積極的に関わる姿勢が重要です。
要件定義書、仕様書の読み込みや、開発期間中の打ち合わせ、進捗の確認・管理などを細かく行い、開発者との信頼関係を築くことも成功への道です。
また外注先で迷った場合、相談やサポートを行ってくれるサービスも増えているので、そちらを利用するのもよいでしょう。
システム開発は決して安価ではありません。失敗しないための取り組みを重視していきましょう。
初めてシステム開発、コスト削減ならボンクレの「50method」
システム開発者は運用までに要件定義書の作成、プログラミング、テスト等の11項目の工程に沿って進めるのが主流です。もちろん、それぞれの工程には大きなコストがかかったり、依頼者側の知識を求めてしまったりすることが多いです。
そこで弊社はオリジナルの「リニューアル手法」を用いて11項目のコストを半分まで抑えてご提供しています。またITの知識に自信がなくとも弊社独自の分析フォーマットへのご記入いただくところから運用までSE・コーディネーターが手厚いフォローをいたします。
初めてシステム開発をする、コストを抑えて精度の高いシステム開発をしたい企業様はぜひ弊社にご相談ください!