七味の IT ブログ

説明文書を見ても、なんかよくわからない IT技術に直接触って、素人感覚で レポートしてみるページです。

アジャイル

しばしば アジャイル開発手法という物を聞くが、改めてどんなものか確認してみた。

 

自分は xxx 方式 とか、xxx メソッドなる  考え方や手法などに名前をつけて

良し悪しを議論するのが とってもとっても 苦手なので 簡単に。

(あくまで私のイメージや感想なので、正確な用語、メリット、デメリットは他のページをご参考にしてください。)

 

良く比較されるのが ウォーターフォール方式。 まずこれ。

ウォーターフォール

               各フェーズを順番にこなしていく開発手法、イメージとしては下記 

                  f:id:shichimi-n:20180711130810j:plain

 

各フェーズに分けて、これを数か月や1年あるいは数年かけて開発を行っていく。 シンプルで分かりやすい?

よく言われるのが、後半のフェーズで不具合や問題が見つかった場合、手戻りで時間がかかる。

昔は一度要件が固まってしまえば、色々変わることが多くなかったのでこれでも行けた。 (らしい)

 

アジャイル

               各ステップを順番にこなしていく開発手法、イメージとしてはこんな感じ

                    f:id:shichimi-n:20180711130901j:plain

 各フェーズに分けるのではなく各フェーズを細かく繰り返し行いながら仕上げていくイメージ。

 プロトタイプを早々に作って、きめながら、やりながらという感じ。

 各フェーズを繰り返しながら開発してくので仕様変更や不具合に対応しやすい。 逆にあまりに最初にガッチリ決めようとすると、なかなか GOできなくなるので、柔らかい感じの状態で動き始めるらしい。結果、リリースまでの期間を短くできるという物。

 

 

まぁ、どっちが良い悪いという話ではないと思うが、物が作られている間に事情や方針が変わってしまうなど、スピードを求められるご時世ではアジャイルのようなやり方が求められるのは納得がいく。 ただし、これをやるためには各ステップにおける要件チェックやステータスの確認などが欠かせない。(それらコミュニケーションをとる事をスクラム技法? と呼ぶようだ。)

 

ウォーターフォールでは 各フェーズにおいては各作業に特化した人が動けばいいが、アジャイルは各ステップを毎週や数週おき(毎日?)でやる為、全てのフェーズにある程度精通要る人が作業を行う必要がありそうだ。また、何となくのプロトタイプが早々に出てくるのでイメージは湧きやすい気がするが、実際どの工程まで進んでいるのかは逆に見えにくい気もする。

どちらにしても、アジャイルでは、設計だけをする人!とか プログラミングだけをする人! という感じではなく、ある程度どれもできる人(ようは優秀な人)が必要であり、繰り返し行う作業の自動化や、バージョン管理が大事になるとのこと。

で、その為にはまた別の技術や方式が登場するので、この辺で。