読者です 読者をやめる 読者になる 読者になる

albatrosary's blog

Azure と Angular と Wercker CI とか

アジャイル研修会(京都アジャイル勉強会に学んだアジャイル実践方法)

agile

アジャイル」という言葉はメジャーにありましたが、実際にアジャイルでプロジェクトを回している所は少ないんじゃないのではと考え、実際に社内研修でアジャイル開発を行ってみました。研修内容は「京都アジャイル勉強会 春の特別編」そのもので、その経験を「アジャイルサムライ」を読みながら再現しました。

京都アジャイル勉強会のみなさまには、

  1. 学ぶチャンスを与えて頂いたこと
  2. アジャイルの本質を実体験で教えて頂けたこと

に対しこの場をお借りして感謝致します。

 

どのような研修をしたかというと makedo という工作キットを使ってのアジャイル体験です。アジャイルの中でも特に

  1. インセンティブデッキ - なぜここに呼ばれたか・エレベータピッチ
  2. タスクだし - かんばん・やらないことリスト・プランニングポーカー
  3. イテレーション(デイリースクラム
  4. KPT

これらは、アジャイルの中でも入りやすく最も基本的なことと思います。

 

チーム分け

研修に参加したメンバーは13名、初めに自己紹介を行いチーム分けを実施します。しゃべる練習です。チームは4チームでランダムに構成。

 

インセンティブデッキ - なぜここに呼ばれたか

この研修で何を作るのか?

その要件がこの「なぜここに呼ばれたか」にあたります。

ストーリーは以下のようなものです。こちらも「京都アジャイル勉強会 春の特別編」での内容をそのまま使用しました。

 

----------------------------------------------------------------------------------------------------

これは、国存亡の危機を救うためのプロジェクトである。

2064年、今我が国は地球上でのアメリカ・中国・ロシアとの鉱物獲得競争に破れ、あと数年で日本にはレアメタルが無くなる状態にある。そこで日本国政府は、特命として数社に対して鉱物発掘調査および発掘・運搬を命じた。

我が国は、既に有人ロケットの打ち上げには成功しており、月面基地も既に出来上がっている。この月面基地は、天体観測用の基地であるため鉱物調査等のために用いるには役不足の施設である。作業を行うため10人程度が住む環境は整っており、鉱物発掘基地を作るために一時的に人が滞在することは容易である。また、建設のために機材を月面へ運ぶための手段は整っている。

その他の要件

  1. 現在ある月面基地に施設を増設する形式を取ること
  2. 部分的にも、いちはやく稼働させる必要がある
  3. 経費を極力抑える工夫を施すこと
  4. 稼働が上がったときに、火星への中継基地となること
  5. 発掘調査中に資源が見つからない場合、容易に施設を移せること

----------------------------------------------------------------------------------------------------

 

このテーマについて想像以上にみんな真剣に取り組んでました。システム開発では要件にあたる部分で、ここからテーマに対してどう解釈し発想するかが提供するものの「価値の差」になると思います。

研修をやり遂げるためには唯一「モチベーションを下げないこと!」です。

 

インセンティブデッキ - エレベータピッチ

30秒程度で自分たちのプロダクト(プロジェクト)をアピールする。エレベータピッチのひな形はアジャイルサムライでも記載があるので確認してください。

f:id:albatrosary:20130601162652p:plain

 

所用時間としては、30分という時間の中で各チームが作り上げるものを考えてもらい、その優位性、必要性などをまとめてもらいます。30秒の話にまとめるためには色々なことを考える必要があります。

  1. 要件の再確認、相手が何を望んでいるのか
  2. 自分達は何を構築すればいいのか
  3. 期限内に何が作れるか
  4. 周辺事情の把握

これ以外にも

  1. イントネーションなどのしゃべり方
  2. 話すテンポ

が重要です。内容が同じでもしゃべり方で受ける印象がだいぶ異なります。印象的だったのは話すペースが掴めず、途中噛む方もいました。棒読みも。

 

タスク出し及び分割

やるべき内容が定まったところでタスク分割を行います。45分でタスク出し及びタスク分割を行います。今回はデイリースクラム3回を3セットという内容でイテレーションを回します。タスク分割の条件は

  1. ひとつのタスクで有用なものを納品すること
  2. 9イテレーション使うこと
  3. 途中で仕様変更もあり得る

タスク分割は難易度の高い作業です。最終系のイメージがまちまちで作るものもイメージが出来ていない。その状況でのタスク分割ですので当然です。

ここにある意味狙いがあります。要件があまり把握出来ていない。ゴールを決めきれてないプロジェクトは失敗する。失敗しないためにはどうしたら良いのかを思考することが重要です。ここでアジャイルのメリットを認識してもらいます。

 

f:id:albatrosary:20130601165423p:plain

 

プランニングポーカー

各タスクに対する工数はプランニングポーカーを利用します。スマホにはプランニングポーカーのソフトもあるので利用するのは簡単です。

プランニングポーカーを実施するメリットは

  • 実際に作業するメンバーが見積もるため工数に対する認識合わせができる
  • 見積もり過程において話し合いが行われるため成果物に対する認識合わせができる

と考えます。

具体的なプランニングポーカーのやり方をまとめると下記の通りです。

  1. 全員プランニングカード(工数)「1,2,3,5」を持つ。今回は4枚のカードとした
  2. 基準となる数字を「3」とする
  3. 一つの「タスク(価値のある成果物)」に対して同時にプランニングカードを出す
  4. 最大値と最小値で意見を述べ、どうしてそういう数字を想定したのか議論する
  5. 数値が全員一致するまで(3)(4)を繰り返す

f:id:albatrosary:20130601165722p:plain

 

イテレーション

いよいよ研修のメインであるイテレーションです。デイリースクラムとして

朝礼   2min 
作業 10min
夕礼   1min 

を三回行い終了後 KPT を用いて振り返りを行います。振り返りでタスクの見直しを行ってもらいます。

更に KPT 中、各チームに対しレビューを行い仕様変更、要件変更、機能追加などを行います。ここでアジャイルが柔軟に対応できるものなのかそうでないのかを体験してもらいます。

このイテレーションを三回まわし、合計9回のスクラムを実施します。

 

KPT による振り返り

最後の KPT で各チームから出たもので印象的だったものを下記に示します。アジャイルい対するものではなく作業上の振り返りです。

良かった点として

  • 使ってもらえるものを早くリリースし「自分達の方向性が正しいか」の再確認を行うことができた
  • 話し合いによりチームの方向性をメンバー内で共有できた
  • プランニングポーカーで相対的に見積もっているので、早い段階で全体工数に誤りがあるのか無いのかを確認でき、修正が容易であった
  • 要件を間違えて解釈したが早期に方向修正できた
  • デイリースクラムでのミーティングで話し合いを行うため作業効率がよかった

悪かった点として

  • 要件から離れたものを作ってしまったため、時間に追われる対応になってしまった
  • 工数を3倍以上掛かっているタスクが発生してしまった
  • 何をしていいか分からず、手が止まってしまった
  • 作業に夢中になりミーティング中も作業してしまった

実務への適用として

  • タスク分割の難しさ
  • 工数を算出の不確かさ及びその修正
  • 要件を間違えて捉えたときのリカバリー

に関しては難易度の高い「調整ごと」ということであるという共通認識ができたと覆います。 

 

最後に

この研修を行った結果、感のいい人はアジャイルの良さ、注意点、必要なことが明確になったのではないかと思います。事実、休日にやることを家族でタスク出しを行いデイリースクラム、KPTを行っている方もいらっしゃるようです。プロジェクトですが、アジャイルの本質を理解したメンバーはタスク出しや工数出しKPTなど自発的に行う体質が出来上がりました。

まだまだ、アジャイルに不慣れなチームでは、プロジェクト・キックオフとして必ずアジャイル研修を行うのは有意義なことと考えます。