ウォーターフォール開発とアジャイル開発

Web design templates and web page layout editing using a professional software, collage and paper cut composition

一口にシステムやソフトウェアの『開発』といっても、作業工程ごとに様々な手法が存在します。

 

また、システムを構築する作業メンバーの管理という面においても同じように様々な手法があります。

 

これまで、システム開発やソフトウェア開発を行う上で、スタンダードな手法であったウォーターフォール開発は、クライアントから受注したシステムやソフトウェアの開発設計や開発計画を厳格に定め、策定した計画に沿って開発を進めていく手法の事を言います。

 

ウォーターフォール開発には

 

・全体的な計画を立てやすい

 

・プロジェクト全体の進捗管理がスムーズ

 

・参加者の入れ替わりに強い

 

といった3つのメリットがあります。

 

逆に

 

開発工程を確認しつつ作業を進めていくため、次のフェーズに進んでしまうと後戻りができなくなるというデメリットもあります。

 

アジャイル開発では顧客から請け負った各種システム開発やソフトウェア開発を進めていく中で、開発を行うシステムを大きな単位で分割しないで、小単位でシステム、またはソフトウェアの実装を行いテスト運用を行い開発を進めていきます。

 

初めから厳格に計画や設定を行わず、ある程度の『空白』を設けることによって、プロダクトの生産作業が途中であったとしても、クライアントからのご要望に対応することができ、制作作業が完了した機能から順番に顧客へ提供することができるというのがアジャイル開発の手法の一番の特徴と言えます。

 

では、アジャイル開発はどんなプロジェクトに対応できる、または適した開発手法なのでしょうか?

 

年々、飛躍的に技術や作業手法が進化している産業では、開発を行っている途中で仕様の変更や追加が生じやすいため、開発途中でのクライアントからのご要望、または機能追加が想定されるプロジェクトに向いていると言えます。

 

また

 

●現状進めているビジネスの状況によって、開発優先度の変更の可能性がある企画

 

●自社だけでなく、取引先も開発チームの一員として参画してくれる企画

 

●これから構築・制作したいシステムやソフトウェアといったプロダクトの全体像がまだはっきりしていない企画

 

…など、上記のようなプロジェクト・企画との相性が良いです。

 

 

クライアントからのご要望に対して、臨機応変に顧客のニーズに対応できる手法がアジャイル開発なのですが、メリットやデメリットにはどのようなものがあるのでしょうか?

 

 

アジャイル開発の最大のメリットは、開発を進めているシステムやソフトウェアに不具合や不備が生じた際に、不具合や不備が生じた個所から正常な所へ戻すための工数が少なくなる所です。

 

あらかじめ作成した設計や計画を元に作り上げていくウォーターフォール開発では、システムトラブルの発生が確認された箇所によっては正常に戻すための工数が大きくなり、新たに増加した工数に対する費用や修正確認期間・修正期間が大きくなってしまう可能性があります。

 

アジャイル開発を用いてプロダクトの開発作業を進めていく際には、非常に細かく分割された微単位でのシステム、またはソフトウェアの実装を行いテストを繰り返すため、仮にテスト段階でシステムやソフトウェアに問題が発生したとしても、ひとつのサイクル(イテレーション)内を戻るだけの修正工数で済むのです。

 

また、システム開発やソフトウェア開発の途中でクライアントとコミュニケーションを取ることでフィードバックを得ることができ、都度確認をしながらプロダクトの制作作業を進めることができます。

 

クライアントの要望を細分化して対応することができるため、顧客から高い満足度が得られる点もメリットと言えます。

 

上記のように、比較的メリットが多いアジャイル開発ですがデメリットもあります。

 

プロダクト作成の計画段階で厳密で緻密な仕様を決定していないアジャイル開発では、システムやソフトウェアを改善してより良い機能にしようと考えられるため

 

改善を繰り返してしまうという事象が起きやすいです。

 

そのため、知らず知らずのうちに当初の計画とのずれが発生してしまい、開発の方向性がわからなくなってしまう…という可能性があります。

 

また、各チームごとに小さな単位で開発を繰り返すため、全体のスケジュールや進捗具合が把握しにくく、全体のコントロールが難しくなりがち…というのがデメリットです。

 

一口にアジャイル開発と言っても、その開発手法には様々な種類があります。その中の一つとして、スクラム開発という物があります。

 

スクラム開発は、2種類のバックログが存在することです。

 

バッグログとは、到達目標や実現機能を意味する言葉であり、プロダクト・バックログ、スプリント・バックログとの2つがあります。それぞれの意味合いを解説すると

 

・プロダクト・バックログ

 

プロダクト・バックログとは、作成する機能や改善すべき要素に対して、作業をするべき項目の優先順位をリストにしたものです。生産すべきものに対して、今後やることを明確にしたものと言えます。

 

定期的に利害関係者全員で共有を行い、開発すべきシステムやソフトウェアの現在の状況を確認・把握します。

 

 

・スプリント・バックログ

 

スプリントとは1~2週間の枠組みのことです。スプリント・バックログとは、プロダクト・バックログのスプリント期間を抽出したリストのことを指します。

 

プロダクト・バックログをもとにスプリント・バックログを作成し、事前の計画通りに作業を終えることができるかを検討します。

 

スクラム開発のメリットは、主に3つあり

 

①生産性の向上

 

②問題検知の鋭敏化

 

③作業工数の正確な推定

 

…などが挙げられます。

 

他の手法として、エクストリームプログラミングというものがあります。

 

エクストリームプログラミングとは、開発するシステムやソフトウェアが途中で使用変更されることを前提に、プロジェクト全体を非常に細かな工程に分けてひとつずつの要素の開発サイクルを短くして開発を進めていく手法です。

 

・開発工程の時間短縮

 

・柔軟性に優れている

 

・生じた問題の早期発見とその解決

 

…などがメリットと言われています。

 

スピード感が求められる小規模な開発に向いており、8~10人程度の少人数でチームを構築する場合にもっとも良い手法と考えられています。

 

その他にもユーザー機能駆動開発(FDD)という手法もあり

 

構築するシステムやソフトウェアに対してマイルストーンを設定し、短期間での開発を何度も繰り返します。ユーザーに機能を適切な間隔納付していき、適切なインターバルでシステムやソフトウェアの提供を繰り返す開発手法です。

 

他国でのアジャイル開発の現場では、クライアントが使用するシステムはクライアント自身で作成するという基本姿勢があるようです。

 

そのため、計画段階では厳密な仕様を決めないで、おおまかな仕様と要求だけを決めておき、そのうえで動作するシステムやソフトウェアを作り上げ、検証し改善するといったアジャイル開発が有効となっています。

 

しかしながら、日本の行政に焦点を合わせてみると、行政が必要としているサービス開発をベンダーや外部委託先に一任している状態が散見されるようです。

 

ベンダーや外部委託先との既存の契約が、アジャイル開発に適したものになっておらず

『初期の仕様書通りにプロダクトが完成したら金銭が支払われる』…といった契約条件も少なくないようです。

 

この条件の中でアジャイル開発を進めても、より良いサービスを構築することは困難になるでしょう。

 

インドに隣接するスリランカは、インドの影響を強く受ける中で、IT系産業の成長が著しくなっています。

 

欧米企業がインドのエンジニアを積極的に活用しているという中で、スリランカも技術力の向上を図っています。

 

現時点でも、IT系の人材が豊富なスリランカですが、さらに技術者の育成にも積極的です。

 

スリランカのITエンジニアは、日本国内と比べて半額近い開発コストで作業を進めることが出来ます。

 

ビッグデータ解析やWebサイトの構築と運営、アプリケーション開発といった低コスト・高品質のサービスを提供しています。

 

当社はスリランカにおいて優秀な開発チームを持っていますので、様々なデータベース等を使用し、販売管理・商品管理・顧客管理等のシステムを構築でき、インターネットビジネスの可能性を広げることができます。

 

日本国内のシステム開発料金に負担を感じたクライアント様へ非常におすすめです。

 

システム開発やソフトウェア開発の手法にアジャイル開発がチョイスされ始めた当初は、斬新で最先端の手法であることに対して注目を集めました。

 

一般的に、システム開発やソフトウェア開発において、そのプロダクトを作り上げるためにはどうしても長期間の作業となってしまいます。

 

その点、アジャイル開発であれば、長期間の開発時間を短くするだけでなく、プロダクトの開発途中であっても、仕様の変更や使用の追加が可能となります。

 

しかしながら、仕様の変更が生じやすいWebサービスや、スマートフォンアプリの開発にはアジャイル開発が適していますが、必ずしもアジャイル開発が適しているわけではありません。

 

開発途中で、システムやソフトウェアの仕様が変更されることがないと考えられるケースでは、ウォーターフォール開発の方が作業効率が良い可能性もあります。

 

開発を行うプロジェクトの内容によっては、選ぶ開発手法も異なってくるので、アジャイル開発とウォーターフォール開発のどちらが適しているか判断することが極めて重要となります。

 

※千葉県八千代市に本社を置くサンファームネットは、スリランカにおいて優秀な開発チームを持ち、システム開発(ソフトウェア開発)、ネットワーク構築、販売・商品・顧客管理、ホームページ作成、データエントリーシステム、各種システム導入支援など、お客様にとって最適なITを用いた解決策をご提案することができます。