初めてアジャイルの案件にアサインされるということで、
とりあえず置いて行かれないようにアジャイルの基礎概念的な物を学習したので備忘。
何かの参考になれば幸いです。
アジャイルとスクラム開発
- アジャイルの手法がスクラム開発
- スクラムが一番使われている
- 従来のやり方(ウォーターフォール)だと無駄が多い
- 各チームに分けて少数で密に連携が取れ、チームごとに品質を担保する
アジャイルマニフェストの4つの価値
- プロセスやツール < 個々と対話
- 包括的なドキュメント < 動作するソフトフェア
- 契約交渉 < 顧客とのコラボレーション
- 計画に従順 < 変更への対応
アジャイルの12の原則
-
顧客満足
- 早期かつ継続的に納品することを優先して顧客を満足させること
- 開発のあらゆる段階で変更を歓迎すること
- 動作中のソフトウェアを頻繁に納品すること
-
品質
- 動くソフトウェアこそが進捗で最も重視されること
- 技術的に優れ柔軟性と拡張性がある設計に注意すること
- シンプルさを求め、無駄なく作れる量を最大限にすることが本質であること
-
チームワーク
- ビジネス側と開発者は日々一緒に働くこと
- 意欲に満ちた人々でプロジェクトを構成し信頼すること
- 最も効果的なフェイス・トゥ・フェイスで話をすること
-
プロジェクト管理
- 持続可能で一定のペースを継続的に維持できるようにすること
- 最良のアーキテクチャ・要求・設計のために、自己組織的なチーム作りをすること
- チームが最も効率を高めることができるかを定期的に振り返り、やり方を最適に調整していくこと
アジャイルを選択する理由
- リソースと時間を元に機能を絞っていく
- 機能実装後にサービス提供可能
- 要求変更など不確実性に関して対応しやすい
- ドキュメントが少ない
- デモで見せる
- 変更を取り入れるため見積しにくい
アジャイルのフレームワーク
-
フレームワークは組み合わせて使われることもある
-
スクラム
- 製品ビジョンに対して下記を繰り返す
- プロダクトバックログの作成、見直し
- スプリントプランニング
- スプリントバックログの作成
- スプリント
- デイリー・スクラム
- インクリメント
- スプリントレビュー
- スプリントレトロスペクティブ
-
かんばん
- 1つのプロジェクトを視覚化してやるやり方
- TODO
- DOING
- DONE etc...
- 1つのプロジェクトを視覚化してやるやり方
-
Extreme Programming(XP)
- チーム全体の計画
- すべてのメンバーが計画に参加
- コーディングスタンダード開発
- コーディング標準で一貫性を維持する
-
ペアプログラミング
- 二人で作業する
-
コードのリファクタリング
- 設計を頻繁に改善して、効率を改善
- シンプルなデザイン
- シンプルなデザインの方が費用対効果が高い
- 小規模リリース
- 顧客に頻繁に機能を提供しフィードバッグを受け取る
- スクラムと統合されて使われることが多い
- チーム全体の計画
-
Scrumban
- スクラム+かんばん
-
Hybrid
- 要件定義とシステムテスト・リリースだけを残し、開発をアジャイルで行う