アジャイル開発のすべて〜歴史からメリット・デメリットまで
加速するビジネスに対応できる開発手法として近年注目を集めるアジャイル開発。そもそもどういったものなのか、強みや注目される理由、具体的な開発手法などについてわかりやすく解説します。
現在、多くの企業は、目まぐるしく変化する市場やニーズに柔軟に対応していく必要に迫られています。新しい機能を短期間で継続的にリリースしていく必要があるため、スピード感を持ったアジャイル開発に注目が集まっています。スピードの他にも、アジャイルによる仮説検証が新しい価値の創造に結びつくというメリットもあります。変化が激しく、物事の予測がたてにくい複雑・不確実な要素の多い課題に対して、最初から問題を分析し論理的に導き出せる解決策が通用しなくなっています。
当初アジャイル開発はソフトウェアエンジニア主体の開発手法でしたが、近年は不確実さに対応するビジネス戦略としても採用され始めています。ビジネス一般における価値創造にも、アジャイルの手法が求められています。
アジャイルが誕生する以前、ソフトウェア開発では「ウォーターフォールモデル」が主流でした。ニーズの分析、要件定義に従って上流から下流へ流れるように開発が行われるため「ウォーターフォール(滝)」に例えられています。最初に全体的な解決策を準備しますが、開発が始まると一切フィードバックが反映できず、柔軟性に欠ける点が、不確実性の高い社会のニーズと噛み合わなくなってきました。1990年代以降、開発期間を短縮するべくフレキシブルな開発アプローチが現れ始め、最終的には「アジャイル」に集約されていきます。2001年に17人の開発者によって出された「アジャイルソフトウェア開発宣言」により、アジャイル開発は一気に広まっていきます。 「アジャイルソフトウェア開発宣言」
私たちは、ソフトウェア開発の実践 あるいは実践を手助けをする活動を通じて、 よりよい開発方法を見つけだそうとしている。 この活動を通して、私たちは以下の価値に至った。
プロセスやツールよりも個人と対話を、 包括的なドキュメントよりも動くソフトウェアを、 契約交渉よりも顧客との協調を、 計画に従うことよりも変化への対応を、 価値とする。
すなわち、左記のことがらに価値があることを 認めながらも、 私たちは右記のことがらにより価値をおく。
アジャイルの概念をプロジェクトマネジメントに活用し、改革を推し進める企業も増えています。例えば、3000以上の小規模なチームが社内に存在するAmazonは、アジャイル型組織を実践する代表的な企業です。テック部門やビジネスにおけるアジャイルの基本的な活用法としては、以下のようなものがあります。
- 小規模なチームを組織内に作る 業務を横断する小さなチームを組織内に作り、アジャイル的なアプローチで改善を繰り返します。無駄な承認プロセスを省くことで、機動力のアップが期待できます。
- 意思決定はチームや現場で行う 市場ニーズを捉え、応えていくにはスムーズで迅速な意思決定が成功のカギです。アジャイルを取り入れ、チームや現場に一定の権限を譲渡することで、意思決定を加速化できます。従来のトップダウンでの命令的な指示系統から脱却でき、現場のモチベーションアップも期待できます。
- 顧客を中心に据え、顧客満足度の向上を狙う アジャイル宣言では、顧客と協調することが宣言されています。事前の契約や予め決めた計画通りに進めることより、顧客の声を最優先することで、満足度を飛躍的に向上させ真の競争力をつけられます。
エンジニア業界にも注目されるアジャイル開発ですが、効率よく活用するには、アジャイルの特性を理解し、アジャイル開発に適したプロジェクトを見極めることが不可欠です。アジャイル開発が向いているとされるプロジェクトの3つの特徴を確認し、活用できるかどうか見極めましょう。
開発の途中での仕様変更や追加要件の発生があらかじめ想定されている
改善、リリースが継続的に発生する
アジャイル開発は、細かい単位でフィードバックを反映できるため、サービスを1度リリースして終わりではなく、1-2ヶ月に1度のペースで継続的に新しい機能の実装や改善を繰り返すプロジェクトがアジャイル開発に向いています。
要件が不明瞭で漠然としている
アジャイル開発を導入し、成功に導くには3つの秘訣があります。
1.アジャイルへの深い理解 2.共通のビジョンを持ち続ける 3.リーダーがしっかりと機能すること
1.アジャイルへの深い理解 アジャイル宣言にも書かれているように、アジャイル開発で価値がおかれるのは、「チーム内での対話」「実際に稼働しているソフトウェア」「メンバーと顧客との協調」「変化への対応」です。アジャイルの従来型の開発手法との違いやメリットを、チーム全体、企業全体がよく理解した上で導入を進めましょう。
2.共通のビジョンを持ち続ける チームや個人ごとにスピーディな判断、意思決定が要求されるアジャイル開発。チームや企業が共通のビジョンを共有すれば、ビジョンに基づいたブレのない決定がより迅速に行われ、短期間で質の高い開発を実現できます。
3.リーダーがしっかりと機能すること アジャイル開発には、「プロダクトオーナー」と「スクラムマスター」という2人のリーダーが存在し、この2つのリーダーが機能するかしないかはプロジェクトの成否に大きく関わります。 プロダクトの目標や方向性を決定するプロダクトオーナーと、開発がスムーズに進むようにスケジュール調整や問題解決を担うスクラムマスターが機能しない限り、チームは方向性を見失うことになります。
アジャイルとDevOpsは、密接に関係しています。DevOpsとは、「Development(開発)」と「Operations(運用)」を組み合わせた言葉です。開発チームと運用チームが連携して開発を進めるという考え方で、対立が多かった二つのチームの協働によりプロジェクトの短期化と成果物の品質向上を可能にします。アジャイル手法を用い、分断されがちだった運用側と開発側のコラボレーションを促進させることで、実装、テスト、運用のプロセスを圧倒的にスピードアップできます。アジャイル開発は、DevOpsとの親和性が非常に高く、またDevOpsのすべての機能がアジャイル開発を補完する関係にあるのです。
アジャイル開発で時代を勝ち抜く開発を実現しよう
不確定要素の高い社会のニーズに対応するべく、スピード感と柔軟性を持つアジャイル開発の導入を検討されているチームも多いのではないでしょうか。アジャイル開発を成功へ導く近道は、適したツールを導入することです。GitLabなら、アジャイル開発環境を手軽に導入でき、セキュアな運用を実現します。