103
角谷 信太郎 KAKUTANI Shintaro; Nihon Ruby-no-kai; Eiwa System Management,Inc. 日本Rubyの会 (株)永和システムマネジメント [email protected] 関西Ruby会議02/関西オープンソース2009; 2009-11-06(Fri) Rubyで ソフトウェアづくり をアジャイルにする ということについて Making Software Development Agile w/ Ruby

Making Software Development Agile With Ruby

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Making Software Development Agile With Ruby

角谷 信太郎KAKUTANI Shintaro; Nihon Ruby-no-kai; Eiwa System Management,Inc.

日本Rubyの会(株)永和システムマネジメント [email protected]

関西Ruby会議02/関西オープンソース2009; 2009-11-06(Fri)

RubyでソフトウェアづくりをアジャイルにするということについてMaking Software Development Agile w/ Ruby

Page 2: Making Software Development Agile With Ruby

角谷信太郎kakutani.comKAKUTANI Shintaro

Page 3: Making Software Development Agile With Ruby

角谷 信太郎✓ 日本Rubyの会理事✓ RubyKaigi✓ Regional RubyKaigi✓ アジャイル関連技術書翻訳

Page 4: Making Software Development Agile With Ruby
Page 5: Making Software Development Agile With Ruby

このトークの後17:00よりジュンク堂書店KOF店(6F)にてサイン会があり〼

Page 6: Making Software Development Agile With Ruby

提 供

情報化技術を通じて社会と共生する

Page 7: Making Software Development Agile With Ruby

永和システムマネジメント✓受託開発の会社です✓ 本社は福井なので関西のお仕事も歓迎です :)

✓Rubyのお仕事承ります✓ JRubyでの納品実績もあります

✓アジャイルな開発のご支援✓ 認定Scrumマスターが4人います

Page 8: Making Software Development Agile With Ruby

今日、伝えたいこと

Page 10: Making Software Development Agile With Ruby

竹内郁雄「推薦のことば」(『ビューティフル・コード』)

“プログラムを書いたことのないシステムエンジニアが威張っているような会社は早晩亡びる。

Page 11: Making Software Development Agile With Ruby

“With great power comes great responsibility.

Page 12: Making Software Development Agile With Ruby

GOT TO GET A GRIP!

Page 13: Making Software Development Agile With Ruby

今日、お話しすること

Page 15: Making Software Development Agile With Ruby

ソフトウェアづくり✓実行主体✓ ひと

✓プロセス✓ 「実行すること」の連続

✓アクティビティ✓ 話す、聞く、立つ、座る、歩く、考える、書く、

描く、キーボードを打つ...

Page 16: Making Software Development Agile With Ruby

プロセス、すなわち実行することと、その実行主体 (つまり人 )は既に遍在し実践され続けている。

Page 17: Making Software Development Agile With Ruby

つまり“プロセス”とはソフトウェアをつくっている活動そのもの、すなわちソフトウェアづくりである。

Page 18: Making Software Development Agile With Ruby

Being Agilehttp://pm.versionone.com/AgilePoster.html

Page 19: Making Software Development Agile With Ruby

Ruby

Page 20: Making Software Development Agile With Ruby

よろしくお願いします

Page 23: Making Software Development Agile With Ruby

Christopher Alexander

Page 24: Making Software Development Agile With Ruby

http://kakutani.com/20090218.html

The Nature of Order

Page 25: Making Software Development Agile With Ruby

価値宇宙の森羅万象即ち生命にあらわれるいきいきとした秩序の幾何学的特性とそれを生み出すプロセスについて

Page 26: Making Software Development Agile With Ruby

The Nature of Order✓ Life is degree✓構造:15の幾何学的特性✓プロセス:構造保存変換✓ Structure Preserving Transformation✓ Wholeness Extending Transformation

Page 27: Making Software Development Agile With Ruby

M83: The Thousand Ruby Galaxyhttp://apod.nasa.gov/apod/ap080927.html

Page 28: Making Software Development Agile With Ruby

構造保存変換

✓ Step-by-Step Adaptation

✓ Feedback & Correction

✓ Unpredictability

✓ Awareness of the Whole

Page 29: Making Software Development Agile With Ruby

Being Agilehttp://pm.versionone.com/AgilePoster.html

Page 31: Making Software Development Agile With Ruby

The Nature ofSoftware

Page 33: Making Software Development Agile With Ruby

Nature of Software1.人とソフトウェアのあいだに価値がある

2.“システム”全体を構成する3.変更に対応できることが求められている

Page 34: Making Software Development Agile With Ruby

Nature of Software1.人がソフトウェアを使ってみないとわからない

2.ハード,ソフト,文書,運用3.育てることと技術的負債

Page 36: Making Software Development Agile With Ruby

プログラミング✓スキルを備えた人の営み✓世界観を構築し、世界をつくりだす

✓文字列を並べるだけの簡単なお仕事ではない

Page 38: Making Software Development Agile With Ruby

付録B:Naur,Ehn,武蔵

Page 39: Making Software Development Agile With Ruby

“Programming as Theory Building” -- Peter Naur

Page 40: Making Software Development Agile With Ruby

プログラミングとは、プログラマが直面している問題に対するある種の見方、つまり理論を形成または構築するようなアクティビティであると適切に見なされるべきである、と提案する。この提案は、プログラミングとはプログラムなどのテキストを産み出すことである、という一般的な考え方とは対照的である。

Page 42: Making Software Development Agile With Ruby

コードにしたものとコードにしなかったことがプログラミング

Page 43: Making Software Development Agile With Ruby

私は受託開発、即ち経済的環境圧による人工的なソフトウェアづくりを生業にしているのだけれど、ソフトウェアを含む価値宇宙において“自然”にソフトウェアは存在するのだろうか?

Page 44: Making Software Development Agile With Ruby

“自然な”ソフトウェア開発✓ Free/Open Source

Software

✓ Bazaar Style Dev.

✓ Hackers

✓ Culture & Ihneritance

Page 45: Making Software Development Agile With Ruby

Ruby

Page 47: Making Software Development Agile With Ruby

The Nature ofSoftware Development

Page 48: Making Software Development Agile With Ruby

The Nature of Order✓ Life is degree✓構造:15の幾何学的特性✓プロセス:構造保存変換✓ Structure Preserving Transformation✓ Wholeness Extending Transformation

Page 49: Making Software Development Agile With Ruby

構造保存変換

✓ Step-by-Step Adaptation

✓ Feedback & Correction

✓ Unpredictability

✓ Awareness of the Whole

Page 50: Making Software Development Agile With Ruby

Being Agilehttp://pm.versionone.com/AgilePoster.html

Page 51: Making Software Development Agile With Ruby

開発がアジャイルであるということは自然なソフトウェアづくりにどれだけ近付いているかの度合い

Page 52: Making Software Development Agile With Ruby
Page 54: Making Software Development Agile With Ruby

オーム社

Page 55: Making Software Development Agile With Ruby
Page 56: Making Software Development Agile With Ruby

http://gihyo.jp/dev/serial/01/agile

Page 57: Making Software Development Agile With Ruby
Page 58: Making Software Development Agile With Ruby

“アジャイル”とはプロセスがどれだけいきいきしているかを示す度合いである。

“Agile” is degree.ー Kakutani Shintaro

Page 59: Making Software Development Agile With Ruby

このスライドの英語がおかしいのはネタ(さもAgileというものが“存在”しているかのように扱われていることへの揶揄)だったのだけれど、誤解を招いてしまった事実があるので、ここにつつしんで訂正いたします ><

Page 60: Making Software Development Agile With Ruby

“アジャイルさ”とはプロセスがどれだけいきいきしているかを示す度合いである。

“Agility” is degree.ー Kakutani Shintaro

Page 61: Making Software Development Agile With Ruby

アジャイルなプロセス✓ プロセス、つまり私たちの“ソフトウェアづくり”の過程がアジャイルであることの度合いを言っている(形容詞)

✓ “アジャイルプロセス”というモノは無い (名詞)

Page 63: Making Software Development Agile With Ruby

XPのプラクティスの数

Page 64: Making Software Development Agile With Ruby

1.ペアプログラミング2.活き活きとした仕事3.情報満載の仕事場4.根本原因分析5.ふりかえり6.信頼7.全員同席8.真の顧客の参加9.ユビキタス言語10. スタンドアップ ミーティング11.コーディング標準12.イテレーションデモ13.報告14.「完全Done」

15. バグなし16. バージョン管理17. 10分ビルド18. 継続的インテグレーション19. コードの共同所有20. ドキュメント21. ビジョン22. リリース計画23. 計画ゲーム24. リスク管理25. イテレーション管理26.ゆとり27.ストーリー28.見積り

29. インクリメンタルな 要件30.顧客テスト31.テスト駆動開発32.リファクタリング33.シンプルな設計34.インクリメンタルな 設計とアーキテクチャ35.スパイク ソリューション36.パフォーマンスの 最適化37.探索的テスト

Page 66: Making Software Development Agile With Ruby

『Head First ソフトウェア開発』

“プロセスとは、どのような図、文書、テストを実行すべきかに関する形式的な一連の規則というよりも…実は実行すべきことや実行すべきときを表すものにすぎないのです。また、頭文字も必要ありません…適切に機能すればよいのです。

Page 67: Making Software Development Agile With Ruby

『Head First ソフトウェア開発』

“自分のチームと自分のプロジェクトに役立つプロセスを選び…そのプロセスが生み出した成果物を自分の顧客の要望に合うように調整します。

Page 68: Making Software Development Agile With Ruby

コードがソフトウェアの中心なのであれば、プログラマがコードを書くのに選ぶ言語も重要なはず

Page 69: Making Software Development Agile With Ruby

Ruby

Page 70: Making Software Development Agile With Ruby

Martin Fowlersays:

Page 71: Making Software Development Agile With Ruby

Ward(Cunningham)、Kent(Beck)、それから、キレイなコード、うまく整理されたオブジェクト指向設計、そして、テストしやすさについて提唱してきたすべての人たちの価値が…Ruby界では…『正統』(orthodoxy)になっている。http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RailsConf2007

Page 72: Making Software Development Agile With Ruby

正統

Page 73: Making Software Development Agile With Ruby

Ward Cunningham

Page 74: Making Software Development Agile With Ruby

Photo by Improve It:http://www.flickr.com/photos/improveit/1574023621/

Kent Beck

Page 77: Making Software Development Agile With Ruby
Page 78: Making Software Development Agile With Ruby

Ward(Cunningham)、Kent(Beck)、それから、キレイなコード、うまく整理されたオブジェクト指向設計、そして、テストしやすさについて提唱してきたすべての人たちの価値が…Ruby界では…『正統』(orthodoxy)になっている。http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RailsConf2007

Page 79: Making Software Development Agile With Ruby

http://www.ruby-lang.org/ja/

Page 80: Making Software Development Agile With Ruby

“Rubyをキメると気持ちイイまつもとゆきひろ - RubyKaigi2008

Page 81: Making Software Development Agile With Ruby
Page 83: Making Software Development Agile With Ruby

ーー a_matsuda (Asakus.rb)

“『入門Git』の書名は『The Git Way』であるべき

Page 84: Making Software Development Agile With Ruby

“The Git Way”の白眉✓ワークフローのためにツールがある

✓ “Linus君の究極のコンテンツトラッキング”✓ パッチベースのワークフロー

✓目にみえる手段の背後にある考えかたの重要性

Page 86: Making Software Development Agile With Ruby

“ホモ・サピエンスはパターン認識生物だ、とパーカーボーイはいう。それは才能でもあり、罠でもある。ーーウィリアム・ギブスン『パターン・リコグニション』

Page 88: Making Software Development Agile With Ruby

オーム社

Page 91: Making Software Development Agile With Ruby

“With great power comes great responsibility.

Page 92: Making Software Development Agile With Ruby

ハッカーならぬプログラマが身につけるべきスキル

Page 94: Making Software Development Agile With Ruby

Taken from t-wadahttp://www.slideshare.net/t_wada/emergent-design-oblove-2009-summer

Page 96: Making Software Development Agile With Ruby

竹内郁雄「推薦のことば」(『ビューティフル・コード』)

“プログラムを書いたことのないシステムエンジニアが威張っているような会社は早晩亡びる。

Page 98: Making Software Development Agile With Ruby

“ホモ・サピエンスはパターン認識生物だ、とパーカーボーイはいう。それは才能でもあり、罠でもある。ーーウィリアム・ギブスン『パターン・リコグニション』

Page 99: Making Software Development Agile With Ruby

“With great power comes great responsibility.

Page 100: Making Software Development Agile With Ruby

GOT TO GET A GRIP!

Page 101: Making Software Development Agile With Ruby

提 供

情報化技術を通じて社会と共生する

Page 102: Making Software Development Agile With Ruby

永和システムマネジメント✓受託開発の会社です✓ 本社は福井なので関西のお仕事も歓迎です :)

✓Rubyのお仕事承ります✓ JRubyでの納品実績もあります

✓アジャイルな開発のご支援✓ 認定Scrumマスターが4人います

Page 103: Making Software Development Agile With Ruby

M83: The Thousand Ruby Galaxyhttp://apod.nasa.gov/apod/ap080927.html

ご清聴ありがとうございました