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

XP入門と私 / Introduction_of_extream_programming_and_I

Atsushi Fukui
November 26, 2022

XP入門と私 / Introduction_of_extream_programming_and_I

XP入門と私
現場から学ぶモデル駆動の設計 第21回で発表した資料です。
https://modeling-how-to-learn.connpass.com/event/261859/

Atsushi Fukui

November 26, 2022
Tweet

More Decks by Atsushi Fukui

Other Decks in Technology

Transcript

  1. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. XP⼊⾨と私 〜⾃分を変えたXPの紹介をしてみます〜 Atsushi Fukui Senior Solutions Architect, Developer Specialist - DevAx Amazon Web Services Japan
  2. © 2022, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. ⾃⼰紹介 v名前 v 福井 厚(ふくい あつし)Twitter: [email protected] v所属 v アマゾン ウェブ サービス ジャパン合同会社 v シニアソリューションアーキテクト Developer スペシャリスト DevAx v経歴 v 2015年からAWSでソリューションアーキテクトとして活動。 「AWSモダンアプリケーション開発ホワイトペーパー」の著者。 v関⼼領域 v ソフトウェア アーキテクチャ、オブジェクト指向設計、アジャイル開発
  3. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 私の略歴
  4. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 私のエンジニア経歴 1980 1990 2000 2010 2020 カスタマ サポート フィールドSE プログラマー システムエンジニア アーキテクト PM ソフトウェア開発 コンサルタント AWSソリューション アーキテクト XPとの出会い 外資系に転職しカルチャー の違いを実感 コミュニティー 活動を活発化 NAgile、VSUG ユーザー企業にソフトウ ェア開発のスキルを クラウドを活⽤した ソフトウェエア開発⽀援を推進 オブジェクト指向プログラミング との出会い
  5. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. XP⼊⾨
  6. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. でもXPのエキスパートでも何でもないので。。。 ⾃分が体験して感じて学んだことを共有します
  7. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. XPとは何か(エクストリームプログラミングより) • エクストリームプログラミング(XP)はソーシャルチェンジ • 効果のない技術的/社会的な古い習慣を捨て、効果のある新しい 習慣を選ぶこと • ⾃分が今⽇やるべきことを⼗分に理解すること • 明⽇をよりよくしようとすること • チームのゴールに貢献した⾃分を評価すること • ソフトウェア開発で⼈間としての欲求を満たすこと
  8. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. (私)XPに出会うまでの⾃分⾃⾝が経験した悩み • 要件が不確定、不明確 • 予想外のことが起こりスケジュールが遅延 • 遅延に伴いテストが省略され品質が低下 • 要件が変わる、⼈が変わる、チームが変わる • 他の⼈より少し技術⼒があったので、様々なプロジェクトに ⽕消し役として投⼊される • その他、⾊々...
  9. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. XPでは開発プロセスのリスクにどのように対応するか • スケジュールの遅延 – リリースサイクルは短期間で遅延の範囲は限定される – 1週間のイテレーションでフィーチャーを作り、進捗を細かくフィードバックする – 優先順の⾼いフィーチャーから実装するため、リリースできなかったフィーチャーの重 要度は低い • プロジェクトの打ち切り – ビジネスに意味をもたらす最⼩限のリリースをチームのビジネス担当に選択してもらい 、ソフトウェアのバリューを最⼤化する • システムの劣化 – 包括的な⾃動テストスィートを作成/保守。ベースラインとなる品質が確保される。常に デプロイ可能な状態に保つ。
  10. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. エクストリームプログラミングでは • 品質を犠牲にするのは、効果的なコントロール⽅法ではない • ⾼品質を要求することで、プロジェクトが遅くなることもない • むしろ品質を⾼めることで、デリバリーが⾼速になることが多い • 品質基準を下げてしまうと、デリバリーが遅くなり、予測できな くなってしまう • 時間とコストは固定されていることが多いため、プロジェクトの 計画、追跡、運営の主な⼿段として、スコープを選択する
  11. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. ⾞の運転はXPのメタファ 運転というのは⾞を正しい⽅向に⾛ら せることではない。常に注意を払って 、 こっちに⾏ったら少し戻して、あっち に⾏ったら少し戻して、そうやって軌 道修正していくもの • ソフトウェアはあらゆるものが変化する – 要件、設計、ビジネス、チーム、チームメンバー – 変化は問題ではない、問題は変化に対応できないこと § 顧客はシステムの内容を「運転」、チーム全体は開発プロセスを「運転」
  12. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. ちなみに、XPというとプラクティスと思い勝ちで。。。 • 計画ゲーム • 短期リリース • メタファ • シンプルな設計 • テスト • リファクタリング • ペアプログラミング • 共同所有 • 継続した結合(CI) • 40時間労働 • オンサイトの顧客 • コーディング規約 (参考)第⼀版の時のプラクティス
  13. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. (私)最初はプラクティスを実践することがXPだと思っていた • 価値と原則とプラクティスの関係を深く考えずに勘違いしていた • 第⼀版のプラクティスで出来そうなものから始めていた – 短期リリース、シンプルな設計、テスト駆動開発、継続的インテグレーション、 リファクタリング、ペアプログラミング、etc... XPは⼈にフォーカスしていると気づいた時に、間違いに気づいた コミュニティーがそれを気づかせてくれた
  14. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. "ペアプログラミングが「チェックボックスにチェックを⼊れる」 ⾏為であれば、何の意味もない。上司を満⾜させるためのもので あれば、不満が募るだろう。それが、コミュニケーションであり、 フィードバックを獲得するものであり、システムをシンプルにする ものであり、エラーを捕捉するものであり、勇気のある⾏動を⿎舞 するものであれば、ペアプログラミングには⼤きな意味がある。" Kent Beck,Cynthia Andres. エクストリームプログラミング (Japanese Edition)
  15. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 価値、原則、プラクティス 価値 プラクティス ⽬的をもたらす 価値の証拠 ⽇常的な取り組み 好き嫌いの根源にあるもの 原則 価値とプラクティスのギャップを埋める その分野に特化した活動の指針
  16. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. プラクティスについて • プラクティスは、価値によって⽬的を与えなければ、機械的な 作業になってしまう • プラクティスは状況に依存する • プラクティスを適⽤するかどうかは選択 • プラクティスは組み合わせたほうがさらにうまく機能する
  17. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. (⼤事なのは)開発を導く5つの価値 • コミュニケーション – チームによるソフトウェア開発で最も重要なもの • シンプリシティ – 最もシンプルでうまくいきそうなものは何か︖ • フィードバック – 変化がフィードバックを必要とする • 勇気 – 恐怖に直⾯したときの効果的な⾏動のこと • リスペクト – ソフトウェア開発に関係している⼈は、⼈間として等しく重要
  18. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 原則ー価値に調和したプラクティスを探すための指針 • ⼈間性 – 基本的な安全性、達成感、帰属意識、成⻑、親密な関係 • 経済性 – ビジネスバリューにつながり、ビジネスゴールを達成し、ビジネスニーズを満たす – 貨幣のタイムバリューとシステムやチームのオプションバリュー • 相互利益 – ⼤量の内部ドキュメントは相互利益を破壊する – ⾃動テストを残す – リファクタリングする – ⼀貫性のあるメタファーから名前を選ぶ
  19. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 原則ー価値に調和したプラクティスを探すための指針 • ⾃⼰相似性 – うまくいった解決策の構造を新しい⽂脈にコピーする • 改善 – 完璧なプロセスは存在しない。改善によってソフトウェア開発の⾼みを⽬指す • 多様性 – チームには多様性が必要であり衝突をうまく扱う必要がある • ふりかえり – なぜ成功したのか、なぜ失敗したのかを分析する
  20. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 原則ー価値に調和したプラクティスを探すための指針 • 流れ – すべての開発作業を同時に⾏い、バリューのあるソフトウェアの安定した流れを⽣み出 すこと • 機会 – 問題を変化の機会と考える • 冗⻑性 – ソフトウェア化初の重要で困難な問題は、複数の⽅法で解決すべき • 失敗 – 知識が⾝につけば失敗は無駄ではない
  21. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 原則ー価値に調和したプラクティスを探すための指針 • 品質 – 品質を犠牲にするのは効果的なコントロールではない。品質は制御変数ではない。 – 時間とコストが固定されている場合、スコープが優れた制御レバーになる • ベイビーステップ – あなたができる最も⼩さなことで、正しい⽅向がすぐにわかるものは何か︖ • 責任の引き受け – 責任は割り当てるのではなく、引き受けることしかできない – 責任には権限が伴わないといけない
  22. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 第2版の主要プラクティス • 全員同席 • チーム全体 • 情報満載のワークスペース • いきいきとした仕事 • ペアプログラミング • ストーリー • 週次サイクル • 四半期サイクル • ゆとり • 10分ビルド • 継続的インテグレーション • テストファースト プログラミング • インクリメンタルな設計
  23. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 導出プラクティス • 本物の顧客参加 • インクリメンタルな デプロイ • チームの継続 • チームの縮⼩ • 根本原因分析 • コードの共有 • コードとテスト • 単⼀のコードベース • デイリーデプロイ • 交渉によるスコープ契約 • 利⽤都度課⾦
  24. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. XPとは何か(エクストリームプログラミングより) • 成功には、優れた技術⼒と良好な⼈間関係が必要 • XPはその両⽅を扱っている • 成功に向けて準備する • ベストを尽くし、その結果を受け⼊れる
  25. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. XPが他の⽅法論と区別される点 • 開発サイクルが短期間 • 計画⼿法がインクリメンタル • 機能の実装スケジュールが柔軟 • ⾃動テストを信頼している • システム構造や意図を伝えるために、⼝頭のコミュニケーション、テスト、 ソースコードを信頼している • 進化的な設計プロセスを信頼している • 普通の才能を持った熱⼼で積極的な個⼈が、お互いに密接に協⼒し合うこと を信頼している • チームメンバーの短期的な動機とプロジェクトの⻑期的な利益の両⽅につな がるプラクティスを信頼している
  26. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. XPは • 軽量。顧客にバリューをもららすために必要なことだけを実施する • ソフトウェア開発の制約に対応するための⽅法論。プロジェクトのポートフ ォリオ管理、プロジェクトの財務的な正当性、運⽤、マーケティング、営業 などに対応するものではない • あらゆる規模のチームに使える。 • あいまいで急速に変化する要件に対応する • 成功の鍵は、個⼈の努⼒ではなく、「⼈と⼈」のビジネスに⾃分が携わって いることを受け⼊れること • 技術も重要。技術⼒は信頼関係につながる。チームに貢献できるレベルの⾼ い技術を学ぶことを求めている
  27. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. (私)コミュニティー活動を通じて多くの経験を共有 • ⾊々な案件、コミュニティーを通じて、やはりソフトウェア開発 は⼈だと改めて認識 • 原則に基づきプラクティスを実践し、体験を⼈に伝えることで⾃ 分がより学ぶことができる • 「⼈を変えることはできない。変われるのは⾃分だけ」を学ぶ – アジャイルであること(Be Agile)の姿勢を⾒てもらう、感じてもらうこと
  28. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. ”変化は常に⾃分のいるところから始まる。 あなたが変えられるのは、あなただけだ。” Kent Beck,Cynthia Andres. エクストリームプログラミング (Japanese Edition)
  29. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. アジャイルとジャグリング • アジャイル界隈のコミュニティーでジャグリングがはやったこと があった • ⽬の前にジャグリングのボールがあったとき – とりあえずやってみる⼈ – ⼿をつけない⼈ • あなたはどちらですか︖
  30. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 雑談タイム