新卒社員が本気でengineerを目指してみた

エンジニアリング未経験の新卒社員が本気でエンジニアを目指すための勉強記録

開発初心者がスクラムマスターをやるために、アジャイルな開発手法を学んでみた。

概要

開発初心者の私がスクラムマスターをやるために、アジャイルな開発と見積もり作りを読んでアジャイルな開発手法を学んでみたので、ここに簡単にまとめておく。

アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

アジャイルな開発とは

アジャイル開発は、システムやソフトウェア開発におけるプロジェクト開発手法のひとつで、大きな単位でなく小さな単位で実装とテストを繰り返し開発を進めていく手法で、決められた計画に従うよりも起きた変化に適応することに価値をおく! チームメンバーの役割は プロダクトのビジョンを考え、最も価値の高いフィーチャを開発するための優先順位付けに責任を持つプロダクトオーナー。実際に開発を行い、設計やコーディング・テストを行う開発メンバー。運用ルールや進め方をプロダクトオーナー・開発メンバーに説明して効果的な実践を促すことにより、プロジェクトを円滑に進めるための調整役のスクラムマスターがいる。

アジャイルな計画作りとは

アジャイルな計画作りは長期的な目標を達成するための適切なゴール設定と見直しのプロセスのことをいう。 リリース、イテレーション(スプリント)、デイリーの3つを基準に計画を立てる。リリースプランニングのゴールはスコープ・スケジュール・リソースを満たすことで、プロダクトオーナーのスケジュールや予算や品質などを満足のいく条件でプランニングすること。イテレーション(スプリント)プランニングは達成すべき優先度の高い作業を決定すること。デイリープランニング(朝会)は作業の調整と同期化。このようにイテレーションプランニングを何度も繰り返す。 以下ではアジャイルな計画作りに大事なポイントをまとめる!

規模の見積もり(リリースプランニング)

アジャイルな見積もりと計画作りの信条は”規模を見積もり、期間は導出すること!! ストーリーポイント(ユーザーストーリーやフィーチャ、その他の作業の大きさを表す単位)を相対的になにかを基準に見積もる。ベロシティとはチームの進むスピードのことで、1回のイテレーションで完了させたストーリーポイントに合計のこと。 プロジェクトの規模は必要な全てのストーリーポイントの見積もりの合計から、チームのベロシティがわかるとこれで割ることによりイテレーションの数、すなわち期間がわかるのでスケジュールを見積もれる。

イテレーション(スプリント)プランニング

リリース計画で扱う大きなユーザーストーリーをイテレーション計画ではタスクに分解する。 タスクの見積もりの技法としては単位をフィボナッチ数列を使って、その分野に詳しい人から意見を聞くことができるプランニングポーカーを使って、チーム全員で合意できるポイントに達するまで話し合うのがいい。

デイリープランニング(朝会)

デイリープランニング(朝会)ではJIRAのアクティブなスプリントのようなタスクボードでチームの作業を整理し可視化する。またバーンダウンチャート(タスクボードに残っている未完了タスクの見積もり所用時間の合計をグラフにしたもの)を用いて現在のイテレーション作業をトラッキングするといい。 f:id:shorugby14:20190719235958j:plain 朝会のいい進め方についての参考:朝会ガイド

総じてアジャイル開発とメリットとは

  • 規模で見積もってから期間を見積もる! まず規模(ユーザーストーリーをストーリーポイントで見積もった規模)を見積り、そこからチームの進むスピード(ベロシティ)を用いて期間を見積もる。

  • 頻繁に計画を見直す! イテレーションを繰り返しながら頻繁に計画を見直すので、完璧な計画を立てることよりも現時点で有用な計画を立てることに集中でき、開発するにつれて得た知識を計画に反映することができ、計画が有用になっていく。

などを考慮し、優先順位の高いものから開発することで短い期間で最大限の成果をあげ、チームでまわりを巻き込んで開発・見積もりを行うため自立的なチーム作りができる、日々状況をトラッキングしているので発生した問題の検知がはやい、またイテレーションごとに頻繁に計画を見直すので早めに軌道修正ができるというメリットがある!!