The way to the timeless way of programming

164
角谷 信太郎 KAKUTANI Shintaro; Nihon Ruby-no-kai; Eiwa System Management,Inc. 日本Rubyの会 (株)永和システムマネジメント [email protected] Developers Summit 2009 【12-A-3】; 2009-02-12(Thu) 時を超えた プログラミング の道への道 The way to the timeless way of programming

description

 

Transcript of The way to the timeless way of programming

Page 1: The way to the timeless way of programming

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

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

Developers Summit 2009 【12-A-3】; 2009-02-12(Thu)

時を超えたプログラミングの道への道The way to the timeless way of programming

Page 2: The way to the timeless way of programming

みなさんこんにちは!

Page 3: The way to the timeless way of programming

角谷信太郎kakutani.comKAKUTANI Shintaro

Page 4: The way to the timeless way of programming

警告

Page 5: The way to the timeless way of programming

Picture by Łukasz Strachanowski:http://flickr.com/photos/myvector/2220511300/

電波

Page 6: The way to the timeless way of programming

開発者向け

Page 7: The way to the timeless way of programming
Page 8: The way to the timeless way of programming

角谷信太郎✓ (株)永和システムマネジメント✓ サービスプロバイディング事業部

チーフプログラマ

✓ デブサミ2009コンテンツ委員

✓ 日本Rubyの会理事✓ 技術書籍の翻訳・監訳

Page 9: The way to the timeless way of programming

pragprog.com

Page 10: The way to the timeless way of programming

オライリー・ジャパン

オーム社

Page 11: The way to the timeless way of programming

新刊

Page 12: The way to the timeless way of programming
Page 13: The way to the timeless way of programming

毎日コミュニケーションズ

Page 14: The way to the timeless way of programming

訳者サイン会やります!✓本日(2/12)✓ 16:15~16:35(休憩時間)

✓明日(2/13)✓ 12:20~12:50(昼休み)

✓場所: オブジェクト倶楽部

広告

Page 15: The way to the timeless way of programming

当初

Page 16: The way to the timeless way of programming

このセッションでは『アジャイルな見積りと計画づくり』に書かれていることと、書かれていないことを紹介してアジャイルへの誤解を解くつもりでした

Page 17: The way to the timeless way of programming

✓計画しない✓設計しない✓いきなりプログラミング✓ドキュメント書かない✓ などなど

よくあるアジャイルへの誤解

Page 18: The way to the timeless way of programming

You know? I just do things.

Page 19: The way to the timeless way of programming

ところが同書の訳者あとがきを書きあげてみたら、むしろあとがきに書かなかったことを話したほうが良さそう

Page 20: The way to the timeless way of programming

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

Kent Beck

Page 21: The way to the timeless way of programming
Page 22: The way to the timeless way of programming

本文1行目

Page 23: The way to the timeless way of programming

Extreme Programming(XP) is about social change.

XPとは「社会」の変化のことである。

Page 24: The way to the timeless way of programming

「社会」とカッコ付きな理由✓個人の世界認識✓人と人との関係のあり方✓チームや組織のあり方✓経済、政治、文化

Page 25: The way to the timeless way of programming

Extreme Programming(XP) is about social change.

XPとは「社会」の変化のことである。

Page 26: The way to the timeless way of programming

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

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

Developers Summit 2009 【12-A-3】; 2009-02-12(Thu)

時を超えたプログラミングの道への道The way to the timeless way of programming

Page 27: The way to the timeless way of programming

提 供

翔泳社質の高いコンテンツを集積させ、新しい出版ビジネスへ

つなぐ、つながる、そして未来へ

Page 28: The way to the timeless way of programming

提 供

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

Page 29: The way to the timeless way of programming

角谷信太郎kakutani.comKAKUTANI Shintaro

Page 30: The way to the timeless way of programming

よろしくお願いします

Page 31: The way to the timeless way of programming
Page 32: The way to the timeless way of programming

XP(アジャイル)とは✓ 投資効果のある、

✓ ちゃんと動くソフトウェアを、

✓ 期待される期間内に提供し、

✓ それを維持・変更し続けられる

✓ ソフトウェアは、人が人のためにつくっていることを知っている

Page 33: The way to the timeless way of programming
Page 34: The way to the timeless way of programming
Page 35: The way to the timeless way of programming

XP(アジャイル)は✓一部の優秀な開発者のためのものではない✓ハッカーにXPは不要かも?

✓誠実なプロフェッショナルであるふつうの人達用

Page 36: The way to the timeless way of programming

よげんの書

Page 37: The way to the timeless way of programming
Page 38: The way to the timeless way of programming

私が『ビューティフル・コード』を重要だと思う3つの理由

✓ “美しい”コード✓ Matz, そしてRuby✓ 竹内預言

Page 39: The way to the timeless way of programming

竹内預言

Page 40: The way to the timeless way of programming

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

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

Page 41: The way to the timeless way of programming

プログラムを書いたことのないシステムエンジニアが

Page 42: The way to the timeless way of programming

威張っているような会社は

Page 43: The way to the timeless way of programming

早晩亡びる

Page 44: The way to the timeless way of programming

亡びる

Page 45: The way to the timeless way of programming

どう亡びるとか、亡びた後にどうなるとかいった話は

Page 46: The way to the timeless way of programming

アルファブロガーの皆さんにお任せして

Page 47: The way to the timeless way of programming

亡びを免れるためには“時を超えたプログラミングの道”を見出さねばならない

Page 48: The way to the timeless way of programming

時を超えたプログラミングの道

Page 49: The way to the timeless way of programming
Page 50: The way to the timeless way of programming

第23章

Page 51: The way to the timeless way of programming

Chapter23:The Timeless way of

Programming

第23章:時を超えたプログラミングの道

Page 52: The way to the timeless way of programming

チームが技術とビジネスの関心事項の調和を日常的に取れるようにすることだ。調和とバランスがXPの目的である。

ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 53: The way to the timeless way of programming

ソフトウェアでは、新たな社会構造を作る機会がある。

ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 54: The way to the timeless way of programming

チーム間の権力と責任の適切な共有は、非現実的に思えるかもしれない。

ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 55: The way to the timeless way of programming

バランスには、相互尊重が不可欠である。絶対的な権力は存在しない。

ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 56: The way to the timeless way of programming

時を超えたプログラミングの道

Page 57: The way to the timeless way of programming

Page 58: The way to the timeless way of programming

道✓ road - 通り道✓ way - やり方✓ tao -「道」

Page 59: The way to the timeless way of programming
Page 60: The way to the timeless way of programming

道 - 陰陽 - ダイナミズム✓陰中陽あり、陽中陰あり✓単なる二元論ではない

✓ふたつの要素の活動✓竹内預言とTAO

Page 61: The way to the timeless way of programming
Page 62: The way to the timeless way of programming
Page 63: The way to the timeless way of programming

The Art OfAgileDevelopment(TAO-AD)

Page 64: The way to the timeless way of programming
Page 65: The way to the timeless way of programming

テクノロジビジネス

Page 66: The way to the timeless way of programming
Page 67: The way to the timeless way of programming
Page 68: The way to the timeless way of programming

オーム社

Page 69: The way to the timeless way of programming

ライフワーク

Page 70: The way to the timeless way of programming
Page 71: The way to the timeless way of programming

技芸工学

Page 72: The way to the timeless way of programming
Page 73: The way to the timeless way of programming

コンピュータ

人間

Page 74: The way to the timeless way of programming
Page 75: The way to the timeless way of programming

ドキュメント

コード

Page 76: The way to the timeless way of programming
Page 77: The way to the timeless way of programming

設計テスト

Page 78: The way to the timeless way of programming
Page 79: The way to the timeless way of programming

The Matrix is everywhere.

Page 80: The way to the timeless way of programming

時を超えたプログラミングの道

Page 81: The way to the timeless way of programming

元ネタ

Page 82: The way to the timeless way of programming

ChristopherAlexander

Page 83: The way to the timeless way of programming
Page 84: The way to the timeless way of programming

アレグザンダーの建築理論✓パターン・ランゲージによる住まいづくり

✓設計と施工の一体化✓利用者が建築プロセスに参加する(施工も!)

Page 85: The way to the timeless way of programming

“人の顔に浮かぶ『笑み』のような建物が建てたいのです。

『クリストファー・アレグザンダー 建築の新しいパラダイムを求めて』

Page 86: The way to the timeless way of programming

Photo by MorBCN:http://flickr.com/photos/bcnbits/143033314/in/set-72057594109276886/

Venice

Page 87: The way to the timeless way of programming

Photo by Claudio.Ar - Hermes BACK!!!!:http://flickr.com/photos/claudio_ar/2644023246/

Amsterdam

Page 88: The way to the timeless way of programming

何百年にもわたって育まれてきた、いきいきとした建物や町を現代の建築家が生成できるようにするには ?

Page 89: The way to the timeless way of programming
Page 90: The way to the timeless way of programming

時を超えた建設の道とXPの関係

Page 93: The way to the timeless way of programming

“ K e n t は,X Pをマーケティングする際 , . . . X P に つ いて . . . 書 い た も の には,Chistopher Alexander が出て来ない...Alexanderの考えは彼ら(ソフトウェア開発者)に理解しにくく,Alexanderをこの議論に持ち込むと...ソフトウェア開発の話題から逸れて行ってしまうからです.Kentは,みんなに「ソフトウェア」を考えて欲しかったのでしょう.Alexanderについて知りたい人は...どちらにしてもそこに行きつくだろうと彼は考えました....XPは...Alexanderのアイディアを基礎にしていることは間違いありません.

Page 94: The way to the timeless way of programming

公然の秘密

Page 95: The way to the timeless way of programming

XPは...Alexanderのアイディアを基礎にしている。

Page 96: The way to the timeless way of programming

実際に何冊か通読してみたら、

Page 97: The way to the timeless way of programming

XPは...Alexanderのアイディアを基礎にしている。

Page 98: The way to the timeless way of programming

その程度の言い回しでは生ぬるい!!!!!

Page 99: The way to the timeless way of programming

目次『オレゴン大学の実験』I. 有機的秩序II.参加III.漸進的成長IV.パターンV.診断VI.調整

Page 100: The way to the timeless way of programming

どうみてもXPです

Page 101: The way to the timeless way of programming

XPはアレグザンダーがやろうとしたことをそのままソフトウェアでやろうとしているのだ!!!!!!!!!!!!

Page 102: The way to the timeless way of programming

eXtreme ProgrammingEXPLAINED!

Page 103: The way to the timeless way of programming

アレグザンダーの建築理論✓パターン・ランゲージによる住まいづくり

✓設計と施工の一体化✓利用者が建築プロセスに参加する(施工も!)

Page 104: The way to the timeless way of programming

✓パターン✓事物ではなく、繰り返し起こる出来事や関係に名前をつけたもの✓ 砂漠の風紋、湖沼のひび割れ

✓ “人工世界の原子である”

パターンランゲージ

Page 105: The way to the timeless way of programming

✓ランゲージ✓パターンが「単語」なら、ランゲージは「文法」

✓文法にしたがって単語を組み合わせると無限の意味が!

✓有機的

パターンランゲージ

Page 106: The way to the timeless way of programming

“生きている花をつくろうとすれば、ピンセットで細胞を一つ一つ物理的に組み立てるのではなく種から育てるであろう。

クリストファー・アレグザンダー『時を超えた建設の道』

Page 107: The way to the timeless way of programming

プロセス

Page 108: The way to the timeless way of programming

✓分割 - 合成✓部分 - 組立✓全体 - 分化✓細胞分裂のように!

プロセス(つくること)

Page 109: The way to the timeless way of programming

Photo by Automania:http://flickr.com/photos/automania/97936640/

Page 110: The way to the timeless way of programming

すべての蜘蛛の巣はユニークだがひとつのプロセスに従ってる

Page 111: The way to the timeless way of programming

XPはパターンランゲージ

Page 112: The way to the timeless way of programming
Page 113: The way to the timeless way of programming

XPのプラクティスの数

Page 114: The way to the timeless way of programming

37

Page 115: The way to the timeless way of programming

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 116: The way to the timeless way of programming

ビジョン

Page 117: The way to the timeless way of programming

ビジョン

真の顧客の参加 ストーリー

Page 118: The way to the timeless way of programming

ビジョン

真の顧客の参加 ストーリー

リリース計画

Page 119: The way to the timeless way of programming

ビジョン

真の顧客の参加 ストーリー

見積り全員同席

リリース計画

Page 120: The way to the timeless way of programming

ビジョン

真の顧客の参加 ストーリー

見積り

信頼

全員同席

リリース計画

Page 121: The way to the timeless way of programming

ビジョン

真の顧客の参加 ストーリー

見積り

信頼

全員同席

リリース計画

Page 122: The way to the timeless way of programming

Page 123: The way to the timeless way of programming

…への道

Page 124: The way to the timeless way of programming

...その道は絵画そのものの本質と不可分なので、つねに発見と再発見がくり返され、絵画に真剣に取り組む者なら必ずたどり着く道なのである。クリストファー・アレグザンダー『時を超えた建設の道』

Page 125: The way to the timeless way of programming

✓平鍋健児✓羽生田栄一✓山田正樹✓ ...

真剣に取り組む者なら必ずたどり着く道である。

✓小井土亨✓福井厚✓石井勝✓ ...

Page 126: The way to the timeless way of programming

masarl予想

Page 128: The way to the timeless way of programming

“これからは,ある程度確立されたオブジェクト指向の開発プロセスをパターン・ランゲージの形式で表わし,プロセス・パターンとして書き直すという論文がどんどん出てくるかもしれません.

石井勝「組織パターンとプロセスパターン」

Page 129: The way to the timeless way of programming

ごく一部を除いて最近あんまり話を聞かなくなった

Page 130: The way to the timeless way of programming

この道への道はどうなの?1.麻疹とか中二病2.道が間違ってる3.道に迷ってる

Page 131: The way to the timeless way of programming

“アレグザンダーは失敗した”✓社会的に✓経済的に✓政治的に✓技術的に

Page 132: The way to the timeless way of programming

プログラムは建物ではなく、ソフトウェア開発は建築施工ではない。

ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 133: The way to the timeless way of programming

その後のアレグザンダーの仕事

Page 134: The way to the timeless way of programming
Page 135: The way to the timeless way of programming

Nature of Order✓「秩序の本質」✓ “生命”は度合いである✓ “全体性”の構造✓全体 - 分化のプロセス

Page 137: The way to the timeless way of programming

ソフトウェアパターンのムーヴメントは,いまだ幼年期にあると言ってよいだろう.(我々はいまだパターンやパターンランゲージを書くのに問題を抱えている.)そして,産業レベルでの準備が整うまで,今後 20年,30年は汗水をたらして,ソフトウェアパターンとパターンランゲージの開拓に努めることになるかもしれない.

Page 138: The way to the timeless way of programming

ちょっとだけ現実に戻ろうか…

Page 139: The way to the timeless way of programming
Page 140: The way to the timeless way of programming

1章ビジネスソフトウェアの「ラストマイル」を解決するRoy Singham

Page 141: The way to the timeless way of programming

対象システム

本番環境

開発既存

システム

ビジネス要求

ビジネス価値

外部制約(法,規制...)

エンドツーエンド

Page 142: The way to the timeless way of programming

対象システム

本番環境

開発既存

システム

ビジネス要求

ビジネス価値

外部制約(法,規制...)

エンドツーエンド

アジャイル

Page 143: The way to the timeless way of programming

対象システム

本番環境

開発既存

システム

ビジネス要求

ビジネス価値

外部制約(法,規制...)

“全体”エンドツーエンド

Page 144: The way to the timeless way of programming
Page 145: The way to the timeless way of programming
Page 146: The way to the timeless way of programming

オーム社

Page 147: The way to the timeless way of programming
Page 148: The way to the timeless way of programming

つまり

Page 149: The way to the timeless way of programming

宇宙、人生、すべての答え

Page 150: The way to the timeless way of programming
Page 151: The way to the timeless way of programming

答えは42だが、質問は失われている

Page 152: The way to the timeless way of programming

XPは質問である

Page 153: The way to the timeless way of programming

問い続けよう。開発者として。亡びを免れて生き続けるために

Page 154: The way to the timeless way of programming
Page 155: The way to the timeless way of programming

Chapter23:The Timeless way of

Programming

第23章:時を超えたプログラミングの道

Page 156: The way to the timeless way of programming

ツールと技術は頻繁に変わるが、大幅に変わることはない。しかし、人はゆっくりだが深く変わっていく。

ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 157: The way to the timeless way of programming

XPの課題は、ソフトウェアが今後50年間重要な産業であり続けられるように、深い変化を奨励し、個人の価値と相互の信頼関係を新たにすることだ。ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 158: The way to the timeless way of programming

人間の精神の可能性を解放することが、まだ想像できないコンピュータの将来へとつながるのだ。

ケント・ベック『XPエクストリーム・プログラミング入門』第2版

Page 159: The way to the timeless way of programming
Page 160: The way to the timeless way of programming

本文1行目

Page 161: The way to the timeless way of programming

Extreme Programming(XP) is about social change.

XPとは「社会」の変化のことである。

Page 162: The way to the timeless way of programming

皆さんに、私がもらった大切な言葉をあげます。

Page 163: The way to the timeless way of programming

Social Changestarts with

you.「社会」の変化の始まりはあなたからだ。

Page 164: The way to the timeless way of programming

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