Creatorshead

株式会社クリエイターズ・ヘッドのつぶやき

アジャイル開発とウォーターフォール開発の見分け方

弊社もWebやオープン系のシステムから各種業務システムまで、さまざまな受託開発を手掛けておりますが、システム開発手法として、従来型の要件定義からスタートし、設計、開発、テストという流れで開発を行うウォーターフォールの開発手法が、納期の観点から仕様変更に伴う手戻り開発が難しい点やサービスインまでに長期間必要となる点などから、昨今ではアジャイル開発という仕様変更や短納期対応に柔軟に対応できる開発手法をお客様から要望されるケースが増えてきております。

お客様から短納期でのシステム開発であれば何でもアジャイル開発してくれと指摘されるような誤解があるのも事実です。

しかしながら、すべてのシステム開発アジャイルで行えば良いのか?と言えばそんなことはなく、やはり得手不得手があります。

それでは、アジャイルで開発すべきシステムはどのようなものがあてはまるのでしょうか?

例えば、試行錯誤を重ねながらサービスを改善していくようなシステムであればアジャイルが向きます。

また、WebサイトのUI変更や使い勝手の改善など、日々作ってリリースを繰り返す開発はアジャイルが向き、WBS(Work Breakdown Structure)を用いて、マスタースケジュールをひいて進捗管理しながら納期に向かって仕様通りに開発していくのは、ウォーターフォールが向いています。

アジャイル開発では、開発チームを作り、短期間の開発計画や開発、レビューといった通常イベントを繰り返しながら、少しずつシステム開発を進めます。

一般的にアジャイル開発は、スコープの調整により、必要最低限の機能を短納期に合わせてリリースできるところがメリットですが、アジャイル開発に慣れていないエンジニアが参画したり、スキルレベルにばらつきがあったりすると、うまくスケジュール通りに進まないケースも多いです。

既存システムに新しいサービス追加やサービス改善をすぐに対応するような場合はアジャイル開発が適しているが、バックオフィスの業務を支援するERPCRMといった基幹系システムのような高い品質が求められ、納期が決まっているプロジェクトではウォータフォール開発が適しています。

いずれにしても開発案件内容によってアジャイルで開発するか、ウォータフォールで開発するかを選択したほうが良いですね!