ITの言葉やパラダイムというのは、人によって定義が違っていたり、肯定派と否定派がいたり、不安定であることが多いように感じます。多くの人がさまざまな試行錯誤を技術的であったり、思想的であったり、異なる視点で行っているのですから、それは当然のことであり健全といえると思います。
そんな中、アジャイル開発というのも、クラウドと並び見解の異なるものの代表のように感じます。
私は、アジャイル開発をこんな風に理解しています。
あなたがプログラミングの学習を始めた頃、オリジナルのアプリケーションを開発しようと思ったあなたは、設計書など書こうともせず、思いのままに画面を作り、プログラムを書いていったことと思います。そして、少し開発が進むとデバックし、あれっ! と思いながらプログラムを修正する。これを何度も何度も繰り返すことでできあがったアプリケーションは、それがどのようなものであっても、あなたの要求を高い確率で満たし、一定の満足を得ることができる成果として結実したのではないかと思います。
つまり、こんなものを作ろうと考える要求者であるあなたと、開発者であるもうひとりのあなたが、恐らくこれ以上はないと思われるほどの良好なコミュニケーションを行いながら、要求を実現させたからだと考えられます。
要求を定義するあなたは、開発者であるあなたの技量を良く理解しているので、時に妥協をしながら要求を定義することでしょう。また、開発者であるあなたは要求を良く理解しているので、技術的に困難な時には代案を具体的に示すことができるはずです。さらに、作られた画面やロジックは直ぐにレビューされ、要求とのギャップが直ちに修正されていったはずです。
ひとりの頭の中の出来事なのですから、これは当たり前のことです。アジャイル開発という考え方の幹というのを、私はこのように捉えています。つまり、ひとりの頭の中で行われる要求者と開発者の良好なコミュニケーションとそこから生じるアクションを、現実のソフトウェア開発にできる限り適応しようとするものであると。
どうでしょうか? とてもシンプルに理解できませんか?
このような理解のもとにアジャイル開発に触れれば、今までと違う捉え方ができると思うのですが…
0 件のコメント:
コメントを投稿