なぜアジャイル開発が必要なの?
2018/06/23
何故アジャイル開発が必要なのでしょう?
何故、agile(俊敏な)状態になる必要があるのでしょう?
今までの経験から得たことを整理して自分自身がもっともっと成長する為にも、筆者の考えを記事として書き出してみようと思います。
あと、もう一つのこの記事を書こうと思った理由は「何故アジャイル開発が必要なのか?」と言う切り口をテーマにした記事が、ぱっと見つけられなかったことです。
何をするにしても 「目的、なぜ?」は大切にしたい ですからね。
では、ではいってみましょう〜♪
スポンサーリンク
システム開発の流れ
本題に入る前に、お話の大前提として、システム開発の流れを整理してみましょう。
システム開発には様々な手法、プロセス、フレームワークがありますが、ここでは、原則的なことと言いますか、ザックリとした流れを整理してみます。
▼システム開発のザックリとした流れ
このとてもシンプルな図から分かることは何でしょう?
Input である要求が変化すれば、Output であるソフトウェアも変化する。
もしくは、ソフトウェアも変化しなければならない。
っということが分かると思います。
何故アジャイルな状態になる必要があるのか?
では、この記事のタイトルにもなっている「何故アジャイルな状態になる必要があるのか?」という問いに関して、先の図から分かったこと「要求が変化すればソフトウェアも変化する(しなければならない)」を元に、一つ仮説を立ててみましょう。
プロジェクト中も要求が変化し続ければ、agile(俊敏な)な開発をしなければ価値のあるソフトウェアは出来上がらない。
要求が変化したならば、それに対して、agile(俊敏な)な対応をしなければ、ソフトウェアは変化した要求に対応出来なくなってしまい、価値のあるソフトウェアにはならないですからね。
プロジェクト中も要求は変化し続けるのか?
先ほどの仮説の前提である「プロジェクト中も要求が変化する」のか?
これが検証出来れば「要求が変化し続けるプロジェクトではアジャイルな開発が良い」ということが実証されると思います。
要求は変化する性質を持っている!?
結論から先に言っちゃいますが、僕は「要求は変化するものだ」と思っています。
それは、何故か?その理由を下記に書いていきます。
要求が変化する理由を一言で言うと…
開発の途中でも、要求の補完が継続するから。
です。
では、何故「開発の途中でも、要求の補完が継続する」のでしょう?僕の考えは下記のとおりです。
- 市場が変化するから
- 環境が変化するから
- 人は自身の考えを正確に伝えるのが苦手だから
- 知識は増えていくものだから
市場が変化するから
文明が発展するスピードはとても早いです。開発プロジェクトの途中で、下記のような事が発生する可能性も充分にあります。
- スマートフォンが急速に復旧して、開発中のソフトウェアの価値を高める為にそのハードウェアに対応が必要となる
- ビッグデータ活用のニーズが大きくなり、開発中のソフトウェアの価値を高める為にビッグデータの収集、分析機能が必要となる
環境が変化するから
これも、プロジェクト進行中に普通にありますよね?
- プロジェクトで採用していたインフラ環境のコストがとても高くなり、別のインフラ環境に変えたい
- プロジェクトオーナーとなる企業のTOPが方針を変更し、リリース日程を早めなければならない
- プロジェクトオーナーとなる企業のTOPが方針を変更し、今まで想定していなかった機能が必要になる
人は自身の考えを正確に伝えるのが苦手だから
この事をわかりやすく纏めた図としては「オレゴン大学の実験」の図が有名ですね。
「オレゴン大学の実験」でググれば、図が出てくるのですが、ライセンス的にこの記事に掲載するのは無理っぽかったので、ここでは図のポイントの説明だけにさせて頂きます。
先ず、この図は「多様なシステム開発プロジェクトの姿を表現した絵」です。
そして、この図の言いたいことは下記の 2 つだと思います。
- 顧客が説明した要件自体が、自身が必要としていたものからズレていたこと
- 開発者側も、それに気づけず、出来上がったモノがとても残念な結果となってしまったこと
知識は増えていくものだから
プロジェクトを進めていくと企画者だったりプロダクトオーナー/マネージャーは、そのテーマについてどんどん知識が蓄積されていきますよね。開発側にもどんどん知識が蓄積されていきます。
- ソフトウェアの利用者の気持ち、置かれた状況に対する理解が深まり、プロジェクト開始時には思いつかなかった新しいアイデアを機能化する事が必要となった
- ソフトウェアの利用者の気持ち、置かれた状況に対する理解が深まり、プロジェクト開始時に必要だと思っていた機能が必要ではなくなった
- 対象の技術要素への理解が深まり、プロジェクト開始時とは違う、もっと良い実現方法が分かった
色々な性質を上げましたが、僕がほとんど全てのプロジェクトに影響を及ぼすのは「知識は増えていくものだから」だと思います。
さいごに
いかがでしょう?これだけの「要求が変化しやすい性質」があると思うのです。
っという事は「プロジェクト中も要求が変化し続ければ、アジャイルな開発をしなければ価値のあるソフトウェアは出来上がらない。」という仮説が立証された事になると思います。
アジャイル開発の目指している目標は…
変化する要求に、俊敏に対応することで、システムやプロダクトの価値を最大化する。
という事なので、要求が変化しやすい性質をもっている以上、アジャイルな開発を行う意外の選択肢はないでしょ!?
っと思うわけです。
そして、「アジャイルな開発」を実際の行動、習慣に落としこむ為にも、アジャイルの4つの価値や、12の原則を何度も何度も見返して、そこに書かれていることを確実に自分の腹に落としこむ必要があるのだと思います。
この記事を読まれたあなたにオススメの記事♪
■お薦めの【アジャイル・スクラム本】16冊を学習レベルごとにご紹介