6.6K Views
September 12, 15
スライド概要
XP lives (past) 1999/10 2004/11 2007/11 翻訳もあるよ 2
当時のツールたち (おじさんたちに聞いてみよう) 1997- 2004- 2001- 2000- 2005?- 2004?- 3
XP dies ... and Scrum lives 4
Scrum lives ... By 2006, we had 30,000 CSMs. By early 2009, there were more than 60,000 CSMs. https://www.scrum.org/About/Origins 5
... and gets dying (自分で作った組織に追い出される) (2009年8月に辞任勧告) in August 2009 when the Scrum Alliance board of directors unanimously asked for my resignation https://www.scrum.org/About/Origins 6
ダメなスクラム(ヘロヘロScrum) http://martinfowler.com/bliki/FlaccidScrum.html 7
Agile is Dead http://pragdave.me/blog/2014/03/04/time-to-kill-agile/ 8
達人デイヴの激怒事件 2人の"アジャイルコンサル"の会話 ‣👤<10年プログラム書いてないよw ‣👤<俺なんか20年書いてないよwww ‣ <なめとんのか💢 「Agile is Dead」 基調講演の予定を変更 http://www.infoq.com/jp/news/2014/11/pragmatic-dave-agility 9
アジャイルの意味が失われた http://blog.toolshed.com/2015/05/the-failure-of-agile.html 10
https://vimeo.com/131410262 11
http://growsmethod.com/ 12
名前だけアジャイルが多すぎる http://sdtimes.com/james-grenning-on-agile-work-still-needs-to-be-done/2/ 13
おかしなアジャイルが増えている http://www.akitaonrails.com/2010/06/16/railsconf-2010-video-interview-robert-martin-english 14
デイヴ様からのご提案 http://www.thoughtworks.com/talks/the-death-of-agile 15
1.「アジャイル」を広めよう まずは言葉に興味を持ってもらおう 16
2. みんなに届けられる商品 書籍、研修、コンサル、認定資格、カンファレンス 17
3. 難しく見えるような工夫 カタカナ用語、新しい役割、新しいメトリクス 18
4. 開発者に売りつけよう👍 こんなに魅力的なアジャイルを使っていない開発者はバカだ! 19
5. 企業に売りつけよう👍👍 これからは「エンタープライズアジャイル」の時代です! 20
6. IT業界以外にも!👍👍👍 アジャイルで組織変革! ハードウェアもアジャイル! リーン! 21
デイヴ様からのご提案 http://www.thoughtworks.com/talks/the-death-of-agile 22
一方的に「与える」モデル💀 Mad Max: Fury Road 23
Welcome to the Wasteland (again) Mad Max: Fury Road 24
XP lives again !! Mad Max: Fury Road 25
XPE2ndのいいところ やり方が書いてない! (自分たちで考えるしかない) 教え方がわからない! (自分たちで考えるしかない) 26
私からのご提案 これから「"俺も"XPを導入したい」と思う皆様へ ‣0. プリクエル🎬 ‣1. 人間性を重視したときめき💖 2. 適応型計画づくりとその技術🌿 ‣ ‣3. もっとエクストリーム🚀 27
お前は誰だ ‣角 征典(@kdmsnr) ‣ワイクル株式会社(取締役、プログラマ) •アジャイル開発/リーンスタートアップの導入研修&コンサル ‣東京工業大学大学院理工学研究科(特任講師) ‣書籍翻訳 28
プログラミングチョットデキル(本当の意味で) ‣公開できるものは少ない……。 ‣Re:VIEW • https://github.com/kmuto/review • 組版ツール。XPE2ndもぜんぶコレ。 http://www.slideshare.net/kenshimuto/review-36769754 ‣卒業制作っぽいやつ • https://github.com/jointry/jointry • Scratchモドキのペアプロツール。 ‣プログラミングの本 29
20分経過 30
0. プリクエル🎬 31
すでに通った道(あとで見てね) 今日はこれとは違ったことを話します http://www.slideshare.net/kdmsnr/xpjunkudo-20150626 https://www.youtube.com/watch?v=YRFWWS_2Epo 32
アジャイルマニフェストの歴史 http://www.agilemanifesto.org/history.html
Q. 「アジャイル」を 提案したのは誰? 34
A. マーティン・ファウラー https://www.flickr.com/photos/pragdave/173640462 35
なぜなら発音が違うから ‣ アジャイル http://www.macmillandictionary.com/dictionary/american/agile ‣ アジル http://www.macmillandictionary.com/dictionary/american/agile 36
若い人は知らないかも……。 http://capsctrl.que.jp/kdmsnr/wiki/bliki/ 37
最近、移動しました。 http://bliki-ja.github.io/ 見てね! 38
💬Conversational(対話) https://www.youtube.com/watch?v=Z8aECe4lp44 39
フラストレーション https://www.youtube.com/watch?v=Z8aECe4lp44 40
http://www.eng.titech.ac.jp/~cbe/ 41
42
何度も協力して知識を増やす 43
http://www007.upp.so-net.ne.jp/kengai/fowler/newMethodology_j.html 44
まとめ職人すごい https://www.youtube.com/watch?v=TgdFA72crHM 45
トヨタウェイと(だいたい)同じ http://www.toyota.co.jp/jpn/sustainability/report/archive/html2012/employees/ 46
30分経過 47
1. 人間性を重視したときめき💖 48
https://en.wikipedia.org/wiki/Frederick_Winslow_Taylor
科学的管理法 https://en.wikipedia.org/wiki/The_Thinker https://en.wikipedia.org/wiki/Modern_Times_(film) http://www.sherlockology.com/props/sherlocks-magnifier 51
我々はモノではない Mad Max: Fury Road 52
モノの証明(認定) 53 http://www.sheknows.com/entertainment/articles/1079908/things-that-make-no-sense-in-the-new-mad-max-trailer
モノの証明(認定) 第21章 54
モノではない何か 55
バートランド・ラッセル 進歩のために必要な個人の独創性と 存続のために必要な社会的結合を どのように組み合わせることができるか https://www.youtube.com/watch?v=9EF4I7HM0zI 56
57
とはいえ、誰とでも仲良く なれるはずがない👾 58
新しいソーシャルチェンジ 59
三本柱(HRT) ‣謙虚(Humility) •自分が間違ってるかもしれないと考えよう ‣尊敬(Respect) •一緒に働く人のことを大切に扱おう ‣信頼(Trust) •自分以外に仕事を任せよう 60
http://blog.qiita.com/post/74997115585/increments-dev-team-culture 61
https://speakerdeck.com/mdoi/kai-fa-suruyouniyun-yong-suruinhura-jaws-days-2015
まず「HRTの文化」を作る ここは好き嫌い関わらず、最低限守ってもらう 63
三本柱(HRT) ‣謙虚(Humility) •自分が間違ってるかもしれないと考えよう ‣尊敬(Respect) XPの価値の1つ •一緒に働く人のことを大切に扱おう ‣信頼(Trust) •自分以外に仕事を任せよう 64
ペアプログラミング http://en.wikipedia.org/wiki/Pair_programming 65
ペアプログラミング(の演習) ‣チームの最小単位は「ペア」 ‣「楽しい」を最初に経験する •普段から実際にやれというわけではない ‣フィードバック、コミュニケーション XPの価値の2つ 実施例: ‣ •クックパッド社新卒研修(2015)他数社 •公開研修もやってます: http://waicrew.doorkeeper.jp 66
40分経過 67
シンプリシティ XPの価値の1つ 68
http://time.com/3822899/marie-kondo-2015-time-100/ 69
こんまり流片付け術 ‣1. モノを捨てること ‣2. 収納場所を決めること 70
こんまり流片付け術 ‣1. モノを捨てること •「捨てるモノ」ではなく「残すモノ」を選ぶ ‣2. 収納場所を決めること 71
こんまり先生いわく “ Does it spark joy? (それはときめく💖か?) ” 72
なんか聞いたことがある! 73
⇒ ときめき💖の道 74
プラクティス == パターン 75
プラクティス == パターン 76
プラクティス == パターン 77
ときめく💖プラクティスを選ぶ 78
もはやどうでもいい!
ここまでのまとめ ‣人間性が大切 ‣人をモノ扱いする認定とかいらない ‣まずはHRT(with『Team Geek』) ‣ペアプログラミングをやってみよう ‣ときめく💖プラクティスを選択しよう 80
2. 適応型計画づくりとその技術🌿 81
XPが目指している(いた?)もの Kent Beck, "Extreme Programming Explained" 82
できることを増やすプラクティス (enabling practices) http://www.objectclub.jp/community/XP-jp/xp_relate/isdesigndead 83
できることを増やすプラクティス ‣ソフトウェアの設計: •1. テスト(自動テスト) •2. 継続的インテグレーション •3. リファクタリング ‣他の分野にもあるはず! •けど、何かはわからない……。 http://bliki-ja.github.io/SpreadingIncrementalism/ 84
バリー・ベームからの反論 いや、それでもダメ 85
引用元:『Making Software』(オライリージャパン) 10章「アーキテクティング:いつ、どれだけ?」 by バリー・ベーム 86
設計=スタミナ仮説 http://bliki-ja.github.io/DesignStaminaHypothesis/ https://www.youtube.com/watch?v=DngAZyWMGR0 87
設計=スタミナ仮説 http://bliki-ja.github.io/DesignStaminaHypothesis/ https://www.youtube.com/watch?v=DngAZyWMGR0 88
設計=スタミナ仮説 http://bliki-ja.github.io/DesignStaminaHypothesis/ 数週間じゃないかな?(MF) https://www.youtube.com/watch?v=DngAZyWMGR0 89
技術的負債の四象限 意図的 無鉄砲 島本和彦『燃えよペン』 井上雄彦『SLAM DUNK』 不注意 高橋陽一『キャプテン翼』 http://bliki-ja.github.io/TechnicalDebtQuadrant/ 慎重 横山光輝『三国志』 90
KB:「いつやるか?」「あとで」 (ん?どういうこと?) 91
「経験」してから設計する ‣最終責任時点 •意思決定は遅いほうがチャンスは大きい(by ポッペンディーク) •とはいえ、いつが「最終」なのか不明 😓 ‣セットベース開発 •複数の案を実装してみる •→ そこから選ぶ😄 •「熟考」だけよりいいものができる(可能性が高い) ‣可逆性を確保する •できるだけあとでやり直せるようにする(→次ページ) 92
可逆性を確保せよ https://www.facebook.com/notes/kent-beck/taming-complexity-with-reversibility/1000330413333156 93
できることを増やすプラクティス (あとで読んでね) ‣Development servers ‣Shadow production ‣Code review ‣Internal usage ‣Staged rollout ‣Dynamic Configuration ‣Correlation ‣IRC ‣Right hand side units ‣Frequent pushes ‣Data-informed decision ‣Advance countries ‣Soft launches ‣Double write/bulk migrate/double read https://www.facebook.com/notes/kent-beck/taming-complexity-with-reversibility/1000330413333156 94
https://twitter.com/martincronje/status/636170140166561793 95
Facebookの事例 たぶんKB D. G. Feitelson, E. Frachtenberg, and K. L. Beck, “Development and deployment at facebook,” IEEE Internet Comput., vol. 17, no. 4, pp. 8–17, 2013. 96
Facebookの事例 ‣永久に開発(継続的デプロイ) •実際のデプロイは週1回。内部リリースは1日2回。 ‣「A/Bテスト」で実験 •「経験」してから選択する •「まだ要求開発や仕様書で消耗してるの?」 ‣6週間の新人研修 •書いたコードをすぐにリリースする訓練 ‣エンジニアには責任と覚悟が欠かせない D. G. Feitelson, E. Frachtenberg, and K. L. Beck, “Development and deployment at facebook,” IEEE Internet Comput., vol. 17, no. 4, pp. 8–17, 2013. 97
Facebookの事例 ますます活性化 D. G. Feitelson, E. Frachtenberg, and K. L. Beck, “Development and deployment at facebook,” IEEE Internet Comput., vol. 17, no. 4, pp. 8–17, 2013. 98
その他の事例(2つ) 99
100
Railsの事例 草稿 Paolo Perrotta『メタプログラミングRuby 第2版』(オライリー・ジャパン) 101
Railsの事例 草稿 Paolo Perrotta『メタプログラミングRuby 第2版』(オライリー・ジャパン) 102
http://reviewml.org/ 103
まあまあ長い開発期間 http://www.slideshare.net/kenshimuto/review-36769754 104
Re:VIEWの事例 ‣普通のFLOSS開発(自動テスト + TravisCI) ‣課題駆動開発(リアルに困ったものを実装する)※熟考 + 経験 •自分の仕事(組版や出版事業)に使っているので切実 •「あったら誰かが使いそう」みたいな機能はあんまり入らない ‣書籍データが別にあるので後方互換性が超大切 •安易に新機能入れたら対応が大変😢 (増刷のつらみ……) ‣コミケ駆動開発(2、6、10月リリース)が特徴的 ‣開発者会議を不定期に実施 •チケットの落ち穂拾いと利用者( 開発者)のヒアリング ‣ムトゥ神(@kmuto)のスライドおすすめ http://www.slideshare.net/kenshimuto/ 105
http://www.slideshare.net/kenshimuto/write-once-publish-anywhere 106
できるだけ理解しやすいコードを書く 祝:5万部突破😊 107
ここまでのまとめ ‣適応型プランニング(変化を受け入れるには?) ‣できることを増やすプラクティス •テスト、CI、リファクタリング ‣とはいえ、設計重要( 技術的負債) •「設計」の発想を転換 →「経験」してから設計する •自分たちの選択したプログラミング言語が設計を教えてくれる ‣熱心に使う/作る人がいれば続けられる •リーダブルコードも読んでね 108
55分経過 たぶん超える……(予言) 109
3. もっとエクストリーム🚀 110
自分たちで プラクティス(パターン) を作るしかない!! 112
プロジェクト 113
⇒プロダクト ‣もはや(実質的に)終わりはない •プロジェクト:有期性の業務(PMBOK) •短期決戦の戦略思考(戸部、野中他『失敗の本質』) ‣すくなくとも両者を区別しよう •Project Manager / Product Manager ‣チームにプロダクトをつけよう •プラクティス「チームの継続」「責任の引き受け」 •Uncle Bob Martin『Clean Coder』も参照(宣伝……) 114
ペアプログラミング 115
⇒ モブプログラミング https://www.youtube.com/watch?v=p_pvslS4gEI 116
Hohman, Moses M., and Andrew C. Slocum. "Mob Programming and the Transition to XP." proc. First XP Universe Conference. 2001. 117
こんなときに使おう ‣プロジェクトの初期 ‣難しい or 新しい技術を学ぶとき ‣新しいメンバーが入ったとき ‣トラブル発生時 ‣などなど 118
懸念点 For many organizations, mob programming is too extreme; a WIP limit of one is probably not suitable for everyone. 翻訳はしばし待て!! 119
ストーリー 120
⇒ 仮説(指標も一緒に) 121
作ったら終わりではない ‣仮説は検証されるまで続く •「何を検証するか」を明確に ‣コードを書かなくても検証可能な こともある(アイデア次第!) •『Lean Analytics』にいろいろ載ってる (宣伝ばかりでスミマセン……) 122
その他いろいろ 123
インクリメンタルな設計 ⇒ ‣ リバーシブルな設計 •Facebookの話みたいな感じ ‣ ランタイムな設計 •動かしながら設計を変えていく •(それSmalltalkでできるよ) 124
テストファースト ⇒ ‣ 仮説テストファースト •仮説を検証するために何ができるか •結果が出るまでに時間がかかるのが難点 ‣ 探索的テストファースト •テスターと協業 •フィードバックループの深化 125
本物の顧客参加 ⇒ ‣ 本物の顧客開発 •建物の外に出て、顧客を見つけ出す ‣ 本物のユーザー参加 •早い段階から実際に使ってもらおう 126
チームの縮小 ⇒ ‣ マイクロチーム(cf. マイクロサービス) •Bounded Contextごとにチーム文化を生成 •それぞれが自律している(ex. Spotifyのチーム) ‣ ひとりのチーム •フルスタックエンジニア(死語? •スタンドプレーから生じる〜みたいな ‣ マシンのチーム •チャットで話しかけたらボットだった!! •データ駆動で意思決定を支援(cf.「アイアンマン」のジャービス) 127
[NEW] プロボノ(ボランティア + 公共性) ‣弁護士や医師などの活動 ‣社会に役立つソフトウェア開発 •ex. Code for Japan ‣社会的な意味での 「ソーシャルチェンジ」 128
他にも考えてみてください! 129
全体のまとめ ‣おじさんたちの青春(XP lives) ‣もはやアジャイルは死んだ(Agile/XP dies) ‣XPなら自分たちでやれる(XP lives again) ‣人間性の回復 •HRT、ペアプロ、ときめき、ゆとり ‣適応性の維持 •できることを増やす、経験重要、続けることが正義 ‣もっとエクストリームにするたゆまぬK.U.F.U. 130
おわりに 131
ラズベリージャムの法則 広げれば広げるほど薄くなるさ。 G.M.ワインバーグ『コンサルタントの秘密』 132
イチゴジャムの法則 粒があれば、どこまでも薄くはならない。 G.M.ワインバーグ『コンサルタントの道具箱』 133
自分の道を歩き出す「勇気」を XPの価値の最後の1つ 荒木飛呂彦『ジョジョの奇妙な冒険』 134
135
おしまい & 質疑応答 @kdmsnr [email protected] XPに限らず、 お話しましょう :-) 136