##背景
開発手法はキタミ式で少し読んだくらいだったので、まとめてみることにしました。
##1.アジャイル開発とは?
2000年代以降〜現在までで最もポピュラーな開発手法です。この開発の特徴はスピード感を持った開発ができることでアジャイルというのも素早いという意味があります。
まず初めにアジャイル開発は大まかに仕様や要件を定義します。仕様をあえて決めないことで、途中で仕様が変更しても対応できるようにしています。そして「計画」→「設計」→「実装」→「テスト」のイテレーションというサイクルを1~2週間単位で繰り返し、開発を進めていきます。
アジャイル開発向けのプロジェクトとしては後々、変更がたくさん起こることが予想されるプロジェクトに向いています。
ちなみにアジャイル開発だけでも3種類の開発の手法(スクラム、エクストリーム・プログラミング、ユーザー機能駆動開発)があります。
##2.スクラム
スクラム開発とはアジャイル開発の中でも一番ポピュラーな開発手法で、メンバーが計画し、イテレーション単位で開発に問題がないかを確かめながら開発していきます。
#3.エクストリーム・プログラミング (XP)
XPでは4つの価値を柱に開発していきます。
その柱というのは「コミュニケーション」、「シンプル」、「フィードバック」、「勇気」です!最近はこの4つに「尊重」が加わったそうです。これはネタではなく、ちゃんとWikipediaでも説明がされています。この手法は簡単に説明すると最初に決めた計画よりも途中の変更を重視しようという開発手法です。どちらかというとプログラマー目線の開発の仕方です。
##4.ユーザー機能駆動開発(FDD)
FDDは顧客主義の開発手法でログイン機能だったり、購入機能のようなユーザー機能を中心に計画を立て設計や開発を行います。
##メリット
アジャイル開発のメリットとしては不具合を少ない工数で抑えることができるという点です。アジャイル開発以前のウォーターフォール開発は最初の設計を重視して開発をするため、トラブルによっては工数が嵩みがちになります。
そしてアジャイル開発はユーザーのフィードバックを受けながら開発を進められることができるので、需要に合ったサービスの開発を行いやすいです。
##デメリット
デメリットとしては変更がたくさんあるので開発の納期が把握しづらいことです。一方ウォーターフォール開発であれば最初の計画に遵守しながら開発するので開発スケジュールがかなり把握しやすいです。