ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

アジャイルソフトウェア開発?

昨日某枠さんあたりからおすすめがあったので「アジャイルサムライ」という本を買ってみました。今月の読書はこれにしようと思います。おすすめとあれば読まない手はないですね。

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−


ちょうどソフトウェア開発のうんたらかんたらで授業取っていたので、復習も兼ね、このフォーマットでアジャイルソフトウェア開発とは」でひとつ記事を書いておきます。要するにネタがないんだよ言わせんなはずかしい

アジャイルソフトウェア開発とは

アジャイルソフトウェア開発とは、「agile(迅速な・俊敏な)」という名を冠するとおり、ソフトウェア工学において迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称である。「エクストリーム・プログラミング」をはじめ様々な開発手法が考案されているが、ほぼすべてに共通して「小さいステップを反復して実行する」ことによるリスクの低減を目指す点が挙げられる。
アジャイルソフトウェア開発を「ウォーターフォール」と「スパイラルモデル」という他のソフトウェア開発手法と比較してみよう。「ウォーターフォール」とはソフトウェア開発手法としてはポピュラーかつ古典的なもので、しっかりとした事前の計画により、設計から保守までの開発のサイクルが滝(ウォーターフォール)のように一方通行となることを期待する手法である。先を見据えた計画と綿密なデザインを重視しているが、一度間違いが起きたときはその修正にかかるコストが大きいという欠点があった。そこで、後戻りをしたときのコストを低減するべく考えだされたのが「スパイラルモデル」である。スパイラルモデルは設計と実装を繰り返し実行することでソフトウェアの開発を進めていく。これにより、部分的なリリースや、間違いが発覚したとき、ウォーターフォールによる開発と比べローコストですばやく修正することが可能となる。アジャイルソフトウェア開発とは、スパイラルモデルの「繰り返し実行する」という手法を推し進め、急な環境の変化や突発的な問題への速やかな対処を強く重視した手法と言える。
アジャイルソフトウェア開発における代表的な手法として「エクストリーム・プログラミング(以下XP)」が挙げられる。XPは事前の計画よりも柔軟な対応を重視するため、テストの自動化など、変更に対するコストを極力下げるための準備が必要である。これを怠るとXPはうまく機能せず破綻する。XPには5つの「価値」と19の「プラクティス」が定められている。価値を高めるためにプラクティスを実践することがXPの基本となる。ただし、現実にすべてのプラクティスを実践するのは難しいところもあるため、特に効果があるとされる「テスト駆動開発」と「リファクタリング」のみ行なっている事例もある。
アジャイルソフトウェア開発は、比較的少人数のプロジェクトにおいてその真価を発揮すると言われている。アジャイルソフトウェア開発の手法を私の研究や、個人的に作っているツールやソフトウェアなどの開発にもうまく適応させることで、よりよいものを素早く作れるようになるのではないかと期待している。