アジャイルの意味
アジャイル(Agile)とは、直訳では「素早い」「機敏な」「頭の回転が速い」という意味があります。
ソフトウェア開発におけるアジャイル開発とは、プロジェクト開発手法のひとつで、小さな単位で開発・テストと実装を繰り返して開発を進めていく手法です。従来のウォーターフォール型の開発手法と、よく対比されています。
アジャイル開発とは「素早い」開発?
ウォーターフォール型の開発手法は、要件定義から設計、開発、実装、テスト、運用までの各工程を段階的に完了させていく開発手法ですが、アジャイル開発では、機能レベルの小さな単位で『計画→設計→実装→テスト』といった工程を繰り返しながら、開発を進めていきます。
機能レベルで開発を進めるため、優先度の高い機能や、入力系等の上流機能から順に開発を進めていき、機能の集合体として大きなシステムを構築していきます。
従来の開発手法に比べて開発期間が短縮されるといわれているため、「素早い」開発と呼ばれていますが、当社では、優先度の高い機能をお客様が実際に触るタイミングが、従来よりも早い時期になる、という意味で「素早い」開発だと考えています。
「アジャイルソフトウェア開発宣言」
アジャイル開発の始まりともいうべき「アジャイルソフトウェア開発宣言」では、開発のプロセスやツールよりも、個人との対話や顧客との協調に価値をおく、と宣言されています。
アジャイルソフトウェア開発宣言
http://agilemanifesto.org/iso/ja/manifesto.html
「アジャイルソフトウェア開発宣言」は、2001年にソフトウェア開発の技術者やプログラマー17名が、開発手法の重要な部分についての議論をまとめたものであり、ソフトウェア開発とそれに基づく12の原則を定義しています。
顧客満足を最優先するために動くソフトウェアを短い時間間隔でリリースすること、そのためにフェイス・トゥ・フェイスで話をすること、ビジネス側の顧客とソフトウェア開発者側がひとつのチームとして一緒に働くこと、自己組織的なチームであることが重要だと明言されています。
アジャイルソフトウェア開発で顧客満足度の高いシステムを構築するカギは、仕様を決めたら開発ベンダーにお任せにするのではなく、ユーザーの皆さまにも開発工程に積極的に関わっていただく、という点にあるといえそうです。
アジャイル開発のメリット/デメリット
アジャイル開発のメリットは、開発途中での要件変更や仕様追加に対応しやすいことです。
機能レベルの細かな単位で開発・実装するため、手戻りや影響範囲が小さくて済みます。また、ユーザー側とのコミュニケーションを重視する開発手法のため、仕様変更後のユーザーニーズを迅速に把握することができます。
アジャイル開発のデメリットとしては、構築したいシステム全体の進捗やスケジュールが見えにくくなることです。
ウォーターフォール型の開発手法は、要件や全体機能を開発スコープとして固めるため、全体計画や予算が立てやすいのですが、アジャイル開発では、優先度の高い機能単位に開発を進め、途中で発生した仕様変更も適宜取り込めるため、システム全体としての納期はあいまいになりがちです。
また、アジャイル開発は約2週間という短期のサイクルを繰り返すので、従来の開発手法よりもスピード感が求められます。そのため、ユーザーの皆さまと開発側とのコミュニケーションが大切になります。
しかし、昨今のコロナ禍では、どの企業様でも在宅勤務/テレワークが主流になっており、開発チームがバラバラな場所にいて、意思疎通も少なくなってしまいがちです。これも現時点でのデメリットと言えるかもしれません。
このように、アジャイル開発にもウォーターフォール型開発にも、それぞれメリット/デメリットがあります。開発手法ごとのメリットを活かし、デメリットをカバーできる技術やツールを確立しているかが、開発側に求められています。
当社のアジャイル開発の場合、メリットを活かしデメリットをカバーするため、下記の図のようなツール、技術の活用したアジャイル開発プラットフォームを構築しています。このプラットフォームを活用してアジャイル開発でのシステム構築を円滑に遂行し、顧客満足の最大化にお応えしております。
当社のアジャイル開発プラットフォームについては、次号のブログにて解説いたします。
お問い合わせはこちらまで
「アジャイル開発に着手してみたい!」というご要望がございましたら、お気軽にお問い合わせください。担当よりご連絡させていただきます。
最後までお読みいただき
ありがとうございました。