Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

アジャイル開発のススメ@香川大学

4,733 views

Published on

情報処理学会四国支部講演会

Published in: Technology
  • Be the first to comment

アジャイル開発のススメ@香川大学

  1. 1. 2 https://en.wikipedia.org/wiki/Frederick_Winslow_Taylor
  2. 2. 科学的管理法 3
  3. 3. 科学的管理法 4 https://en.wikipedia.org/wiki/Modern_Times_(film) https://en.wikipedia.org/wiki/The_Thinker http://www.sherlockology.com/props/sherlocks-magnifier
  4. 4. チームのリーダーといえば? 5 Niels Pflaeging『Organize For Complexity』 いろいろ 知ってるはず 本当に?
  5. 5. 6 アジャイル開発
  6. 6. 自己紹介 ‣角 征典(@kdmsnr) ‣ワイクル株式会社(取締役、プログラマ、コンサルタント) •アジャイル開発/リーンスタートアップの導入支援 ‣東京工業大学大学院理工学研究科(特任講師) ‣書籍翻訳
 
 
 
 7
  7. 7. 代表作 8
  8. 8. 最近の成果 9
  9. 9. 11月の成果 10 http://www.slideshare.net/kdmsnr/writing-a-paper-seven-suggestions
  10. 10. チームのリーダーといえば? 11 Niels Pflaeging『Organize For Complexity』 いろいろ 知ってるはず 本当に?
  11. 11. もう21世紀だぜ ‣「答えのない時代」とか言われる ‣でも、データはものすごくある •ビッグデータの時代!! ‣答えが見つかるものと見つからないものがある? •その違いは何だろう? 12
  12. 12. おしごとの複雑さ Simple Complex Anarchy Com plicated どうやって 作ればいいか 何を作ればいいか 不確実 確実 確実 不確実 13 The Stacey Graph
  13. 13. 2つの「複雑」さ 14 http://www.amazon.co.jp/dp/B0027P8TFY http://www.amazon.co.jp/dp/B000QVMJRK Complicated (全体=∑部分) Complex (全体 部分)
  14. 14. https://www.youtube.com/watch?v=xid9G9ehSH8
  15. 15. 美味しい焼きそば作り 最高に美味しいうどんを作る 手順を用紙に自由に記述してく ださい。 16 最初は1人で考えてください。 こちらが合図したら、 周囲の人たちと話し合ってください。 産業技術大学院大学「情報システム開発特別講義」より
  16. 16. 美味しいうどん作り(答え) 17
  17. 17. 20分経過 18
  18. 18. うどんとソフトウェアは違うよ? 19
  19. 19. うどんのように作るのは大変 ‣じゃあどうすればいいの? •やりたい/作りたいことを集めよう •大切なもの/できるものから作ろう 20 }とりあえず このへん作る?作りたいものを 集めて 順番に重ねる
  20. 20. 「石」が示しているもの ‣ユーザーストーリー •ユーザーが必要としているソフトウェアの機能 や性能のこと 21
  21. 21. よく使われるフォーマット ‣1. (役割)として、 ‣2. (機能や性能)が欲しい。 ‣3. それは(目的)のためだ。 ‣4. 機能や性能の条件いろいろ 22
  22. 22. ユーザーストーリーの練習 23
  23. 23. ユーザーストーリーを書いてみよう① 大学生/院生向けのアプリをこれ から作りたいと思います。 1行目「(役割)として、」の部 分を自由に埋めてください。 ex. バイトが忙しい大学生として、 ex. アニメが大好きな大学生として、 ex. 研究テーマが決まらない大学院生として、 24 3分間
  24. 24. ユーザーストーリーを書いてみよう② 1行目のユーザーの気持ちで、 2行目「(機能や性能)が欲し い。」を自由に埋めてください。 ex. スケジュール管理機能がほしい。 ex. アニメのまとめサイトがほしい。 ex. 研究テーマの推薦システムがほしい。 25 3分間
  25. 25. ユーザーストーリーを書いてみよう③ 2行目があればどうなりますか? 3行目「それは(目的)のため だ。」を自由に埋めてください。 ex. それはもっと授業に出席するためだ。 ex. それは人気のアニメを知るためだ。 ex. それは卒業するためだ。(←深刻) 26 3分間
  26. 26. ユーザーストーリーを書いてみよう④ 何かこだわりの条件があれば 4行目「機能や性能の条件いろ いろ」を自由に書いてください。 ex. iPhone/Androidの両方で使える ex. オフラインでも操作可能 ex. プライバシーに配慮すること 27 3分間
  27. 27. プロダクトバックログ 28 作りたいものを 集めて 順番に重ねる }とりあえず このへん作る? }次はここ? }次はここ? }次はここ?
  28. 28. ソフトウェアの進化 29 1~4w 1~4w 1~4w 1~4w
  29. 29. ソフトウェアの進化に必要な技術 ‣リーダブルコード ‣バージョン管理 ‣テストの自動化 ‣リファクタリング ‣継続的デリバリー 30
  30. 30. (応用編)可逆性を確保せよ 31 https://www.facebook.com/notes/kent-beck/taming-complexity-with-reversibility/1000330413333156
  31. 31. Facebookで行われていること ‣Development servers ‣Code review ‣Internal usage ‣Staged rollout ‣Dynamic Configuration ‣Correlation ‣IRC ‣Right hand side units ‣Shadow production ‣Frequent pushes ‣Data-informed decision ‣Advance countries ‣Soft launches ‣Double write/bulk migrate/double read 32https://www.facebook.com/notes/kent-beck/taming-complexity-with-reversibility/1000330413333156 (あとで読んでね)
  32. 32. ここで昔ながらのやり方を見てみましょう 33 https://ja.wikipedia.org/wiki/Vモデル 本当に できるの?
  33. 33. 進化を見通すのは難しい 34 Mike Rother『Toyota Kata』
  34. 34. ガンガン失敗しましょう!! 35 (とはいえ、いのちだいじに)
  35. 35. 40分経過 36
  36. 36. ここから本題 37
  37. 37. チームのリーダーといえば? 38 Niels Pflaeging『Organize For Complexity』 いろいろ 知ってるはず 本当に?
  38. 38. 理想のチームとは? 39
  39. 39. リーダーなんかいらない 40 Niels Pflaeging『Organize For Complexity』 (あくまでもComplexな環境の話)
  40. 40. 41 https://hbr.org/2012/04/the-new-science-of-building-great-teams/ar/ Harvard Business Review (ハーバード・ビジネス・レビュー) 2012年 09月号
  41. 41. 個人スキル <<< チームスキル 42 https://hbr.org/2012/04/the-new-science-of-building-great-teams/ar/ Harvard Business Review (ハーバード・ビジネス・レビュー) 2012年 09月号
  42. 42. 誰かが喋りすぎるのはよくない 43 https://hbr.org/2012/04/the-new-science-of-building-great-teams/ar/ Harvard Business Review (ハーバード・ビジネス・レビュー) 2012年 09月号
  43. 43. コンウェイの法則 ‣組織はアーキテクチャに従う ‣アーキテクチャは組織に従う 44 複雑で進化するソフトウェア 複雑で進化する組織
  44. 44. ソフトウェアの進化 45 1~4w 1~4w 1~4w 1~4w
  45. 45. チームの進化(知恵や経験) 46 1~4w 1~4w 1~4w 1~4w
  46. 46. 47
  47. 47. 学習する組織の特徴 ‣作りながら学んでいる ‣お互いに学んでいる(教え合い) ‣弱点は補い合っている(助け合い) ‣人の情報が貯まっている •単純な知識や情報は検索可能 • Know-HowからKnow-Who(あの人に聞けばわかる)へ 48
  48. 48. (ようやく) アジャイル開発の話 49
  49. 49. アジャイル開発チーム 50 Niels Pflaeging『Organize For Complexity』 (学び合いながら開発するチーム)
  50. 50. 「アジャイル」は傘である 51
  51. 51. 2つの特徴 52 https://www.youtube.com/watch?v=TgdFA72crHM
  52. 52. アジャイル開発(スクラム) キャンセル ギフト包装 返品 スプリントの実施 1〜4週間 返品 スプリントゴール スプリント バックログ リリース判断可能な プロダクト プロダクトバックログ ギフト包装 クーポン キャンセル 24時間 53 スプ リントレビュー スプ リントレトロスペ クティブ デ イリースクラム スプリントプランニング http://www.mountaingoatsoftware.com/agile/scrum/a-reusable-scrum-presentation
  53. 53. アジャイル開発(XP) 54 Kent Beck『エクストリームプログラミング』(オーム社)
  54. 54. もっと詳しく知りたい人は 55
  55. 55. 今日のまとめ🎊 ‣科学的管理法から脱出しよう ‣Complexな問題は試行錯誤しよう ‣ユーザーストーリーで小さく分割しよう ‣ソフトウェアは少しずつ進化させよう ‣チームも同じように進化しよう ‣学習する組織を目指そう ‣アジャイル開発を調べよう 56
  56. 56. 最後に 57
  57. 57. KPT(ふりかえり) 3つの観点からふりかえってください K: Keep もっと聞きたかったこと、印象に残ったこと P: Problem 納得できないこと、いまいちだったこと、疑問点 T: Try 実際に自分でやってみようと思ったこと 58
  58. 58. 宣伝 && 質疑応答 59 @kdmsnr kado.masanori@waicrew.com

×