"Ordinary" System Development

13,011 views
13,966 views

Published on

Published in: Technology
1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total views
13,011
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
25
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide

"Ordinary" System Development

  1. 1. ふつうの システム開発 ∼Rubyを活用した受託開発を アジャイルにするためのパターンの紹介 “Ordinary” System Development - A Pattern Language To Make Your Project Agile 角谷 信太郎 (株)永和システムマネジメント s-kakutani@esm.co.jp KAKUTANI Shintaro; Eiwa System Management,Inc. RubyWorld Conference 2010; 2010-09-06(Mon)2010年9月6日月曜日
  2. 2. Kakutani Shintarohttp://www.flickr.com/photos/t-seto/3740610277/2010年9月6日月曜日
  3. 3. Asakusa.rbhttp://www.flickr.com/photos/takkanm/39784176692010年9月6日月曜日
  4. 4. Akira Matsuda (@bitsweat in Asakusa)http://www.flickr.com/photos/recompile_net/4932517324/2010年9月6日月曜日
  5. 5. http://www.sarahmei.com/blog/2010/09/01/asakusa-rb/2010年9月6日月曜日
  6. 6. 2010年9月6日月曜日
  7. 7. RubyKaigi http://rubykaigi.orghttp://www.flickr.com/photos/recompile_net/4935820587/2010年9月6日月曜日
  8. 8. http://togetter.com/li/467992010年9月6日月曜日
  9. 9. 提 供 おかげ さ まで30周年 情 報化 技術を 通 じて社会と共生する2010年9月6日月曜日
  10. 10. ふつうの システム開発 ∼Rubyを活用した受託開発を アジャイルにするためのパターンの紹介 “Ordinary” System Development - A Pattern Language To Make Your Project Agile 角谷 信太郎 (株)永和システムマネジメント s-kakutani@esm.co.jp KAKUTANI Shintaro; Eiwa System Management,Inc. RubyWorld Conference 2010; 2010-09-06(Mon)2010年9月6日月曜日
  11. 11. Head Firstふつうのシステム開発株式会社 永和システムマネジメントhttp://www.esm.co.jp RubyKaigi2010 2010/08/27http://d.hatena.ne.jp/nawoto/20100830/12831364102010年9月6日月曜日
  12. 12. http://www.flickr.com/photos/hsbt/4931708053/2010年9月6日月曜日
  13. 13. http://www.flickr.com/photos/y_ogagaga/4941878035/2010年9月6日月曜日
  14. 14. http://www.flickr.com/photos/hsbt/4932277668/2010年9月6日月曜日
  15. 15. ふつうの システム開発2010年9月6日月曜日
  16. 16. Ruby2010年9月6日月曜日
  17. 17. Agile Software Developmenthttp://www.flickr.com/photos/long-mai/3569550298/2010年9月6日月曜日
  18. 18. 2010年9月6日月曜日
  19. 19. Ruby,Rails関連 150 プロジェクト数と 130 売上高(単位:百万) 117 の推移 12 16 43 11 0 7 2005 2006 2007 2008 20092010年9月6日月曜日
  20. 20. 2010年9月6日月曜日
  21. 21. Javaが中心だったころ ✓ オブジェクト指向や Java,UMLの技術支援 ✓ 2次請けが多い ✓ パートナー比率が高め ✓ 8∼10人の開発メンバーhttp://www.tbray.org/talks/RW09.pdf2010年9月6日月曜日
  22. 22. Rubyが中心になってから ✓ 技術を使って価値のあるソ フトウェアを届ける ✓ お客さまと近い仕事 ✓ 自社メンバーが中心 ✓ 2∼4人の開発メンバ ーhttp://www.tbray.org/talks/RW09.pdf2010年9月6日月曜日
  23. 23. ふつうの システム開発2010年9月6日月曜日
  24. 24. ふつうのシステム開発 ✓ 投資効果のある、 ✓ ちゃんと動くソフトウェアを、 ✓ 期待される期間内に提供し、 ✓ それを維持・変更し続けられる2010年9月6日月曜日
  25. 25. ふつうのシステム開発 ✓ 私たちは良い仕事をしたい ✓ ソフトウェアは人が人のために つくっている ✓ みんなで力を合わせて成果をあ げるのが仕事 ✓ 仕事に見合った報酬を得たい2010年9月6日月曜日
  26. 26. http://www.rubyworld-conf.org/ja/2010年9月6日月曜日
  27. 27. http://www.amazon.co.jp/o/ASIN/4873113636/kakutani-222010年9月6日月曜日
  28. 28. “ プログラムを 書いたことの ないシステム エンジニアが 威張っている ような会社は竹内郁雄「推薦のことば」(『ビューティフル・コード』) 早晩亡びる。http://www.flickr.com/photos/recompile_net/3901074695/2010年9月6日月曜日
  29. 29. http://www.flickr.com/photos/recompile_net/4934007508/2010年9月6日月曜日
  30. 30. Ruby2010年9月6日月曜日
  31. 31. 信頼2010年9月6日月曜日
  32. 32. 楽しさ2010年9月6日月曜日
  33. 33. http://www.rubyworld-conf.org/ja/2010年9月6日月曜日
  34. 34. Bruce A.Tate at RubyWorld Conference 2009 in Matz-e, Japan2010年9月6日月曜日
  35. 35. http://www.rubyworld-conf.org/ja/program/abstract/a-2/2010年9月6日月曜日
  36. 36. http://www.rubyworld-conf.org/ja/program/abstract/a-2/2010年9月6日月曜日
  37. 37. http://www.rubyworld-conf.org/ja/program/abstract/a-2/2010年9月6日月曜日
  38. 38. 2010年9月6日月曜日
  39. 39. 2010年9月6日月曜日
  40. 40. 2010年9月6日月曜日
  41. 41. 2010年9月6日月曜日
  42. 42. 開発プロセス2010年9月6日月曜日
  43. 43. Agile Software Developmenthttp://www.flickr.com/photos/long-mai/3569550298/2010年9月6日月曜日
  44. 44. http://www.amazon.co.jp/o/ASIN/487311392X/kakutani-222010年9月6日月曜日
  45. 45. “ プロセスとは、どのような図、 文書、テストを実行すべきかに 関する形式的な一連の規則とい うよりも…実は実行すべきこと や実行すべきときを表すものに すぎないのです。また、頭文字 も必要ありません…適切に機能 すればよいのです。 『Head First ソフトウェア開発』2010年9月6日月曜日
  46. 46. “ 自分のチームと自分のプロジェ クトに役立つプロセスを選び… そのプロセスが生み出した成果 物を自分の顧客の要望に合うよ うに調整します。 『Head First ソフトウェア開発』2010年9月6日月曜日
  47. 47. http://www.amazon.co.jp/o/ASIN/4873113636/kakutani-222010年9月6日月曜日
  48. 48. 考えること協力すること計画することリリースすること開発すること2010年9月6日月曜日
  49. 49. 1.ペアプログラミング 15. バグなし 29. インクリメンタルな 2.活き活きとした仕事 16. バージョン管理 要件 3.情報満載の仕事場 17. 10分ビルド 30.顧客テスト 4.根本原因分析 18. 継続的インテグ 31.テスト駆動開発 5.ふりかえり レーション 32.リファクタリング 6.信頼 19. コードの共同所有 33.シンプルな設計 7.全員同席 20. ドキュメント 34.インクリメンタルな 設計とアーキテクチャ 8.真の顧客の参加 21. ビジョン 35.スパイク 9.ユビキタス言語 22. リリース計画 ソリューション 10. スタンドアップ 23. 計画ゲーム 36.パフォーマンスの ミーティング 24. リスク管理 最適化 11.コーディング標準 25. イテレーション管理 37.探索的テスト 12.イテレーションデモ 26.ゆとり 13.報告 27.ストーリー 14.「完全Done」 28.見積り2010年9月6日月曜日
  50. 50. パターン2010年9月6日月曜日
  51. 51. パターンは事物ではなく、 繰り返し起こる出来事や関係 に名前をつけたものであるhttp://www.flickr.com/photos/goldenpixel/2037394498/2010年9月6日月曜日
  52. 52. 1.ペアプログラミング 15. バグなし 29. インクリメンタルな 2.活き活きとした仕事 16. バージョン管理 要件 3.情報満載の仕事場 17. 10分ビルド 30.顧客テスト 4.根本原因分析 18. 継続的インテグ 31.テスト駆動開発 5.ふりかえり レーション 32.リファクタリング 6.信頼 19. コードの共同所有 33.シンプルな設計 7.全員同席 20. ドキュメント 34.インクリメンタルな 設計とアーキテクチャ 8.真の顧客の参加 21. ビジョン 35.スパイク 9.ユビキタス言語 22. リリース計画 ソリューション 10. スタンドアップ 23. 計画ゲーム 36.パフォーマンスの ミーティング 24. リスク管理 最適化 11.コーディング標準 25. イテレーション管理 37.探索的テスト 12.イテレーションデモ 26.ゆとり 13.報告 27.ストーリー 14.「完全Done」 28.見積り2010年9月6日月曜日
  53. 53. すべての蜘蛛の巣 はユニークだが、 ひとつのプロセス に従っているhttp://flickr.com/photos/automania/97936640/2010年9月6日月曜日
  54. 54. 強いセンターに なるパターン2010年9月6日月曜日
  55. 55. ふつうのシステム開発のプロセスのための 強いパターン ✓ フィーチャ単位で仕事をすすめる ✓ タイムボックスで区切った仕事を 積み重ねる ✓ 頻繁に情報を同期する ✓ 具 を詰める ✓ コミュニティの一員になる2010年9月6日月曜日
  56. 56. フィーチャ単位で 仕事をすすめるhttp://www.flickr.com/photos/soldiersmediacenter/3948272458/2010年9月6日月曜日
  57. 57. http://www.amazon.co.jp/o/ASIN/4839924023/kakutani-222010年9月6日月曜日
  58. 58. 計画の基準: フィーチャ(タスクではない) ‣ フィーチャ(Feature): ソフトウェアの機能、特性や特徴、 性能目標、見た目や使い勝手など、いわゆる「売り文句」 を総称するもの ‣ 要求仕様, 機能要件, 大機能, ユースケースとよく似ている ‣ ユーザに価値を提供するものがフィーチャ ‣ 性能要件やセキュリティといった非機能要件もフィーチャになりうる ‣ フィーチャの 実装 手段はさまざま ‣ ユーザーストーリー, ストーリーカード ‣ Issue Tracking Systemに登録されたチケット ‣ Excelの表 ‣ ユースケース記述の変異したもの2010年9月6日月曜日
  59. 59. ストーリーカード2010年9月6日月曜日
  60. 60. http://www.pivotaltracker.com/2010年9月6日月曜日
  61. 61. http://blog.mountaingoatsoftware.com/advantages-of-the-as-a-user-i-want-user-story-template2010年9月6日月曜日
  62. 62. ユーザーストーリーの形式 ✓ As a/an <type of user>, ✓ 販売管理部門の担当として、 ✓ I Want To <some goal> ✓ 先月の締め日以降の今月の売上金額と数量を見たい ✓ So That <some reason> ✓ 経理部門にレポートを提出するために必要だから2010年9月6日月曜日
  63. 63. http://agileproductdesign.com/blog/the_new_backlog.html2010年9月6日月曜日
  64. 64. 見積り2010年9月6日月曜日
  65. 65. 見積り2010年9月6日月曜日
  66. 66. タイムボックスで区切った仕事を積み重ねるhttp://www.flickr.com/photos/loungerie/236645752/2010年9月6日月曜日
  67. 67. インクリメンタル開発の流れ マイルストーン1 マイルストーン2 リリース1 リリース2 リリース3 リリース4 ... 1 2 3 4 5 6 7 8 9 10 11 ... イテレーション イテレーション イテレーション イテレーション マイルストーン: マイルストーンは契約の単位です。1つのマイルストーンにつき、1回以上リリー スするものとします。 リリース: リリースプランニングを通じて、リリースに含める内容を優先順位にしたがって各イテ レーションに割り当てます。含められる分量は、過去のイテレーション実績をもとに決定します。 イテレーション: 1∼2週間をタイムボックスとして、リリース計画で割り当てられた作業を実施し ます。状況の変化に応じて優先順位の変更に適応します。2010年9月6日月曜日
  68. 68. 複数レベルの計画づくり 戦略 ポートフォリオ プロダクト リリース イテレーション 今日2010年9月6日月曜日
  69. 69. http://www.amazon.co.jp/o/ASIN/4839924023/kakutani-222010年9月6日月曜日
  70. 70. http://www.amazon.co.jp/o/ASIN/4798120405/kakutani-222010年9月6日月曜日
  71. 71. 頻繁に情報を 同期するhttp://www.flickr.com/photos/stephenhackett/3289703976/2010年9月6日月曜日
  72. 72. タイムボックスに応じた、 適切な長さの情報同期ポイント ✓ 朝会, 夕会 ✓ チーム内の作業状況を共有する ✓ イテレーションレビュー ✓ タイムボックスの成果の認識を合わせる ✓ ふりかえり ✓ 状況に応じてプロセスを見直す2010年9月6日月曜日
  73. 73. 2010年9月6日月曜日
  74. 74. 2010年9月6日月曜日
  75. 75. 具 を詰めるhttp://www.flickr.com/photos/yto/4573526038/2010年9月6日月曜日
  76. 76. 枠組みに対して、実際に手を動かして ふつうのシステム開発を可能にする ✓ テスト駆動開発(TDD) ✓ リファクタリング ✓ 継続的インテグレーション ✓ 設計 と 実装 は不可分 ✓ ペアプログラミング2010年9月6日月曜日
  77. 77. Ruby2010年9月6日月曜日
  78. 78. 特にRubyはテスティングと とても相性がよい ✓ 柔軟なオブジェクト機構 ✓ Meta Programming for Rest of Us ✓ テスティングDSL ✓ rspec, rr, steak, cucumber, capybara ✓ fixture replacement ✓ factory_girl, machinist, fabrication,dbcleaner2010年9月6日月曜日
  79. 79. 2010年9月6日月曜日
  80. 80. 2010年9月6日月曜日
  81. 81. 2010年9月6日月曜日
  82. 82. コミュニティの 一員になるhttp://pixdaus.com/single.php?id=1041502010年9月6日月曜日
  83. 83. 2010年9月6日月曜日
  84. 84. organizer, speaker subevent LT on JRubyKaigi subevent subevent, staff subevent, staff speaker, subevent subevent2010年9月6日月曜日
  85. 85. Ruby Commuity on github Yeah! I’m here!http://lumberjaph.net/blog/index.php/2010/03/25/github-explorer/2010年9月6日月曜日
  86. 86. コミュニティの一員になる ✓ コミュニティ標準 に倣う ✓ 採用バージョン, 規約, 利用ツール ✓ みんなのコードを良くしよう ✓ バグ報告,パッチ,pull request... ✓ みんなに知らせる ✓ 発表,書籍,記事,blog,twetter,irc... ✓ The Netへのポートを閉じない! ✓ ssh, git, irc, web filtering...2010年9月6日月曜日
  87. 87. 2010年9月6日月曜日
  88. 88. まとめ2010年9月6日月曜日
  89. 89. ふつうのシステム開発のプロセスのための 強いパターン ✓ フィーチャ単位で仕事をすすめる ✓ タイムボックスで区切った仕事を 積み重ねる ✓ 頻繁に情報を同期する ✓ 具 を詰める ✓ コミュニティの一員になる2010年9月6日月曜日
  90. 90. フィーチャ単位で 仕事をすすめるhttp://www.flickr.com/photos/soldiersmediacenter/3948272458/2010年9月6日月曜日
  91. 91. タイムボックスで区切った仕事を積み重ねるhttp://www.flickr.com/photos/loungerie/236645752/2010年9月6日月曜日
  92. 92. 頻繁に情報を 同期するhttp://www.flickr.com/photos/stephenhackett/3289703976/2010年9月6日月曜日
  93. 93. 具 を詰めるhttp://www.flickr.com/photos/yto/4573526038/2010年9月6日月曜日
  94. 94. コミュニティの 一員になるhttp://pixdaus.com/single.php?id=1041502010年9月6日月曜日
  95. 95. パターンは事物ではなく、 繰り返し起こる出来事や関係 に名前をつけたものであるhttp://www.flickr.com/photos/goldenpixel/2037394498/2010年9月6日月曜日
  96. 96. すべての蜘蛛の巣 はユニークだが、 ひとつのプロセス に従っているhttp://flickr.com/photos/automania/97936640/2010年9月6日月曜日
  97. 97. “ プログラムを 書いたことの ないシステム エンジニアが 威張っている ような会社は竹内郁雄「推薦のことば」(『ビューティフル・コード』) 早晩亡びる。http://www.flickr.com/photos/recompile_net/3901074695/2010年9月6日月曜日
  98. 98. http://www.rubyworld-conf.org/ja/2010年9月6日月曜日
  99. 99. http://www.flickr.com/photos/recompile_net/4934007508/2010年9月6日月曜日
  100. 100. Ruby2010年9月6日月曜日
  101. 101. 信頼2010年9月6日月曜日
  102. 102. 楽しさ2010年9月6日月曜日
  103. 103. ふつうのシステム開発 ✓ 投資効果のある、 ✓ ちゃんと動くソフトウェアを、 ✓ 期待される期間内に提供し、 ✓ それを維持・変更し続けられる2010年9月6日月曜日
  104. 104. ふつうのシステム開発 ✓ 私たちは良い仕事をしたい ✓ ソフトウェアは人が人のために つくっている ✓ みんなで力を合わせて成果をあ げるのが仕事 ✓ 仕事に見合った報酬を得たい2010年9月6日月曜日
  105. 105. ふつうの システム開発2010年9月6日月曜日
  106. 106. 提 供 おかげ さ まで30周年 情 報化 技術を 通 じて社会と共生する2010年9月6日月曜日
  107. 107. 生きている花をつくろうとすれば、ピンセットで細胞を一つ一つ物理的に組み立てるのではなく種から育てるであろう。 クリストファー・アレグザンダー『時を超えた建設の道』http://www.flickr.com/photos/claudio_ar/2601700491/2010年9月6日月曜日

×