アジャイル開発勉強会を通じて学んだ4つのポイント
こんにちは、今井です。
以前、社内で「アジャイル開発」の勉強会を開催しました。
今回はその「アジャイル開発」について学んだ内容を4点紹介したいと思います。
■1.アジャイル開発の意味
アジャイルを英語で表すとagileで、「俊敏な」という意味になります。 ということは「アジャイル開発」とは、直訳すると「俊敏な開発」ということになりますね。
■2.イテレーション
アジャイル開発では、イテレーションという作業単位で作業を行います。
- イテレーションは1~2週間で完結する作業単位のこと
- イテレーションを繰り返して完成に持って行く
- イテレーションが終わるごとに、動作確認ができる(ユーザに見せることができる)
■3.イテレーションの作り方
イテレーションとはどのように作るのでしょうか?
3.1.ストーリ
イテレーションを作るにあたって、まずそのプロジェクトの情報を集める必要があります。
ただやみくもに情報を集めるのではなく、アジャイル開発では「ストーリ」という形で情報を集めます。
- ユーザが実現したいと思っている機能を1つのストーリとして記述(100個の機能があれば100個のストーリができる)
- ストーリの内容は、ユーザが理解できる言葉で書くことを心がける(ユーザが理解できない技術用語は避ける)
- 1~5日で完了する内容で記述、その日数を超える内容であれば1~5日で完了する単位に分割する
3.2.イテレーションの作成
- ストーリを使って1~2週間で終わる単位のイテレーションを作成する
- 1イテレーションには、設計、開発、テスト、デバッグを含める
■4.アジャイル開発時のプログラミング
4.1.ユニットテスト
ユニットテストとは、メソッドレベルの粒度が小さいテストのこと
- テストは、開発者がソフトウェアを変更するたびに行う
- テストが失敗したら、どこを壊したかが正確にわかる
4.2.リファクタリング
リファクタリングとは、外から見たソフトウェアの振る舞いを変えることなく、少しずつ継続的に設計を改善していくこと
- リファクタリングは機能の追加はしない、バグの修正もしない。目的はコードをわかりやすくするためである。(スパゲッティーなコードを残さないため、スパゲッティなコードはその後の開発・修正で大きな障害となる)
- コードの意図をつかみやすくしたり、変更がしやすくなるように設計を変更する。(例:わかりにくい関数名をわかりやすい関数名に変更)
4.3.テスト駆動開発
テスト駆動開発とは、開発したい部分のコードを作成する前に、テストコードを先に書くこと(テストコードとは、実際の機能の実験ができるコードのこと)
- テストコードを書いた後、そのテストに耐えうるコードを作成する。
- そうすることで、本当に必要な機能だけを構築できるようになる。
以上、アジャイル開発について学習した内容になります。
今後も引き続きアジャイル開発については学習していきます。
今回不足している部分または新しく学んだ部分がありましたら、次回のブログで書いていきたいと思います。
参考文献 アジャイルサムライ-達人開発者への道