[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
ふつうの
  システム開発
  ∼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日月曜日
Kakutani Shintaro



http://www.flickr.com/photos/t-seto/3740610277/
2010年9月6日月曜日
Asakusa.rb



http://www.flickr.com/photos/takkanm/3978417669
2010年9月6日月曜日
Akira
                                             Matsuda
                                              (@bitsweat in Asakusa)




http://www.flickr.com/photos/recompile_net/4932517324/
2010年9月6日月曜日
http://www.sarahmei.com/blog/2010/09/01/asakusa-rb/
2010年9月6日月曜日
2010年9月6日月曜日
RubyKaigi
  http://rubykaigi.org




http://www.flickr.com/photos/recompile_net/4935820587/
2010年9月6日月曜日
http://togetter.com/li/46799
2010年9月6日月曜日
提 供

                    おかげ さ まで30周年
               情 報化 技術を 通 じて社会と共生する




2010年9月6日月曜日
ふつうの
  システム開発
  ∼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日月曜日
Head First
ふつうの
システム開発
株式会社 永和システムマネジメント
http://www.esm.co.jp

             RubyKaigi2010 2010/08/27
http://d.hatena.ne.jp/nawoto/20100830/1283136410
2010年9月6日月曜日
http://www.flickr.com/photos/hsbt/4931708053/
2010年9月6日月曜日
http://www.flickr.com/photos/y_ogagaga/4941878035/
2010年9月6日月曜日
http://www.flickr.com/photos/hsbt/4932277668/
2010年9月6日月曜日
ふつうの
   システム開発
2010年9月6日月曜日
Ruby

2010年9月6日月曜日
Agile Software
                                         Development




http://www.flickr.com/photos/long-mai/3569550298/
2010年9月6日月曜日
2010年9月6日月曜日
Ruby,Rails関連              150
  プロジェクト数と            130
  売上高(単位:百万)   117
  の推移

                      12    16
          43     11
        0  7
   2005 2006 2007 2008 2009
2010年9月6日月曜日
2010年9月6日月曜日
Javaが中心だったころ
  ✓ オブジェクト指向や
           Java,UMLの技術支援
  ✓ 2次請けが多い
  ✓ パートナー比率が高め
  ✓ 8∼10人の開発メンバー
http://www.tbray.org/talks/RW09.pdf
2010年9月6日月曜日
Rubyが中心になってから
  ✓ 技術を使って価値のあるソ
           フトウェアを届ける
  ✓ お客さまと近い仕事
  ✓ 自社メンバーが中心
  ✓ 2∼4人の開発メンバ ー
http://www.tbray.org/talks/RW09.pdf
2010年9月6日月曜日
ふつうの
   システム開発
2010年9月6日月曜日
ふつうのシステム開発

  ✓        投資効果のある、
  ✓        ちゃんと動くソフトウェアを、
  ✓        期待される期間内に提供し、
  ✓        それを維持・変更し続けられる


2010年9月6日月曜日
ふつうのシステム開発
  ✓ 私たちは良い仕事をしたい
  ✓ ソフトウェアは人が人のために
           つくっている
  ✓ みんなで力を合わせて成果をあ
           げるのが仕事
  ✓ 仕事に見合った報酬を得たい
2010年9月6日月曜日
http://www.rubyworld-conf.org/ja/
2010年9月6日月曜日
http://www.amazon.co.jp/o/ASIN/4873113636/kakutani-22
2010年9月6日月曜日
“    プログラムを
                                                 書いたことの
                                                 ないシステム
                                                 エンジニアが
                                                 威張っている
                                                 ような会社は
竹内郁雄「推薦のことば」(『ビューティフル・コード』)                      早晩亡びる。
http://www.flickr.com/photos/recompile_net/3901074695/
2010年9月6日月曜日
http://www.flickr.com/photos/recompile_net/4934007508/
2010年9月6日月曜日
Ruby

2010年9月6日月曜日
信頼
2010年9月6日月曜日
楽しさ
2010年9月6日月曜日
http://www.rubyworld-conf.org/ja/
2010年9月6日月曜日
Bruce
               A.Tate
               at RubyWorld
               Conference 2009
               in Matz-e, Japan
2010年9月6日月曜日
http://www.rubyworld-conf.org/ja/program/abstract/a-2/
2010年9月6日月曜日
http://www.rubyworld-conf.org/ja/program/abstract/a-2/
2010年9月6日月曜日
http://www.rubyworld-conf.org/ja/program/abstract/a-2/
2010年9月6日月曜日
2010年9月6日月曜日
2010年9月6日月曜日
2010年9月6日月曜日
2010年9月6日月曜日
開発プロセス

2010年9月6日月曜日
Agile Software
                                         Development




http://www.flickr.com/photos/long-mai/3569550298/
2010年9月6日月曜日
http://www.amazon.co.jp/o/ASIN/487311392X/kakutani-22
2010年9月6日月曜日
“  プロセスとは、どのような図、
   文書、テストを実行すべきかに
   関する形式的な一連の規則とい
   うよりも…実は実行すべきこと
   や実行すべきときを表すものに
   すぎないのです。また、頭文字
   も必要ありません…適切に機能
   すればよいのです。
               『Head First ソフトウェア開発』
2010年9月6日月曜日
“ 自分のチームと自分のプロジェ
  クトに役立つプロセスを選び…
  そのプロセスが生み出した成果
  物を自分の顧客の要望に合うよ
  うに調整します。
               『Head First ソフトウェア開発』



2010年9月6日月曜日
http://www.amazon.co.jp/o/ASIN/4873113636/kakutani-22
2010年9月6日月曜日
考えること
協力すること
計画すること
リリースすること
開発すること
2010年9月6日月曜日
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日月曜日
パターン
2010年9月6日月曜日
パターンは事物ではなく、
 繰り返し起こる出来事や関係
 に名前をつけたものである




http://www.flickr.com/photos/goldenpixel/2037394498/
2010年9月6日月曜日
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日月曜日
すべての蜘蛛の巣
                                          はユニークだが、
                                          ひとつのプロセス
                                          に従っている




http://flickr.com/photos/automania/97936640/
2010年9月6日月曜日
強いセンターに
 なるパターン


2010年9月6日月曜日
ふつうのシステム開発のプロセスのための
  強いパターン
  ✓        フィーチャ単位で仕事をすすめる
  ✓        タイムボックスで区切った仕事を
           積み重ねる
  ✓        頻繁に情報を同期する
  ✓            具 を詰める
  ✓        コミュニティの一員になる
2010年9月6日月曜日
フィーチャ単位で
 仕事をすすめる


http://www.flickr.com/photos/soldiersmediacenter/3948272458/
2010年9月6日月曜日
http://www.amazon.co.jp/o/ASIN/4839924023/kakutani-22
2010年9月6日月曜日
計画の基準: フィーチャ(タスクではない)
  ‣   フィーチャ(Feature): ソフトウェアの機能、特性や特徴、
      性能目標、見た目や使い勝手など、いわゆる「売り文句」
      を総称するもの
  ‣   要求仕様, 機能要件, 大機能, ユースケースとよく似ている
  ‣   ユーザに価値を提供するものがフィーチャ
      ‣   性能要件やセキュリティといった非機能要件もフィーチャになりうる

  ‣   フィーチャの 実装 手段はさまざま
      ‣   ユーザーストーリー, ストーリーカード
      ‣   Issue Tracking Systemに登録されたチケット
      ‣   Excelの表
      ‣   ユースケース記述の変異したもの

2010年9月6日月曜日
ストーリーカード
2010年9月6日月曜日
http://www.pivotaltracker.com/
2010年9月6日月曜日
http://blog.mountaingoatsoftware.com/advantages-of-the-as-a-user-i-want-user-story-template
2010年9月6日月曜日
ユーザーストーリーの形式
   ✓ As a/an <type of user>,
        ✓ 販売管理部門の担当として、

   ✓ I Want To <some goal>
        ✓ 先月の締め日以降の今月の売上金額と数量を見たい

   ✓ So That <some reason>
        ✓ 経理部門にレポートを提出するために必要だから


2010年9月6日月曜日
http://agileproductdesign.com/blog/the_new_backlog.html
2010年9月6日月曜日
見積り
2010年9月6日月曜日
見積り
2010年9月6日月曜日
タイムボックスで
区切った仕事を
積み重ねる


http://www.flickr.com/photos/loungerie/236645752/
2010年9月6日月曜日
インクリメンタル開発の流れ
                       マイルストーン1                マイルストーン2

       リリース1            リリース2      リリース3       リリース4           ...
      1        2   3   4   5   6   7   8   9   10   11   ...
     イテレーション           イテレーション     イテレーション     イテレーション

    マイルストーン: マイルストーンは契約の単位です。1つのマイルストーンにつき、1回以上リリー
    スするものとします。

    リリース: リリースプランニングを通じて、リリースに含める内容を優先順位にしたがって各イテ
    レーションに割り当てます。含められる分量は、過去のイテレーション実績をもとに決定します。
    イテレーション: 1∼2週間をタイムボックスとして、リリース計画で割り当てられた作業を実施し
    ます。状況の変化に応じて優先順位の変更に適応します。




2010年9月6日月曜日
複数レベルの計画づくり
                 戦略
               ポートフォリオ
                プロダクト
                リリース
               イテレーション


                 今日




2010年9月6日月曜日
http://www.amazon.co.jp/o/ASIN/4839924023/kakutani-22
2010年9月6日月曜日
http://www.amazon.co.jp/o/ASIN/4798120405/kakutani-22
2010年9月6日月曜日
頻繁に情報を
                                         同期する




http://www.flickr.com/photos/stephenhackett/3289703976/
2010年9月6日月曜日
タイムボックスに応じた、
  適切な長さの情報同期ポイント
  ✓ 朝会, 夕会
       ✓ チーム内の作業状況を共有する
  ✓ イテレーションレビュー
       ✓ タイムボックスの成果の認識を合わせる
  ✓ ふりかえり
       ✓ 状況に応じてプロセスを見直す
2010年9月6日月曜日
2010年9月6日月曜日
2010年9月6日月曜日
具 を詰める

http://www.flickr.com/photos/yto/4573526038/
2010年9月6日月曜日
枠組みに対して、実際に手を動かして
  ふつうのシステム開発を可能にする
  ✓ テスト駆動開発(TDD)
  ✓ リファクタリング
  ✓ 継続的インテグレーション
  ✓ 設計 と 実装 は不可分
  ✓ ペアプログラミング
2010年9月6日月曜日
Ruby

2010年9月6日月曜日
特にRubyはテスティングと
  とても相性がよい
  ✓ 柔軟なオブジェクト機構
       ✓ Meta Programming for Rest of Us
  ✓ テスティングDSL
       ✓ rspec, rr, steak, cucumber, capybara
  ✓ fixture replacement
       ✓ factory_girl, machinist, fabrication,dbcleaner
2010年9月6日月曜日
2010年9月6日月曜日
2010年9月6日月曜日
2010年9月6日月曜日
コミュニティの
                                   一員になる




http://pixdaus.com/single.php?id=104150
2010年9月6日月曜日
2010年9月6日月曜日
organizer, speaker



               subevent
               LT on JRubyKaigi
               subevent


               subevent, staff
               subevent, staff
               speaker, subevent

               subevent
2010年9月6日月曜日
Ruby Commuity on github
                                                                   Yeah! I’m here!




http://lumberjaph.net/blog/index.php/2010/03/25/github-explorer/
2010年9月6日月曜日
コミュニティの一員になる
  ✓ コミュニティ標準 に倣う
       ✓ 採用バージョン, 規約, 利用ツール
       ✓ みんなのコードを良くしよう
               ✓ バグ報告,パッチ,pull request...

  ✓ みんなに知らせる
       ✓ 発表,書籍,記事,blog,twetter,irc...
  ✓ The Netへのポートを閉じない!
       ✓ ssh, git, irc, web filtering...
2010年9月6日月曜日
2010年9月6日月曜日
まとめ
2010年9月6日月曜日
ふつうのシステム開発のプロセスのための
  強いパターン
  ✓        フィーチャ単位で仕事をすすめる
  ✓        タイムボックスで区切った仕事を
           積み重ねる
  ✓        頻繁に情報を同期する
  ✓            具 を詰める
  ✓        コミュニティの一員になる
2010年9月6日月曜日
フィーチャ単位で
 仕事をすすめる


http://www.flickr.com/photos/soldiersmediacenter/3948272458/
2010年9月6日月曜日
タイムボックスで
区切った仕事を
積み重ねる


http://www.flickr.com/photos/loungerie/236645752/
2010年9月6日月曜日
頻繁に情報を
                                         同期する




http://www.flickr.com/photos/stephenhackett/3289703976/
2010年9月6日月曜日
具 を詰める

http://www.flickr.com/photos/yto/4573526038/
2010年9月6日月曜日
コミュニティの
                                   一員になる




http://pixdaus.com/single.php?id=104150
2010年9月6日月曜日
パターンは事物ではなく、
 繰り返し起こる出来事や関係
 に名前をつけたものである




http://www.flickr.com/photos/goldenpixel/2037394498/
2010年9月6日月曜日
すべての蜘蛛の巣
                                          はユニークだが、
                                          ひとつのプロセス
                                          に従っている




http://flickr.com/photos/automania/97936640/
2010年9月6日月曜日
“    プログラムを
                                                 書いたことの
                                                 ないシステム
                                                 エンジニアが
                                                 威張っている
                                                 ような会社は
竹内郁雄「推薦のことば」(『ビューティフル・コード』)                      早晩亡びる。
http://www.flickr.com/photos/recompile_net/3901074695/
2010年9月6日月曜日
http://www.rubyworld-conf.org/ja/
2010年9月6日月曜日
http://www.flickr.com/photos/recompile_net/4934007508/
2010年9月6日月曜日
Ruby

2010年9月6日月曜日
信頼
2010年9月6日月曜日
楽しさ
2010年9月6日月曜日
ふつうのシステム開発

  ✓        投資効果のある、
  ✓        ちゃんと動くソフトウェアを、
  ✓        期待される期間内に提供し、
  ✓        それを維持・変更し続けられる


2010年9月6日月曜日
ふつうのシステム開発
  ✓ 私たちは良い仕事をしたい
  ✓ ソフトウェアは人が人のために
           つくっている
  ✓ みんなで力を合わせて成果をあ
           げるのが仕事
  ✓ 仕事に見合った報酬を得たい
2010年9月6日月曜日
ふつうの
   システム開発
2010年9月6日月曜日
提 供

                    おかげ さ まで30周年
               情 報化 技術を 通 じて社会と共生する




2010年9月6日月曜日
生きている花をつくろうと
すれば、ピンセットで細胞
を一つ一つ物理的に組み立
てるのではなく種から育て
るであろう。                               クリストファー・アレグザンダー『時を超えた建設の道』




http://www.flickr.com/photos/claudio_ar/2601700491/
2010年9月6日月曜日

More Related Content

"Ordinary" System Development