Clien Agile
感想
アジャイル開発を行うことで保守性を高めるにはどういう設計を行えば良いのか疑問に思った
自分の仕事だけでなく、チームに貢献できるようになるためには読むといいと思った
むやみにアジャイルをチームに取り入れるのではなく、チーム全体に浸透させ、一人一人が意識して取り組めると良さそうと思った
マネジメントはPMやリーダーだけが意識すればいい問題ではない
プログラマー個人個人は、毎週・毎日・毎時・毎分、前週・今週などデータを蓄積していき、これらの結果を見ながら見積もりをし、適切に調整して仕事を進める
スクラム開発
アジャイル開発手法の1つ
タイムボックス(固定の短い期間・時間)に分けて開発する
要求を価値やリスクや必要性を基準にして並べ替えて、その順にプロダクトを作ることで成果を最大化する
現状や起こっている問題を常に明らかにする
スプリント(短距離走)
3つのロール
スクラムマスター
スクラムガイドで定義されているようにスクラムを確立する
プロダクトオーナー
Whatを担当
プロダクトの責任者
開発チーム
Howを担当
モノを作る
「要件定義チーム」、「テストチーム」などと役割を分けない
5つのイベント
スプリント
計画、設計、開発、テストなどを行う、区切られた短い期間
スプリント計画
スプリントで何を達成するかを決める
開発チームがどうやって実現するかについて計画を立てる
デイリースクラム
スプリント目標に向けた進捗状況を検査し、今後の計画作業を調整する
毎日行われる
スプリントレビュー
スプリントレビューの目的は、スプリントの結果を検査し、将来の適応を決定する
スプリント回顧展
品質と効果を高める方法を計画する
BDD(振る舞い駆動開発)
振る舞いの検証に焦点をあてた開発方法
仕様(Spec)通りの振る舞いをするかをテストコードとして書く
要求仕様に近い形で、自然言語を用いながらテストコードを記述する
特徴
テストケースを自然言語に近い記述で行う
連続したストーリーのテストを行う
ユーザーの視点でテストを記述できる
Given(前提条件)、When(操作・インプット)、Then(結果・アウトプット)の3つを記述したテストコードを記述する
【前提条件】であるときに(場合)、【操作・インプット】すると、【結果・アウトプット】になる
x should y
テスト自体を「対象(x)がどうである(y)べきか?」と表現する
TDD(テスト駆動開発)との違い
TDD: 作成したプログラムの動作が正しいかどうかを検証するために行う「テスト」
TDDでいうユーザーはこれから実装するモジュールを使う人も含む
カンバン方式
アジャイル開発手法の1つ
かん(見える), ばん(板・カード)
課題を細かくし、小さくした課題をカードのように並べる
To Do、進行中、コード レビュー、完了などのワークフロー状態に分けて管理する
スクラムとの目的の違い
カンバン
タスクに集中する
スクラム
スプリントを首尾よく完了する