agile development design by pattern language
DESCRIPTION
Agile Japan 2013で実施したワークショップ。時間オーバー... パタン・ランゲージの説明は全くせずに通したWS。TRANSCRIPT
アジャイル開発のデザイン〜パタン・ランゲージを用いて〜
2013/05/25Agile Japan 2013 四国・愛媛サテライト
Agile459/カルチャーワークス懸田 剛 / @kkd
アジャイル開発のデザイン?
=どうやって現場でアジャイル開発を始めるか
いきなり大きな変化を起すのは困難
まずは小さな変化から始める
どのようにはじめるかの練習
状況設定Rubyの特徴を活かした開発を実証することを目的に、県が公募し採択された実証事業プロジェクト。エンドユーザは県内の製造業メーカーで、自社工場内の日常点検をシステム化してコスト削減することが目的であった。開発会社はRubyの特徴を充分に活かした開発ができておらず、またエンドユーザも従来の内製システムに課題を抱えており、両者がRuby、アジャイル型開発、SIerと協働開発にチャレンジしようとしている。実証事業のため、エンドユーザと開発会社間では契約は結ばれていなく、県の予算で開発をまかなうことになっている。 アジャイル型開発について初の試みである。開発メンバーのうち2名がRubyの開発経験がない状態で開始した。 プロジェクト期間は5ヶ月間。当初2ヶ月は同一拠点で開発を行うが、途中から分散拠点で開発することになっている。
ユーザ企業
チーム
SIer
人物設定
プロダクトオーナー
初心者利用者
システム部門工場
初心者
経験者
経験者
5分状況についての質問気になる状況を質問してください。
可能な所は回答します。
未来の成功イメージ
(1) リリースの3ヶ月後に、顧客/利用者にどのような言葉をかけてもらいたい?
(2) リリース打ち上げでPOのどんなメッセージを聞きたい?
(3) リリースが完了したその瞬間どんな想いを抱きたいか?
心の中から沸き上がる表現へ~しなければならない
~でないようにする
(自分の意志で)~したい
~のようにしたい
~を達成する(~を達成した結果)~になりたい
5分間未来の成功イメージは?
(1) リリース三ヶ月後顧客の言葉
(2) 打ち上げのPOの言葉
(3) リリース直後の自分の感情
具体的な台詞、リアルな言葉で。
成功イメージ
未来の成功イメージの実現の障害になりそうなことは?
ユーザ企業
チーム
SIer
どこに障害がありそう?
プロダクトオーナー
初心者利用者
システム部門工場
初心者
経験者
経験者
5分間未来の実現を妨げる障害は?
顧客の言葉の実現の障害
POの言葉の実現の障害
自分の想いの実現の障害 障害
対応策は何か?期待する結果は?
対応策のヒント(ここに限りません)日次ミーティング 毎日、時間を決めて短い時間で関係者が顔を合わせる。その結
果、チーム全体が日々の必要な情報を共有できるようになる。
ペアプログラミングチームの中で知識やコードの共有ができていない場合は、ペアを組んで作業をする。その結果、開発チームの中で業務知識やコードについての知識が共有でき、品質や作業効率も向上できる。
タスクボードチームのタスク状況を可視化するために、タスクカードを用意し、状態を管理するタスクボードにはりつける。その結果、だれがどのタスクを担当しているか、どこかに異常が起きていないかなどをチーム
全員が把握できるようになる。
ユニットテストの自働化
動作しているソースコードに手を入れることに不安がある場合は、ユニットテストを自動化する。その結果、修正をしても、ユニットテストコードを実行して結果を見ることで、元のコードが壊れていないかを確認することができ、万が一不具合があった場合でもすぐにわか
る。
5分間障害への対応策
自分達できそうなこと
すぐに開始できそうなこと
障害をまとめて解決できそうなこと
対応策
実施する上での懸念点は?
問題の発見が遅れてしまう
毎朝ミーティング
朝に弱いメンバーがいる
大丈夫?
8分間実施の懸念点と対策再検討
実施する上で考慮しないとまずい点
本当にできそう?
懸念点を考慮した対応策を再検討する
懸念点
対応策再検討
5分間対応策に名前を付けよう
「一言でわかる」よい名前を!!
必ず名詞で。難しければ体言止め。
「~する」は不可
対応策名前
ストーリーを描く
これまでの結果を元に未来からみたストーリーを描く
説得力はあるか?実現したいと思え
るか?
大きな問題がプロジェクト終盤に起きることなく無事にプロジェクトを完了させたかった。問題発見の遅れが発生しないように毎朝のスタンドアップミーティングを開いてメンバーが抱えている問題を安心の場を作り夜も眠れない不安も気兼ねなく開示できるようにした。メンバー全員がちょっとした事でも気軽に全員に相談できるようになり問題を一人で抱えることがなくなった。
納品三ヶ月後にお客様に「あのサービスの利用者にとても好評です。ありがとう。」と感謝の言葉をかけてもらいたかった。納品後に利用者の期待とのギャップが生まれないように、早期からイテレーションレビューに加えて真の利用者レビューを定期的に行いフィードバックを受けるようにした。利用者の生の声を聞けるようになり、思い込みで開発することがなくなった。利用者から直接意見を貰えると開発にやりがいが出てきた。
5分間ストーリーを書こう!
[望む未来]を実現したかった。[妨げとなる問題]に対応すべく[対策名]を行うことで[期待する結果]を実現できた。
全員で考えよう「過去形」で書く単に言葉を繋げて文章
を書くだけでなくシーンを想像して表現してみる
2分×全チーム各チーム発表ストーリーを読み上げる
各対応策の補足説明をする
気づいた点があれば
この後の流れは?
定期的に検査・更新する
幅と深さを広げる
状況の変化に合わせ変えていく
チーム内から外へ技術や製品へ
ストーリーを実現する
少しづつ段階的に実施
未来をみつめ続ける
実現したい未来を忘れない
皆さんの現場で...自分の望む未来を語っていますか?
起こりそうな障害を語っていますか?
現実に即した対応策をとっていますか?
全員で望む未来をみつめながら行動していますか?
状況望む未来
障害期待結果
解決
懸念新たな懸念
http://sec.ipa.go.jp/std/ent02-c.html
まとめ
今日のおさらい望ましい未来を描く
未来を妨げる障害を見出す
障害への対応策を考える
懸念点も含めて
対応を検討
対応策に名前を付ける
これまでをストーリーとして書く
状況を把握する
未来を自分達の言葉に
現実に未来を引寄せる