PBLのためのScrumとチケット駆動開発の融合 ~Scrum+PBL+TiDD~

5,304 views

Published on

合宿形式でのPBLにScrumとチケット駆動開発を導入した.
結果としてタイムボックス,自己組織化に関する課題の改善を図ることができた.
さらに,受講生ごとの経験内容の偏りやプロセス軽視,プロジェクトの定量評価といった既存のPBL課題についても,一定の改善が見られた.
発表:SES2013 WS2 2013/9/11
https://sites.google.com/site/sesjp2013/workshop#ws-2

Published in: Education
4 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
5,304
On SlideShare
0
From Embeds
0
Number of Embeds
3,790
Actions
Shares
0
Downloads
12
Comments
4
Likes
1
Embeds 0
No embeds

No notes for slide

PBLのためのScrumとチケット駆動開発の融合 ~Scrum+PBL+TiDD~

  1. 1. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク ○井垣 宏*,福安 直樹†,佐伯 幸郎‡, 柗本 真佑‡ ,楠本 真二* * 大阪大学大学院情報科学研究科 † 和歌山大学システム工学部 ‡ 神戸大学大学院システム情報学研究科 PBLのためのScrumと チケット駆動開発の融合 ~Scrum+PBL+TiDD~
  2. 2. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク enPiT(Education Network for Practical  Information Technologies) 2© Cloud Spiral partners 2013
  3. 3. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク カリキュラムの基本方針 クラウド開発基礎 (下記演習と合わせて 10日×4コマ @中之島センター) クラウド基礎 PBL(1W) クラウド開発 応用(1W) クラウド発展PBL (3回の対面講義と 分散開発) クラウドを利用したアジャイル開発(Scrum)の学習 -チームでどのように作るか(チームビルディング) -プロセス・プロダクト品質を意識したScrum開発 -継続的インテグレーション クラウドを利用したプロダクトの学習 -クラウドを使って何ができるか -チームでクラウドを使った問題解決をする 前期 合宿前半 合宿後半 後期 クラウド開発演習 3 受講生: 修士課程1年,個人で数100行のプログラミング経験 3
  4. 4. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク クラウド開発基礎及びクラウド基礎PBL(事前知識学習及び合宿前半) 4 DaaS(Desk top as a Service)を利 用した開発 CIツール(jenkins)を利用した 継続的統合とテスト可視化 チケットシステムと版管理システム (svn)を利用したタスク管理 ScrumScrum Product Owner 2種類のバーンダウ ンチャート スプリント計画 振り返り(KPT) チケット駆動開発 チケットシステム (Trac) タスクの記録,抽出 ファシリテーションスキル プレゼンテーション MVCモデルの理解と各層 の実装 Java,JavaScriptによるア プリケーション実装 MongoDB テスト技法 単体テスト,カバレッジ 結合テスト アプリケーションサーバ (Tomcat) Webアプリケーションフレームワー ク(DWR)の利用 Scrum+チケット駆動開発 クラウド環境を利用した 開発手法 Webアプリケーション開発 チームビルディング Scrum Master 会議の進め方,議 事録のまとめ方 スプリントレビュー 概要設計書(ドメインモデル,ク ラス図,シーケンス図,ロバスト ネス図)の書き方,読み方 詳細設計書の読み方(ロバスト ネス図,クラス図,シーケンス図, javadoc,DB仕様書,テスト仕様 等) QADにもとづく プロジェクト管理 Quality(プロダクト・プロセス品質) Assignment(タスク割り当て, 知識伝達) Delivery(納期計画) © Cloud Spiral partners 2013 4
  5. 5. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク Project‐based Learning* 5 コンテンツ主体 プロセス(プロジェク トマネジメント)主体 何を開発するか教 員が決め,プロジェ クトマネジメントも教 員が行う 開発対象は学生が 決めるが,プロセス は教員が管理する 何を開発するか教 員が決め,プロセス は学生が管理する 開発対象もプロセス も学生が管理する Hadj Batita, “A model for an innovative project‐based learning management system for engineering education,”  CALIE'2001 ‐ Computer Aided Learning in Engineering Education, 2001 • 有期性がある • 価値の創造に繋がる開発体験を伴う • 教員による統制された管理・支援を伴う © Cloud Spiral partners 2013
  6. 6. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 期間:8/22~26  ただし,開発期間は22~25の4日間  受講生は最寄りのビジネスホテルに期間中泊まり込み 場所:大阪大学中之島センター  会場は9:00~21:00まで利用可能 受講生:49名  西日本9大学の受講生が参加  スキル等にバラつきあり  ただし,全員が事前知識講義受講済み プロダクトとプロセス  詳細設計書は教員が作成し,与えた  何をどのようなステップで開発するか,プロセスをどうするか は基本的なルール以外は受講生が策定し,実施した © Cloud Spiral partners 2013 クラウド基礎PBL 6
  7. 7. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 7 クラウド基礎PBLの風景
  8. 8. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク アジャイルソフトウェア開発フレームワーク 決まっているのは枠だけで方法論ではない アジャイルソフトウェア開発の多く(76%)で Scrumが利用されている 短期間での実施を前提としたPBLに向いて いる 向いていない点もいくつか有り © Cloud Spiral partners 2013 Scrum Vision One, “State of Agile Development” conducted between July 22nd and  November 1st, 2011. 8
  9. 9. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 以下のフレームワークを8/22~26に実施したPBLに 適用した © Cloud Spiral partners 2013 Scrumフレームワーク Product Owner 顧客 スプリント レビュー 開発 Scrum Master 開発メンバ Product Owner インクリメント スプリント(1~4W) 9 振り返り(KPT) スプリント計画 プロダクトバックログ スプリントバックログ Product Owner
  10. 10. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク スプリントの時間は常に決まっている(タイムボックス)  残業を前提としないため,授業時間が決まっているPBLに向 いている スプリント終了時にデモが実行できることが前提となっ ている  動作するアプリケーションを教員が確認できるため,最後に なって何もできなかったということが無い 自己組織化  全員が何をすべきかを認識し,多能工として開発に貢献する ことが求められるため,PMや特定の開発者に負荷が集中し にくい © Cloud Spiral partners 2013 Scrum+PBLの良いポイント 10
  11. 11. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク スプリントの時間は常に決まっている(タイムボックス)  残業を前提としないため,時間が足りない スプリント終了時にデモが実行できることが前提となっ ている  時間の限られたPBLでは,デモが実行できるところまで到達し ないスプリントがありうる 自己組織化  Scrum Masterや各メンバが何をすれば良いかわからない © Cloud Spiral partners 2013 Scrum+PBLの難しいポイント 11
  12. 12. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 開発時間は固定し,計画・振り返りに余裕をもたせた © Cloud Spiral partners 2013 スプリントの時間配分 スプリント計画(任意) プロダクトバックログ スプリントバックログ 開発 (10:30~17:00) Scrum Master 開発メンバ インクリメント Product Owner 顧客 (教員) スプリント レビュー(15分) 振り返り(KPT) (19時まで) Product Owner スプリント(1日) 12
  13. 13. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク プロダクトバックログの粒度をできる限り小 さくした ただしデモができるレベルで 必ずしも毎日デモが実施できなくとも良い ものとした ただしデモ実施は評価対象とした © Cloud Spiral partners 2013 スプリントレビュー要件の緩和 13
  14. 14. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク Quality  守るべきプロダクト品質の定義  スプリントレビューで評価  守るべきプロセス品質の定義(後述)  タスクごとの完了の定義を明記  プロセスの記録を必須とする Assignment  Assignment制約を守れているか(後述) Delivery  計画通りに開発が進められているか © Cloud Spiral partners 2013 自己組織化のためのプロジェクト目標の策定 14
  15. 15. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク タスクが適切に分担されているかを示す指標 各自が分担するタスクの量や種類がメンバー間で 均等であること 特定の開発者に特定のタスクが集中すること を避ける Specialist ではなく Generalist (多能工)を © Cloud Spiral partners 2013 Assignment 15
  16. 16. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 必須制約 作成(ソース):全開発期間終了時,各メンバのタスク担 当数がチームの平均値*1.2~0.8以内に収まること 作成(単体テスト):全開発期間終了時,各メンバのタス ク担当数がチームの平均値*1.2~0.8以内に収まること レビュー:全開発期間終了時,各メンバのタスク担当数 がチームの平均値*1.2~0.8以内に収まること Optional制約  作成(結合テスト)を各開発者がそれぞれ1回以上実施  結合テストを各開発者がそれぞれ1回以上実施  全開発者が全種類のファイル(*.java, *.html, *.xml)を1回以上作成・編集すること  各開発者がcontroller, model, viewの各パッケージに含まれるコンポーネントそれぞれ1つ以上を対 象とした作成(ソース)を実施すること  各開発者がcontroller, model, viewの各パッケージに含まれるコンポーネントそれぞれ1つ以上を対 象とした作成(単体テスト)を実施すること © Cloud Spiral partners 2013 16 Assignment制約の例
  17. 17. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク DoD(Definition of Done)を教員が策定し, 提示 例: © Cloud Spiral partners 2013 守るべきプロセスの定義 ルール(一部抜粋): • PR1. 作成(ソースコード)or バグ修正(ソースコード)‐>レビューの順に連続して実施されたタスクにおいて, 各タスクの担当者は異なっていなければならない • PR3. 作成(ソースコード)or バグ修正(ソースコード)完了時には,コンパイル可能でかつすべての単体テス トが正常に通る状態で成果物をリポジトリにコミットすること サンプルコード 各種仕様書 レビュー チェックリスト レビュー 報告書 必要に応じて 更新される Done バグ修正 レビュー ソースコード OK NG 任意の状態から発 生する可能性あり 作成 (ソースコード) 作成 (単体テスト) 単体テストコード with  単体テスト項目表 コーディング規約 実装計画書 単体テスト計画書 17
  18. 18. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク チームの目標と守るべきプロセスが明確に なることで,Scrum Master等の作業内容が (少し)明らかになった プロジェクト目標の把握,改善 現状を把握する手段が無い 客観的に確認できる手段がなければ,どうして も適当かつ曖昧になる 教員も評価できない © Cloud Spiral partners 2013 プロジェクト目標における課題 そこで・・・ 18
  19. 19. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 チケット駆動開発(TiDD) – タスクの決定,割り当て,実行といった開発の進捗をチケットに 対する操作と組み合わせて行う開発手法 • チケット – 開発者が行ったタスク内容が記録されるもの 受講生A 作成 割り当て 着手 チケット 受講生X 終了 成果物:class A 種類:実装 着手時刻: 終了時刻: 見積時間: 総時間: 担当者: マイルストーン:UC01 成果物:class A 種類:実装 着手時刻: 終了時刻: 見積時間: 総時間: 担当者:受講生X マイルストーン:UC01 成果物:class A 種類:実装 着手時刻:13:00 終了時刻: 見積時間:0.5H 総時間: 担当者:受講生X マイルストーン:UC01 成果物:class A 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X マイルストーン:UC01 * 小川 明彦, 阪井 誠, "チケット駆動開発," 翔泳社, 2012. 現状の把握や プロセスの振り返りに 非常に有用 19
  20. 20. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 以下のフレームワークにチケット駆動開発を導入した © Cloud Spiral partners 2013 Scrum+PBL+TiDD © Cloud Spiral partners 2013 スプリント計画(任意) プロダクトバックログ スプリントバックログ 開発 (10:30~17:00) Scrum Master 開発メンバ インクリメント Product Owner 顧客 (教員) スプリント レビュー(15分) 振り返り(KPT) (19時まで) Product Owner スプリント(1日) 20
  21. 21. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク スプリントバックログ=チケット群 スプリント計画時にチケット作成 © Cloud Spiral partners 2013 スプリント計画へのTiDD導入 チケットにより,スプリントバーンダウンチャートの 自動生成が可能 プロダクトバックログ スプリントバックログ 21 スプリント計画(任意) 成果物:class A 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class B 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class C 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class D 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class E 種類:単体テスト 着手時刻: 終了時刻: 見積時間:0.5H 総時間: 担当者: スプリント:UC[Login]
  22. 22. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 開発と連動してチケットを操作する 現状把握が可能となる  スプリントバーンダウンチャートの自動更新  Assignment状況の把握  残タスクの可視化 © Cloud Spiral partners 2013 開発へのTiDDの導入 開発 (10:30~17:00) Scrum Master 開発メンバ Product Owner 成果物:class A 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class B 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class C 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class D 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class E 種類:単体テスト 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] インクリメント 22
  23. 23. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 開発と連動してチケットを操作する 現状把握が可能となる  スプリントバーンダウンチャートの自動更新  Assignment状況の把握  残タスクの可視化 © Cloud Spiral partners 2013 開発へのTiDDの導入 開発 (10:30~17:00) Scrum Master 開発メンバ Product Owner 成果物:class A 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class B 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class C 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class D 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class E 種類:単体テスト 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] インクリメント 23
  24. 24. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 振り返りのための判断基準の多くをチケット から取得できる Assignment,DoD 客観的なデータに基づいて 振り返りが可能となった © Cloud Spiral partners 2013 振り返りへのTiDDの導入 振り返り(KPT) (19時まで) 成果物:class A 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class B 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class C 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class D 種類:実装 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 成果物:class E 種類:単体テスト 着手時刻:13:00 終了時刻:14:00 見積時間:0.5H 総時間:1.0H 担当者:受講生X スプリント:UC[Login] 24 教員によるプロジェクト評価にも 活用できるようになった
  25. 25. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 0% 20% 40% 60% 80% 100% A B C D E F G H I © Cloud Spiral partners 2013 Q: 適正レビューコンポーネント割合 ※最後のタスクがレビュー・結合テスト になっているコンポーネント
  26. 26. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 0% 20% 40% 60% 80% 100% A B C D E F G H I © Cloud Spiral partners 2013 A: Assignment制約遵守状況
  27. 27. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 0 5 10 15 20 25 30 35 40 A B C D E F G H I preSprint Sprint1st Sprint2nd Sprint3rd Sprint4th © Cloud Spiral partners 2013 D: チケットあたりの見積誤差 preSprintは8/22より前の7/26(合宿期間外)に実施したスプリント
  28. 28. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 A B C D E F G H I preSprint Sprint1st Sprint2nd Sprint3rd Sprint4th © Cloud Spiral partners 2013 D: 生産性(チケット数比) preSprintは8/22より前の7/26(合宿期間外)に実施したスプリント
  29. 29. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 29 定量的なフィードバック
  30. 30. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 合宿にAssignment制約があったのが,プログラ ム未経験者としてはとてもありがたかったです. おかげで,未経験の状態から最後には人に教え られるようになるところまでなりました. Assignmentのお陰で開発,議論ともに,だんだん と参加できた気になった Assignmentは救済措置の一つなのかなとお もった © Cloud Spiral partners 2013 30 Assignment制約に関する受講生からのコメント
  31. 31. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク まとめ  Scrum+PBL+TiDD  ScrumをPBLに適用する際の課題を改善できた  タイムボックス,スプリントレビュー,自己組織化  PBLにおける下記の既存課題も改善できた  作業負荷や得られる経験の偏り  プロセス軽視  プロジェクトの定量評価 今後の課題  チケットの妥当性  正確なデータをどこまで入力しているか  漏れについては自動チェック可能  受講生の詳細な開発動向とチケットを比較し,ミスを自動検出でき るようにしたい  ある程度は自動化できた(後述) © Cloud Spiral partners 2013 31 まとめと今後の課題
  32. 32. Cloud Specialist Program Initiative for Reality‐based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク 0% 20% 40% 60% 80% 100% A B C D E F G H I © Cloud Spiral partners 2013 Q: コミット‐チケット対応 ※コミット時に、開発者が着手中の チケットが存在しているかどうか

×