アジャイル開発が生まれた経緯
始まりは2001年の2月にユタ州のスキー場にあるロッジに、従来型のソフトウェア開発のやり方とは異なる手法を実践していた17名のソフトウェア開発者が集まり、それぞれの主義や手法についての議論を行い、自分たちの提唱している考え方の共通項を探すという試みから始まりました。
この集まりでアジャイルという言葉が使われるようになり、アジャイルの価値と原則について定義されました。
そして、それらを宣言として公開したのが以下の2つの文書になります。
後述でまとめているので、急ぎの方は飛ばしてもらって構いません。
アジャイルソフトウェア開発宣言
アジャイルソフトウェア開発宣言 は、アジャイル開発を行ううえで重視してするべき「マインドセット」についてまとめられています。
私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。
アジャイル宣言の背後にある原則
アジャイル宣言の背後にある原則 は アジャイルソフト ウェア開発宣言 で表明されているマインドセットを実現するため に、従うことが望ましい原則について書かれています。
私たちは以下の原則に従う:
顧客満足を最優先し、
価値のあるソフトウェアを早く継続的に提供します。要求の変更はたとえ開発の後期であっても歓迎します。
変化を味方につけることによって、お客様の競争力を引き上げます。動くソフトウェアを、2-3週間から2-3ヶ月という
できるだけ短い時間間隔でリリースします。ビジネス側の人と開発者は、プロジェクトを通して
日々一緒に働かなければなりません。意欲に満ちた人々を集めてプロジェクトを構成します。
環境と支援を与え仕事が無事終わるまで彼らを信頼します。情報を伝えるもっとも効率的で効果的な方法は
フェイス・トゥ・フェイスで話をすることです。動くソフトウェアこそが進捗の最も重要な尺度です。
アジャイル・プロセスは持続可能な開発を促進します。
一定のペースを継続的に維持できるようにしなければなりません。技術的卓越性と優れた設計に対する
不断の注意が機敏さを高めます。シンプルさ(ムダなく作れる量を最大限にすること)が本質です。
最良のアーキテクチャ・要求・設計は、
自己組織的なチームから生み出されます。チームがもっと効率を高めることができるかを定期的に振り返り、
それに基づいて自分たちのやり方を最適に調整します。
つまり何が言いたいの?
上記2点がアジャイル開発の全てといっても過言ではありませんが、非エンジニアの方や、アジャイル開発に触れたことのない方には、少し難しい文章になっていると思います。
僕なりに、アジャイルソフトウェア開発宣言とアジャイル宣言の背後にある原則を簡易的にまとめてみました。
アジャイル開発を行う上で必要なマインドセット(アジャイルソフトウェア開発宣言)
- プロセスやツールよりも 個人と対話 を重視
- 包括的なドキュメントよりも 動くソフトウェア を重視
- 契約交渉よりも 顧客との協調 を重視
- 計画に従うことよりも 変化への対応 を重視
マインドセットを実現する為の原則(アジャイル宣言の背後にある原則)
- 顧客満足を最優先に考える
- 変化を味方につける
- 短い時間間隔で品質の改善を行う
- ビジネス側も開発者も共通の目標を持つ
- 意欲に満ちた人々でチームを作る
- Face to Faceでの対話を重視
- 動くソフトウェアこそが最も大切
- 無理のないペースを一定に保ち続ける
- 負債を負わないように品質を追求する
- 無駄を徹底的に省く
- 良いモノは良いチームから生まれる
- 定期的に振り返りを実施し、チームの成長を止めない。
Don't DO Agile, BE Agile
上記では、アジャイルソフトウェア開発宣言 と アジャイル宣言の背後にある原則 を簡易的にまとめました。
ですが、アジャイル開発において最も大切はことは
価値を追い求めるために、常に考え続け、改善し続けていく姿勢
だと思います。
これに従えは良いという正解があるわけではなく
原則を基に組織に対して柔軟に適応していくこと
それこそが、アジャイルの本質であると僕は思っています。
さらに詳しく知りたい方は
本記事で興味を持って頂いた方は、情報処理推進機構が提供している書類を見てみてください。
かなり詳しく噛み砕いて説明しているので、更に理解が深まると思います。
参考文献
スクラム開発のメリットとデメリットについて
アジャイル宣言の背後にある原則
アジャイルソフトウェア開発宣言
正しく理解しようアジャイルとスクラム