「思っていたのと違う」をなくすために〜システム開発の際に注意すべきこと〜

SHARE:

システム開発の現場では、「完成したシステムが当初の想定と異なる」「納期が大幅に遅延する」といった課題が少なくありません。これらの問題は、多くの場合、要件の認識不足やプロジェクトの進め方に起因しています。
開発を成功に導くためには、初期段階での認識共有や、適切な開発手法の選択が欠かせません。
この記事では、システム開発において発生しやすい失敗の要因と、代表的な開発手法の特徴についてお話したいと思います。

この記事をオススメしたい方

● システムを作って欲しいと考えている方

● プロジェクトを管理している方

● システム開発について知りたいと思っている方

仕上がりのイメージがズレてしまう 曖昧な要件定義の落とし穴

システム開発の現場で意外と多いのが、「完成してみたらイメージと違った」というケースです。見た目のデザインが想像と違う、操作の流れが思っていたより複雑、欲しかった機能が足りない、など要件書にしっかりと落とし込めていない部分が出てくることもあります。

原因はほとんどの場合、認識のすり合わせ不足です。
要件定義や仕様書にすべてを正確に落とし込むのは難しく、言葉だけで説明すると受け手によって解釈が変わってしまいます。また、開発中に顧客側の要望が変化することもあり、それがズレを広げる要因になります。

こういった顧客との相違を防ぐためには、初期段階でイメージを共有できる資料やプロトタイプを用意することが効果的です。
画面のワイヤーフレームや操作フロー図、サンプル画面などを使うことで、言葉だけでは伝わりにくい部分も明確になります。
さらに、開発の途中でも定期的に成果物を見せながら確認を行えば、完成時に思っていたのと違うといったことを防ぐことができます。

要件定義の際は、システムに関わる全ステークホルダーとコミュニケーションを取り、お互いのシステムに対する理解度を把握し、それによってどこからどこまでを誰に承認を取るのかを明確にすることが大切です。
承認フローを把握したうえで、1-2週間単位で要件定義書を全員でレビューし、細かな要望をキャッチアップ・反映していきます。
これらを数回行って、適切なスケジュールを設定していくことで、お互いの認識について擦り合わせていきます。

2つの開発手法

開発手法として、大きく2つの手法が挙げられます。
アジャイル開発とウォーターフォール開発です。
■アジャイル開発
アジャイル開発では、各工程を繰り返しながら徐々に開発を進めていく開発手法です。小さい開発スパンの繰り替えしで進めていくため、早い段階で出来上がったシステムを確認することができます。また、小さい規模の開発のため、仕様変更などに対して柔軟に対応することができます。早期の修正に対応し、要件のズレを抑えることができますが、柔軟に対応ができることからシステムの全体像が見えづらいといったデメリットがあります。

アジャイル開発においては、要件が流動的であったり、実際にUI/UXを確認して擦り合わせたい場合やまずは動くものをリリースしたいといった場合の開発に向いています。スピードや柔軟な対応が求められるため、顧客との擦り合わせ、コミュニケーションが特に重要となります。

■ウォーターフォール開発
古くから使われている開発手法で、要件定義から始まる各工程の流れに沿って順に進めていく開発手法です。各工程が完了してから次の工程に移るため、プロジェクトの管理がしやすくなります。また。品質管理に優れているのもウォータフォール開発のポイントです。しかし、企画や要件を細かくしっかりと決めていくため、長期的なスケジュールを見る必要があります。工程が完了してからのため、戻りや要件の変更がしづらい、修正が発生した場合は工数が大幅にかかってしまうといったデメリットがあります。

ウォーターフォール開発においては、作りたいものが明確化され、決められたスケジュール通りに開発を進めたい場合に向いています。仕様変更が発生しない、高品質が求められるプロジェクトはウォーターフォール開発が適しています。

2つの開発手法をご紹介しましたが、どういったシステムを求めているかによってどちらの開発手法を選択するかが鍵になります。システム開発を円滑に進めるためにも、どういったシステムを作りたいのか、それに合わせた開発手法を選択する必要があります。

スケジュールの遅延

システム開発では、納品までのスケジュールが組まれていますが、予定通りに進まないことも起こります。 一見小さな遅れでも、後工程に遅延がずれ込み、最終的な納期を大きくずらしてしまうこともあります。

遅延の原因はさまざまですが、よくあるのは要件定義や設計段階での見積もりの甘さです。資料を元に、開発者はシステムを作りますが、要件が不足しており、追加の要件や仕様変更など、スケジュール通りに進まないといったことに繋がります。また、テスト中に予想外の不具合が見つかる、関係部署の承認が遅れる、といった要因も重なります。特に複数の外部ベンダーや社内部門が関わる場合、1つの遅れが全体に影響し、スケジュールが遅延してしまうリスクは高くなります。

スケジュール管理の際、計画段階で余裕を持たせ、想定外の対応時間をあらかじめ確保しておくことで、遅れの影響を最小限にできます。また、進捗管理・報告をこまめに行い、遅れが小さいうちに原因を潰していく姿勢も重要です。

システム開発を成功させるためには

開発は複数のチームが動いて成り立つため、情報共有の頻度と質が納期遵守に大きく影響します。様々な知見を持った人が介入するプロジェクトもあるため、密なコミュニケーションを取り、チームが目指す完成系が共有できていないと、作りたいシステムも実現できません。また、システム開発を通して、ステークホルダーのシステムの理解度を組織的に上げていくというのが大切かと思います。

出来上がって、思っていたのと違ったということの大きなポイントは、理解をしようとせずに進んだり、忙しいを理由にコミットが弱いことが多いです。
関係者をうまく巻き込み、チームとしてシステム開発のゴールを全員で到達することがシステム開発を成功させるための鍵となるのではないでしょうか。

システム開発について、いかがでしたか?

システム開発は、一度のすれ違いが大きなロスにつながる難しい取り組みでもあります。
だからこそ「仕上がりのイメージを共有すること」や「開発手法を正しく選ぶこと」が何より大切です。「思っていたのと違う」とならないためにも、要件を明確にし、チーム全体で同じイメージを持ちながら進めていくことが欠かせません。
私たちは、お客様と同じ目線に立ちながら、最適な進め方をご提案し、安心して任せていただける開発を目指しています。

Good Thingsでは、Webサイト構築・リニューアル・デジタルマーケティングに関するご相談もお受けしております。

関連・おすすめ記事

おすすめ
コンテンツ

SHARE:

この記事が気に入ったら
いいね お願いします

Mail Magazine

ディレクターが知っておくべきマーケティング情報から技術情報まで発信中

登録フォーム

Note

Weekly Ranking

Good News

Good Works

ページTOP