アジャイルの定義に関してはエンジニアによって色々なものがあると思われますが、自分の場合一番綺麗に説明されているな・・・と感じたのは以下の記事でも紹介した書籍でした。
現場ではただいまスクラム開発をやっております。
アジャイルやスクラム開発など言葉の定義がいろいろとありますが、スクラム開発の定義を一言で言うと
「比較的小規模な開発単位(スプリント)をゴールとして、細かいリリースを積み重ねていくこと」ということになるかとおもいます。
この開発のメリットとしては、
- 小規模なリリースを積み重ねることでアウトプットを少しずつみせられる
- ユーザーからのフィードバックをもらいやすい
- リリースが1〜2週間となることことで作業に緊張感が生まれやすい
- タスク管理がより容易に可視化される
のようなことが挙げられるかと思います。一般的にはやはりゴールがないWeb系の自社開発系のプロダクトに向くのかなと思っております。
デメリットとしては以下のようなことが挙げられるでしょうか。
- ウォーターフォールのような明確なゴールがないため、ユーザーのフィードバックをそのまま聞いているとプロジェクトが肥大化する
- 仕事を振る側のタスク管理スキルがより要求される
- 変更が激しいので、品質の担保としては自動テストが必須になる
- メンバーのスキルが比較的高い水準を要求される
ただ、私としてはなんちゃってアジャイル(ただ単に仕様書がないだけの開発)が多かったので、こういった開発理念がある開発手法を学べているのは先進的でした。
アジャイルの理念はドキュメントがないことではなく、開発単位は「価値を提供できる最小限のプロダクト」を「小さく(インクリメンタル)すばやく(イテレーティブ)作ること」ですからね・・・
上記の理念を踏まえた開発手法を取り入れていきたいと思います。