うまとま君の技術めも

2015年新卒入社した社畜の勉強内容などなど

アジャイル検定公式テキスト - 読書メモ

アジャイル開発の概要

従来手法との違い

  • イテレーティブ開発 → 短期間で全ての工程を繰り返す
  • スコープ調整 → 固定:リソース・納期・品質、調整:スコープ
  • 常にリリース可能 → 自動化
  • 変化に対応 → 状況に応じてやり方を変える

求められるスキルセット

アジャイル開発に対する基礎知識

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

  • プロセスやツール → 個人との対話
  • 包括的なドキュメント → 動くソフトウェア
  • 契約交渉 → 顧客との強調
  • 計画に従う → 変化への対応

アジャイルソフトウェア開発の原則

  • 顧客満足と価値あるソフトウェアの提供
  • ビジネスの変化に応じた要求の変更
  • 動くソフトウェアを短い時間間隔でリリース
  • 顧客と開発者がプロジェクトを通して一緒に働く
  • 最も効率的なコミュニケーションは直接対話
  • 動くソフトウェアが進捗を図る上で重要
  • 開発ペースを維持することが開発を効率化する
  • わかりやすい設計がソフトウェアの柔軟性を高める
  • シンプルさが本質
  • 最良の成果を生む自己組織的なチーム
  • チームの効率化を定期的に振り返り改善する

アジャイル開発におけるプロジェクト管理

アジャイルチーム

  • メンバー
    • プロダクトオーナー → 製品の責任者、製品の価値を最大化
    • チームリーダー → チームを支援
    • 開発チーム → ソフトウェアを開発
  • 特徴
    • 機能横断的
    • 5 ~ 9人が最適
    • 同一拠点で働く

プロジェクト開始時

  • ビジョン共有
  • プロジェクト方針共有

イテレーション開発

会議

ストーリー

  • 機能ではなく顧客目線で実現したいことや価値
  • 優先順位がついている
  • 見積もりがついている

品質

  • 従来手法:上位工程の不具合を検出する → 上位工程で不具合を出さないように務める
  • アジャイル:不具合を素早く検出し、素早く修正する

開発チームの運営

アジャイルチーム

  • 自律 → チームで考え・チームの目標を達成する
  • 責任 → 顧客を意識する、必要な作業は誰でも行う

良いアジャイルチーム

  • 人間性を尊重する → お互いの思いや考えを理解する
  • 単なる情報伝達ではなく、アナログ情報も含めてコミュニケーションを行う
  • ひとりひとりが自ら考え行動し、チームとして協力しあい目標を目指す
  • チーム位のルールは全員で考え、全員で遵守しようと務める
  • 定期的に振り返りチームの効率を高める

アジャイル開発の各種手法

ペアプログラミング

  • メリット
    • ミス減少
    • 作業の質向上
    • 多角的な問題解決
    • 属人化防止
    • スキル向上
    • 素早い情報伝達

リファクタリング

  • メリット
    • ソフトウェア設計の向上
    • コードの読みやすさ向上
    • バグの検出
    • 開発効率向上

常時結合(CI)

  • メリット
    • 不具合の早期発見
    • 不具合修正コスト低下

テスト駆動開発

  • メリット
    • ソフトウェア設計の向上
    • テストの網羅性向上
    • CIを導入しやすい

感想

  • アジャイル開発全般の知識が分かりやすく網羅されていてとても良い
  • 専門的な表現を極力省き、初心者にも分かりやすくしようと努めている点が良い
  • 検定試験の勉強だけでなく、アジャイル開発の入門書としてもオススメできる内容