Upgrade to Pro — share decks privately, control downloads, hide ads and more …

両方読んでみてわかった!XP初版と2版からの学び / Learning from XP 1st and 2nd

Yuta Yasugahira
September 30, 2022

両方読んでみてわかった!XP初版と2版からの学び / Learning from XP 1st and 2nd

XP祭り2022にて、XP会読会の有志で発表した資料です。
発表者はtfujita, kfjt, watagashi, kuro, yasugahira0810です。

Yuta Yasugahira

September 30, 2022
Tweet

More Decks by Yuta Yasugahira

Other Decks in Technology

Transcript

  1. 発表内容 1. カイドクで見いだした仮説    初版の章立てに隠された意図とは!?    初版と2版をマッピングして浮かび上がる真実!?    2版で“リスペクト”が追加されたのはなぜ!? 2.

    メンバそれぞれの学び    yasugahira0810の学び    tfujitaの学び    kfjtの学び    watagashiの学び    kuroの学び 3. (発表から) 溢れ出る学びたち    その他会読会での学びリスト 読み込んで、miroで整理して、仮 説を立てて、話し合ったところ! 我々の仮説をあなたはどう見る? それぞれの学びを、 それぞれの言葉で、お伝えします 残念ながら発表で紹介しきれない 学びがたくさんあります。スライ ド末尾にリストで掲載しておくの で、興味ある方はご覧ください
  2. 初版と2版の目次構成 第1セクション 問題 第1章 リスク  第2章 開発のエピソード  第3章 ソフトウェア開発の経済学  第4章 4つの変数  第5章 変更のコスト  第6章 運転の取得  第7章 4つの価値  第8章 基本原則 

    第9章 基本に戻る  第2セクション 解決策 第10章 概略  第11章 各実践がどのように機能するか  第12章 管理戦略  第13章 ファシリティ戦略  第14章 ビジネス上と技術上の責任を分ける  第15章 計画戦略  第16章 開発戦略  第17章 設計戦略  第18章 テスト戦略  第3セクション XPを実装する 第19章 XPを採用する  第20章 XPを改良する  第21章 理想的なXPプロジェクトのライフサイクル  第22章 人の役割  第23章 20-80ルール  第24章 XPを難しくするもの  第25章 XPを試すべきでないとき  第26章 現場でのXP  第27章 結論  第1章 XPとは何か 第II部 XPの哲学 第17章 はじまりの物語 第18章 テイラー主義とソフトウェア 第19章 トヨタ生産方式 第20章 XPの適用 第21章 エクストリームの純度 第22章 オフショア開発 第23章 時を超えたプログラミングの道 第24章 コミュニティーとXP 第25章 結論 第I部 XPの探求 第2章 運転を学ぶ 第3章 価値、原則、プラクティス 第4章 価値 第5章 原則 第6章 プラクティス 第7章 主要プラクティス 第8章 始めてみよう 第9章 導出プラクティス 第10章 XPチーム全体 第11章 制約理論 第12章 計画:スコープの管理 第13章 テスト:早めに、こまめに、自動化 第14章 設計:時間の重要性 第15章 XPのスケーリング 第16章 インタビュー
  3. 初版と2版の目次構成 第1セクション 問題 第1章 リスク  第2章 開発のエピソード  第3章 ソフトウェア開発の経済学  第4章 4つの変数  第5章 変更のコスト  第6章 運転の取得  第7章 4つの価値  第8章 基本原則 

    第9章 基本に戻る  第2セクション 解決策 第10章 概略  第11章 各実践がどのように機能するか  第12章 管理戦略  第13章 ファシリティ戦略  第14章 ビジネス上と技術上の責任を分ける  第15章 計画戦略  第16章 開発戦略  第17章 設計戦略  第18章 テスト戦略  第3セクション XPを実装する 第19章 XPを採用する  第20章 XPを改良する  第21章 理想的なXPプロジェクトのライフサイクル  第22章 人の役割  第23章 20-80ルール  第24章 XPを難しくするもの  第25章 XPを試すべきでないとき  第26章 現場でのXP  第27章 結論  第1章 XPとは何か 第II部 XPの哲学 第17章 はじまりの物語 第18章 テイラー主義とソフトウェア 第19章 トヨタ生産方式 第20章 XPの適用 第21章 エクストリームの純度 第22章 オフショア開発 第23章 時を超えたプログラミングの道 第24章 コミュニティーとXP 第25章 結論 第I部 XPの探求 第2章 運転を学ぶ 第3章 価値、原則、プラクティス 第4章 価値 第5章 原則 第6章 プラクティス 第7章 主要プラクティス 第8章 始めてみよう 第9章 導出プラクティス 第10章 XPチーム全体 第11章 制約理論 第12章 計画:スコープの管理 第13章 テスト:早めに、こまめに、自動化 第14章 設計:時間の重要性 第15章 XPのスケーリング 第16章 インタビュー 章立ての大項目が初版と2版で全く異なる
  4. 初版と2版の目次構成 第1セクション 問題 第1章 リスク  第2章 開発のエピソード  第3章 ソフトウェア開発の経済学  第4章 4つの変数  第5章 変更のコスト  第6章 運転の取得  第7章 4つの価値  第8章 基本原則 

    第9章 基本に戻る  第2セクション 解決策 第10章 概略  第11章 各実践がどのように機能するか  第12章 管理戦略  第13章 ファシリティ戦略  第14章 ビジネス上と技術上の責任を分ける  第15章 計画戦略  第16章 開発戦略  第17章 設計戦略  第18章 テスト戦略  第3セクション XPを実装する 第19章 XPを採用する  第20章 XPを改良する  第21章 理想的なXPプロジェクトのライフサイクル  第22章 人の役割  第23章 20-80ルール  第24章 XPを難しくするもの  第25章 XPを試すべきでないとき  第26章 現場でのXP  第27章 結論  第1章 XPとは何か 第II部 XPの哲学 第17章 はじまりの物語 第18章 テイラー主義とソフトウェア 第19章 トヨタ生産方式 第20章 XPの適用 第21章 エクストリームの純度 第22章 オフショア開発 第23章 時を超えたプログラミングの道 第24章 コミュニティーとXP 第25章 結論 第I部 XPの探求 第2章 運転を学ぶ 第3章 価値、原則、プラクティス 第4章 価値 第5章 原則 第6章 プラクティス 第7章 主要プラクティス 第8章 始めてみよう 第9章 導出プラクティス 第10章 XPチーム全体 第11章 制約理論 第12章 計画:スコープの管理 第13章 テスト:早めに、こまめに、自動化 第14章 設計:時間の重要性 第15章 XPのスケーリング 第16章 インタビュー 問題→解決策の流れにパターンランゲージぽさをうっすら感じる
  5. 初版の大項目がパターンランゲージぽいのはなぜか? 『XPエクストリーム・プログラミング入門』では、アレグザンダーについてどのように 触れられているのでしょうか。 まず、初版にはアレグザンダーの名前は出てきません。 これは、ソフトウェア開発にパターンランゲージを取り入れる活動において、普通のプロ グラマにアレグザンダーのパターンランゲージを伝えることの難しさを痛感したからのよ うです。特にソフトウェアの世界ではデザインパターンが大成功していたために、下手に パターンという言葉を使うとデザインパターンのことと誤解されてしまいます。 そのため、アレグザンダーやパターンランゲージという言葉を一切使わないようにしたよ うです。しかし、初版の5年後に出版された第2版では、第23章「時を超えたプログラミン

    グの道」において、アレグザンダーの夢は建築の利用者と設計者とが一致する世界だった こと、そしてベックの夢はそのような利用者と設計者の関係をソフトウェア開発の世界で 実現することであると、明解に語っています。 『パターン、Wiki、XP』に、仮説に対する答えが載っていた やっぱりケント・ベックはパターンランゲージを避けていた! 初版の課題→解決策という説明の改善として、2版では「価値とプラクティスの間を原則が 橋渡しする」というモデルを使った説明が導入されたのかもしれない。 仮説は意外といい線いっていた “                ”
  6. 初版と2版の記載内容をマッピング 初版はXPが何かを教えてくれた。 そして、多くの人たちのソフトウェア 開発に対する考えを変えた。 第2版では、それをさらに推し進めて、 XP のさまざまな「なぜ」を教えてくれる。 それは、プラクティスの背景にあ る動機や原則のことだ。素晴らしい内容である。「 what」に加えて

    「why」を身に付ければ、プロジェクトをうまく実行する方法や、組織に アジャイル技法を導入する方法などの「 how」に自信を持って取り組め るだろう。 デイヴ・トーマス(Dave Thomas), The Pragmatic Programmers LLC 「XP第2版 推薦の言葉」より 初版の内容は全て2版の1部に入っている! XPとは何か? (What) XPとは何か?  XPはなぜそうなのか? (What)       (Why) 初版 2版 “           ”
  7. あらためて初版と2版の目次構成を眺める 第1セクション 問題 第1章 リスク  第2章 開発のエピソード  第3章 ソフトウェア開発の経済学  第4章 4つの変数  第5章 変更のコスト  第6章 運転の取得  第7章 4つの価値  第8章 基本原則 

    第9章 基本に戻る  第2セクション 解決策 第10章 概略  第11章 各実践がどのように機能するか  第12章 管理戦略  第13章 ファシリティ戦略  第14章 ビジネス上と技術上の責任を分ける  第15章 計画戦略  第16章 開発戦略  第17章 設計戦略  第18章 テスト戦略  第3セクション XPを実装する 第19章 XPを採用する  第20章 XPを改良する  第21章 理想的なXPプロジェクトのライフサイクル  第22章 人の役割  第23章 20-80ルール  第24章 XPを難しくするもの  第25章 XPを試すべきでないとき  第26章 現場でのXP  第27章 結論  第1章 XPとは何か 第II部 XPの哲学 第17章 はじまりの物語 第18章 テイラー主義とソフトウェア 第19章 トヨタ生産方式 第20章 XPの適用 第21章 エクストリームの純度 第22章 オフショア開発 第23章 時を超えたプログラミングの道 第24章 コミュニティーとXP 第25章 結論 第I部 XPの探求 第2章 運転を学ぶ 第3章 価値、原則、プラクティス 第4章 価値 第5章 原則 第6章 プラクティス 第7章 主要プラクティス 第8章 始めてみよう 第9章 導出プラクティス 第10章 XPチーム全体 第11章 制約理論 第12章 計画:スコープの管理 第13章 テスト:早めに、こまめに、自動化 第14章 設計:時間の重要性 第15章 XPのスケーリング 第16章 インタビュー
  8. あらためて初版と2版の目次構成を眺める 第1セクション 問題 第1章 リスク  第2章 開発のエピソード  第3章 ソフトウェア開発の経済学  第4章 4つの変数  第5章 変更のコスト  第6章 運転の取得  第7章 4つの価値  第8章 基本原則 

    第9章 基本に戻る  第2セクション 解決策 第10章 概略  第11章 各実践がどのように機能するか  第12章 管理戦略  第13章 ファシリティ戦略  第14章 ビジネス上と技術上の責任を分ける  第15章 計画戦略  第16章 開発戦略  第17章 設計戦略  第18章 テスト戦略  第3セクション XPを実装する 第19章 XPを採用する  第20章 XPを改良する  第21章 理想的なXPプロジェクトのライフサイクル  第22章 人の役割  第23章 20-80ルール  第24章 XPを難しくするもの  第25章 XPを試すべきでないとき  第26章 現場でのXP  第27章 結論  第1章 XPとは何か 第II部 XPの哲学 第17章 はじまりの物語 第18章 テイラー主義とソフトウェア 第19章 トヨタ生産方式 第20章 XPの適用 第21章 エクストリームの純度 第22章 オフショア開発 第23章 時を超えたプログラミングの道 第24章 コミュニティーとXP 第25章 結論 第I部 XPの探求 第2章 運転を学ぶ 第3章 価値、原則、プラクティス 第4章 価値 第5章 原則 第6章 プラクティス 第7章 主要プラクティス 第8章 始めてみよう 第9章 導出プラクティス 第10章 XPチーム全体 第11章 制約理論 第12章 計画:スコープの管理 第13章 テスト:早めに、こまめに、自動化 第14章 設計:時間の重要性 第15章 XPのスケーリング 第16章 インタビュー XPとは何か? (What) XPとは何か? (What) 初版を改訂した内容 XPはなぜそうなのか? (Why) 第1章は初版発行後 5年の経験を踏まえ てケント・ベック 自身が書いた序文 の位置付け (XPの序文自体はエ リック・ガンマが執筆) XP2版の章立ての構造がだいぶクリアになった!(あくまで仮説だけど)
  9. 初版はプログラマが対象で2版は関係者全員が対象だから? 初版と2版の大きな違いは、ケント・ベックがXPの対象をどこに置いているか プログラマはXPの主役である。   「XP初版 第22章 人の役割」より ソフトウェア開発に関係している人は、人間として等しく重要である。他の人よりも本質的に 重要な人などいるはずがない。ソフトウェア開発において人間性と生産性を同時に高めるに は、チームに対する個人の貢献をリスペクトする必要がある。 「XP2版

    第4章 価値」より XPの価値は、ビジネスの世界で実践すべきものだ。快適に暮らせる生活を送るだけでなく、 関係者全員がお互いにリスペクトした人間関係によって、新しい働き方を開発するのである。                              「XP2版 第25章 結論」より 初版 2版 2版翻訳者の角さんの講演「エクストリームプログラミングー基本に立ち戻れー」でも、 ケント・ベック自身が初版はプログラマ中心だったと述べていると触れられている。 https://www.docswell.com/s/kdmsnr/Z97LLK-xp-back-to-the-basics “       ” “                ” “                ”
  10. yasugahira0810の学び〜「XPはソーシャルチェンジである」完全に理解した〜 人の本性に背かず、本性に沿った仕事: 人は勝利が好きである。人は学習が好きである。人は他人と交わることが好きである。                                       「XP初版第8章 基本原則」より 問いをぶつけてメンバで会話 現在は組織重力の第1法則が働き、人々は顧客と向き合うことを避けるような仕事の仕方をしている。 でも本来、人は他人と交わることが好きなのだから、社会はそういった人間の本性が発揮されるよう な仕事の仕方をしていくべき、という主張なのでは? 「XPはソーシャルチェンジである」ってこういうことかも

    長年の疑問に対する理解が進んだ瞬間 組織の個人は日々の責任やインセンティブと整合性がなければ、顧客と向き合う仕事を避ける                                            「みんなでアジャイル」より 仕事のシーンを思い返した時、「人は他人と交わることが好きである。」とは思えない。 「みんなでアジャイル」に記載の「組織重力の第1法則」の方がしっくりくる。 組織重力の第1法則: “                 ” “                 ”
  11. tfujitaの学び - 初版はプログラマであるケント・ベック自身の視点で書かれたのかな - だからこそ、思いや葛藤、体験、苦労がリアルで、プラクティスを強制して いるように感じるところもあったのかもしれない - 自分も、初版の第24章 XPを難しくするもの154pにあるように、何の感情も 持たないロボットのように装い、同僚から距離をおいてソフトウェア開発を

    しようと思っていたことがあるので、身近に感じられた。 - そういった思いが初版の方が原初的で、自分には伝わりやすく、会読会の思 い出もあって心に残った。 - この思いをきっかけに、XPをもとにチーム憲章を作った。常識を原理と し、極限まで実践するというのが、シンプルで仲間に伝わりやすいように思 う。 - これからもエクストリームを目指して試行錯誤したい。
  12. kfjtの学び - 2版は”比喩だらけで読みづらい”と思いました。 - 初版では重要な実践としてメタファが紹介されていました。 - 2版からXP本にふれた私はその重要性に気づかず、ただ”読みずらい”と感 じました。 - 著者は明らかにメタファの持つ力を信じています。初版をリファクタリング

    した結果、2版は各章が比喩だらけなのですから。 - 2版ではXPチームのインタラクションデザイナーが、システム全体のメタ ファを選ぶ役割に選ばれました。 - ”メタファの導出は、重要だけど、全員が実践するには難し過ぎる” と判断 したのでしょうか?
  13. watagashiの学び 遠ざかっていた本を読み返すきっかけをくれる会読会 - 20年前は難解だった初版 → 今だから戻れる原点と気付く 2版 - 初版の主張はほぼそのままに、 穏やかで受け入れ易い表現に改め

    - XP がプログラマーなど 限られた人のための物ではない ことをより強調 初版 - 「究極」の追求による ソフトウェア開発の進化を主張 - プログラマーの復権に重点 (人によっては受け入れ難い?) 2版を初版の改訂ではなく副読本として使う - 2版で頭をほぐしながら初版を読むことで深まる理解
  14. まとめ 1. カイドクで見いだした仮説    初版の章立てに隠された意図とは!?    初版と2版をマッピングして浮かび上がる真実!?    2版で“リスペクト”が追加されたのはなぜ!? 2.

    メンバそれぞれの学び    yasugahira0810の学び    tfujitaの学び    kfjtの学び    watagashiの学び    kuroの学び 3. (発表から) 溢れ出る学びたち    その他会読会での学びリスト XP初版と2版を読み込んで見いだ した仮説を3つ紹介しました。 あなたはどう思いましたか? メンバの学びを紹介しました。 両方読んだことで様々な学びが あったことが伝われば幸いです 残念ながら発表で紹介しきれない 学びがたくさんあります。スライ ド末尾にリストで掲載しておくの で、興味ある方はご覧ください
  15. 初版の学びたち No. 項目 学び 1 まえがき 2版には記載されていない、XPのエクストリームたる所以が書いてある! 2 第6章 運転の取得

    運転のメタファーは初版にも2版にも掲載されている。XPを説明する良いエピソード。 3 第9章 基本に戻る 従来の開発手法だとヒアリング(リスニング)→設計→コーディング→テストになりそうだが、コーディン グ→テスト→ヒアリング(リスニング)→設計になっていた。これは、「基本に戻る」がプログラミングを 始めたときに、まずコーディングするようなスタイルのことを指していて、この順番にしたのは、設計し 過ぎてしまう従来開発に対するアンチテーゼの意図もあるのでは?という仮説を立てた。 4 第10章 概略 「計画ゲーム」のゲームは、遊戯や競技の意味ではなく駆け引きや計画の意味で解釈するとわかりやすい 5 第10章 概略 「メタファ(比喩)」は、クリーンアジャイルの内容を踏まえると、DDDのユビキタス言語をイメージし ながら読むと良いかもしれない 6 第10章 概略 「ペアプログラミング」について会話していて、ペアプログラミング登場当時、メンバが奇数だったとき に3人でコーディングする際は、「トリプレット」と呼んでいたというお話を聞いて、印象深かった。 7 第12章 管理戦略 「コーチング」に記載のある「正しいおもちゃ」は、現代でいうとチャットBOTだったり、チャット絵 文字に該当するかもしれない 8 第17章 設計戦略 「第16章 開発戦略」→「第17章 設計戦略」の流れに、事前に設計しすぎるのではなく、小さいところか ら全体を描いていくことを伝えようとする意図を感じる
  16. 初版の学びたち No. 項目 学び 9 第22章 人の役割 2版ではなくなってしまってしまっているが、スポーツチームのメタファーがわかりやすい。役割に合う 人がいなければ役割の方を変えるというのが印象的。 10

    第25章 XPを試す べきでないとき 「第24章 XPを難しくするもの」とともに、ネガティブな内容が記載されており、 2版になってポジティブなメッセー ジに言い換えられているように感じる。 11 第27章 結論 「期待」を見ると、鬼滅の刃の全集中常中が想起される!
  17. 2版の学びたち No. 項目 学び 1 第1章 XPとは何 か 「XPはソーシャルチェンジである」は、初版にはない文章。5年の実践を経て、XPを一言で表すために 適切な言葉として、ケント・ベックが見つけたのかもしれない 2

    第10章 XPチー ム全体 「経営幹部」の文章量が多い。それに対して、「プログラマー」の文章量は初版に比べてかなり短くなっ ている。ケント・ベックが読者に代わってソフトウェア開発の関係者にXPをしっかり説明してくれてい るようで、やさしさを感じる 3 第16章 インタ ビュー コラムみたいな位置付けだと思って読むと良さそう 4 第17章 はじまり の物語 コラムみたいな位置付けだと思って読むと良さそう 5 第21章 エクスト リームの純度 コラムみたいな位置付けだと思って読むと良さそう