スパイラル開発とは何かご存知でしょうか。
聞いたことがあるけど、内容はよく分からないという方が多いのではないでしょうか。
本記事ではそんなスパイラル開発の何たるやを解説しております。
IT企業として約24年の開発経験とノウハウを活用しながら執筆をしております。
ぜひ一度お読みいただき、参考にしていただければ幸いです。
目次
1.スパイラル開発とは
まずはスパイラル開発とはなにか解説していきます。
また、類似するような開発手法についても違いとしてまとめております。
それでは1つずつ見ていきましょう。
1-1 1つの機能ごとに設計~開発を進める開発手法
スパイラル開発は1つの機能ごとに要件定義から開発までを行う開発手法です。
イメージとしては図のように、1つの機能ごとに要件定義を行い、改善まで完了したら次の機能の要件定義を進めます。最終的に全ての機能が出揃ってからリリースを行い完成となります。
また、各機能で「プロトタイプ」(試作品)を作成し、評価(レビュー)と改善を行います。
事前にプロトタイプによる評価を行うことで、完成後の修正など手戻りを防ぐことができ、開発失敗のリスクを最小にします。
具体例として住居の建設を例とし考えてみましょう。
住居の建設をざっくりと骨組み、外壁、内装と建築工程を分けました。
それぞれの工程を1機能として考え、各機能が完成して住居が完成となります。
また各機能ごとに例えば小さな模型や3D画像などでプロトタイプを作成し依頼主のレビューを行い、問題なければその工程を完成させ、次の工程に進んでいきます。
都度レビューを挟むことで時間がかかる反面、各工程のリスクなどを事前に洗い出すことができ、 失敗する可能性を軽減させ、より正確に進めることができます。
建設が終わってから、例えば窓の位置が依頼したはずの位置と異なっていたから修正してくれという依頼があった場合は、かなりの手間と時間がかかることは予想できますね。
そういった認識のずれも機能ごとに分け、そしてプロトタイプの作成をしながら建設することで防ぐことができます。
これから解説します、各開発手法の違いをまとめ一覧化しました。
開発手法 | プロトタイプの作成 | 進め方 | 重要ポイント | 仕様変更 | リリース |
---|---|---|---|---|---|
スパイラル開発 | 〇(機能ごとに数回) | 機能ごと | 品質 | 〇 | 全機能ができたら |
ウォーターフォール開発 | × | 一気通貫 | 計画 | × | 全機能ができたら |
アジャイル開発 | × | 機能ごと | 計画 | 〇 | 機能ができるたび |
プロトタイプ開発 | 〇(要件定義後に基本1回) | 一気通貫 | 品質 | × | 全機能ができたら |
1-2 ウォーターフォール開発との違い
ウォーターフォール開発とは、システム開発のサイクルである、「企画」→「設計」→「実装」→「テスト」を一気通貫で開発することを指しています。
システム開発は様々な機能の集合体からなっています。
その様々な機能をフェーズ単位で組み立てて開発を進めていきます。
事前に仕様要件がガッチリと決まっている開発案件であればウォーターフォール開発は最適でしょう。
というのも、ある程度品質を担保することができるためです。
1-3 アジャイル開発との違い
機能単位で小さいサイクルを繰り返し行う開発手法です。
ウォーターフォールのように一気通貫で開発をするのではなく、1つの機能が完了したら次の機能を進めるように小分けにして進めます。
また、機能ごとにリリース作業を行います。
進め方としてはスパイラル開発に似ていますが、プロトタイプの作成の有無や、リリースのタイミングがことなります。
スパイラル開発では機能ごとにプロトタイプの作成を行い、機能がすべて揃ってからリリースしますが、1つの機能がある程度完成したらリリースを行うアジャイル開発の方がスピーディーに開発が進みます。
品質を重視するスパイラル開発と計画を重視するのがアジャイル開発となります。
1-4 プロトタイプ開発との違い
進め方はウォーターフォールと同様に要件定義から一気通貫で開発を進めます。
特徴としては要件定義の明確化を目的としており、要件定義後にプロトタイプの作成を行い、依頼者からレビューをもらい、要件の認識齟齬がないようにします。
機能ごとにプロトタイプを作成するのがスパイラル開発で、 全体のプロトタイプを作成するのがプロトタイプ開発です。
2.スパイラル開発のメリットとデメリット
2-1 スパイラル開発のメリット
スパイラル開発のメリットは品質を保ちやすい点です。
機能ごとにプロトタイプの作成を行い、レビューを行うため、完成時にイメージとのズレが起きにくく、仕様書だけでは分かりにくい認識の齟齬などもなくすことができます。
また、機能単位で開発を進めることから、仕様の変更があった際にも対応ができる点が魅力となります。
2-2 スパイラル開発のデメリット
機能ごとにプロトタイプの作成を行うため、他の手法と比較して工数がかかる可能性があります。
また、機能単位であるため全体像がイメージしにくく、開発期間やコストを算定するのが難しい場合があります。
そのため、予想以上にコストがかかってしまったなんてことも想定しておく必要があります。
3.スパイラル開発をおすすめするケース
スパイラル開発を活用することが良いケースについて解説していきます。
開発内容によって最適な開発手法がありますので、下記に当てはまる場合はスパイラル開発を検討しましょう。
3-1 仕様変更が発生しそうな開発
使用変更が発生しそうな開発であればスパイラル開発をおすすめします。
使用を決める段階で、「こんな感じかな~」や「一旦これでいきましょう」といった不確定要素がある場合は開発を進めていくと、仕様変更になるケースが多くなります。
スパイラル開発では、機能単位ごとに開発を進めるため、途中で変更になっても十分に対応が可能です。
ただ、内容によっては追加費用が発生するケースなどもありますので、十分に注意しましょう。
3-2 品質の担保を求められる開発
品質の担保を求められる場合はスパイラル開発をおすすめします。
スパイラル開発は機能単位ごとにプロトタイプの作成を行うため、イメージとのズレが発生しづらいというメリットがあります。
開発をする上で、よくある失敗例としては、当初のイメージと異なっていたや必要な機能が実装されていなかったなどがあげられますが、
そういった失敗を防ぐことができ手戻りを減らし、品質を保つことができるためスパイラル開発がおすすめできます。
3-3 システム開発が不慣れな顧客から依頼された開発
システム開発に不慣れである場合、仕様書や設計書を正しく理解できていない可能性があります。
そのため、完成した後にイメージが違う、変更してほしいなどの要望が発生する可能性があります。
スパイラル開発であれば、機能ごとにレビューを行うため、顧客側が途中でズレに気づくことができ、完成後の変更といった工数がよりかかる事態を避けることができます。
また、顧客側も都度プロトタイプを確認することで、安心して開発を任せることができ、信頼という側面でもプラスに働きます。
3-4 最新技術を用いる開発
最新技術を用いる開発はスパイラル開発をおすすめします。
最新技術である場合は前例も少なく、開発の失敗というリスクが高くなってしまいます。
しかし、スパイラル開発であれば機能単位でレビューを行い、認識齟齬や機能面での不具合など早期に発見することができます。
4.スパイラル開発の進め方
開発を進める際の全体的な流れについて解説していきます。
また、開発を行うエンジニアですが、役割ごとに行うことが分かれていることも抑えておきましょう。
4-1 企画
開発を進めていく上で需要なポイントである企画をしましょう。
下記の内容を順に決めていくことをおすすめします。
- ユーザーニーズ
- 内容(仕様)
企画が詰め終わったら、企画内容を基に要件定義へと進んでいきましょう。
4-2 要件定義~運用保守まで
企画後の開発は主に下記の6つに分類されて進められています。
企画の後は要件定義を行います。
機能要件の定義、非機能要件の定義、制約条件の明確化を行い、それらを文書化します。
開発は要件定義で定められた内容を基にPMが管理行い進めていきます。
次に基本設計、詳細設計を行います。
要件定義を基に実装の方法やシステムのインターフェースなどの設計を行います。
これらを基に開発、プロトタイプの作成へ進んでいきます。
そしてテストの工程後に評価とレビューを行い、必要に応じて改善を行います。
主にPGが担当しますが、状況によってSEが担当することもあります。
最後に運用保守を行い必要に応じて改修を実施するなど、完成を目指します。
4-3 システム開発のエンジニア別役割
フェーズごとに担当する役割の一覧です。
PMとPMOは全体の管理がメインとなるため、全てのフェーズに関与していきます。
SEは要件定義~実装まで関与しますが、状況によってはテストの以降のフェーズにも関与することがあります。
PGは実装~のフェーズを主に担当をします。 合わせて確認しましょう。
役割 | 主な担当業務 |
---|---|
PG(プログラマー) | 実装やテスト工程を主に対応 |
SE(システムエンジニア) | 要件定義、基本設計、詳細設計、実装を主に担当 |
PM(プロジェクトマネージャー) | 開発全体の統括を主に担当 |
PMO(プロジェクトマネジメントオフィス) | コストの調整、ディレクション、PMの補佐を主に担当 |
5.スパイラル開発をするには
5-1 外注
システム、アプリ開発のプロに依頼します。
多少の費用は発生するものの、プロの技術で開発を進めてもらえるため、 依頼後は待つだけで、きちんとしたシステムが納品されます。
自社にエンジニアがいない場合などは積極的に外注を活用してみましょう。
下記は外注について解説した記事です。
併せてご参照ください。
5-2 自社開発
自社内で開発を進めます。
自社内にエンジニアがいる場合は自社開発を検討してみても良いと思います。
ただ、開発する難易度やエンジニアが持つスキルでは対応が難しい場合もあります。
自社内で使用するソフトウェアであれば、エンジニアの育成も兼ねて、多少背伸びでも挑戦しみても良いですが、販売目的など完成までの期間が短い場合などは外注を検討してみましょう。
下記は自社開発について解説した記事です。
併せてご参照ください。
6.スパイラル開発をするなら株式会社インタラクティブコミュニケーションデザイン
ソフトウェア開発をはじめ、WEB系のシステム開発など、IT企業として24年の経験がある弊社にお任せください。
弊社はクリエイティブ部門をシステム開発部門に統合してワンストップ化、要件定義工程でのUI設計で効果を発揮しています。もともとシステム開発会社であるため、見た目の良さだけでなくシステム要件を踏まえた設計・開発が可能です。
多様なスキル要素(一人複数役、新スキル)、開発の進め方の変化など、マネジメントが複雑化する昨今、変化するニーズに対応可能な技術者調達力&チームマネジメント力に特化したICDだからこそ成し遂げられるオフサイトソリューションの形があります。請負に限らず、準委任契約も承っております。
そして、24年の実績の中でソフトウェア開発を行った実績も実に豊富であり、知見やノウハウを最大限に活かした開発が可能です。
また、オフショア開発も事業展開しており、特徴としては、ベトナム現地に日本人が複数名在籍しており、ブリッジSEとして必ず窓口に立つような体制を整えています。
そのため、日本語でのコミュニケーションはもちろんのこと、日本人ならではの感覚も伝わります。
エンジニアとしての知識と経験も豊富であることから、ただディレクションするだけでなく、厳しく納品物の確認を行い高い品質を維持しています。
このような体制により、東建コーポレーション株式会社様や株式会社カインズ様をはじめとした大手企業様から信頼をいただき、プロダクト開発など実績が豊富にあることも強みです。
会社名 | 株式会社インタラクティブ・コミュニケーション・デザイン |
---|---|
設立 | 2000年11月 |
従業員数 | 200名(国内+ベトナム) |
本社所在地(国内) | 東京都港区赤坂1丁目12番32号 アークヒルズ アーク森ビル 17階 |
事業内容 | ・ソリューション事業 ・サービス事業 |
URL |
スパイラル開発のまとめ
スパイラル開発について解説をしてきましたが、ポイントは掴めましたか。
混在しやすいアジャイル開発などとの違いも含めて、スパイラル開発についてしっかりと認識できたのではないでしょうか。
最適な開発手法を見つけるためのヒントにしていただければと思います。
お読みいただいた皆様の一助になれば幸いです。