Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

勉強会XP入門

805 views

Published on

2013/11/30
勉強会LTの資料
XP入門

Published in: Technology
  • Be the first to comment

勉強会XP入門

  1. 1. XP入門 ~Value, Principle, Practice~ 2013/11/30 青山 貴海
  2. 2. アジェンダ ● 概要 ● 価値 ● 原則 ● プラクティス ● まとめ
  3. 3. 概要 ● エクストリームプログラミングの略 ● 1999年 ● 軽 量 ( ~1 2 人 ) 4 にケント・ベックらにより提唱
  4. 4. 概要 ● アジャイル開発手法の1つ Agile Scrum FDD カンバン Lean DSDM XP
  5. 5. アジャイル ● 知ってるよね!? ● マニフェスト、プリンシプル覚えてる ● 説明省略
  6. 6. 概要 ● イ テ レ ー テ ィ 1週( ) ブ 間 イテレーション イテレーション 計 画 ・・・ 分析 設計 コーディング テスティング 導 入
  7. 7. 概要 ● 計画 – ソフトウェアのビジョンを明確にする – 顧客目線のストーリーを作る – 金額、期間、大きさetcを見積もり、優先順位を付け る – イテレーションにどのストーリーをこなすか決める – イテレーションスケジュールを決める
  8. 8. 概要 ● 分析 – ストーリーの要件を明らかにする – ストーリーをタスクに分割する – 顧客テストやシナリオの作成
  9. 9. 概要 ● 設計、コーディング – アーキテクチャの選出 – インクリメンタルな設計 – コーディング規約の作成 – コーディング
  10. 10. 概要 ● テスティング – ユニットテスト – 探索テスト – パフォーマンステスト
  11. 11. 概要 ● 導入 – イテレーション中に何度もシステム を結合し、イテレーションの最後に デモをする – システムの保守をする
  12. 12. 価値 ● コミュニケーション ● シンプルさ ● フィードバック ● 勇気 ● 尊重
  13. 13. 価値 ● 価値ってなんだ! ● XPの 価値とは?
  14. 14. 価値 ● コミュニケーション – – – チームによるソフトウェア開発でもっとも重 要なのは、コミュニケーション プロジェクトの問題は、コミュニケーション を取らない事で生じる コミュニケーションはチーム意識と効果的な 協力的な生み出す
  15. 15. 価値 ● シンプルさ – XPの価値で最も知的である – シンプルにするのは難しい – シンプルは状況によって異なる – 上手くコミュニケーションを取るとシンプルにな り、シンプルになるとムダなコミュ二ケー ションがなくなる
  16. 16. 価値 ● フィードバック – フィードバックはコミュニケーションの重 要な部分である – フィードバックには無限の可能性がある – XPでは数多くのフィードバックを提供する – シンプルなほどフィードバックは得やすい
  17. 17. 価値 ● 勇気 – – – – 勇気は、行動、忍耐など様々な方法で示され る 他の価値と調和と取る事で、強力になる。 真実を伝える勇気によって、コミュニケー ションと信頼が深まる 勇気ある行動によって新たなフォードバック が生まれる
  18. 18. 価値 ● 尊重 – 4つの価値の背景には、尊敬が有る – チームにおける人間の価値は、 等しく同じである – チームにおける個人の貢献は 尊重されるべきである
  19. 19. 原則 ● 人間性 ● フロー ● 経済性 ● 機会 ● 相互利益 ● 冗長性 ● 自己相似性 ● 失敗 ● 改善 ● 品質 ● 多様性 ● 小さなステップ ● 反省 ● 責任の受け入れ
  20. 20. 原則 ● 原則ってなんだ! ● 原則とは?
  21. 21. 原則 ● 人間性 – – 人がソフトウェアを開発する 人が開発すると言う事実を無視したプロセスを行う事 で人間性を失わせてしまう – 人にはさまざまな欲求がある – 人の欲求を満たす事で、創造的な作業が行える – 優れたチームは、メンバーと信頼関係を築いて一緒に 作業をする事で、自分らしくいられる
  22. 22. 原則 ● 経済性 – ビジネス価値を達成する事で、 プロジェクトの価値が高まる – ソフトウェアの時間的価値 – チームとソフトウェアのオプション価値
  23. 23. 原則 ● 相互利益 – 全ての活動は、関係者全員の利益にならなければな らない – 最も難しい – XPは現在、未来の自分、自分の顧客利益のあるプロ クティスを探す事である – 相互利益のあるプラクティスは、苦痛を和らげ、容 易に受け入れられやすい
  24. 24. 原則 ● 改善 – ソフトウェア開発には「完全」は存在しない – 常に改善する事で、完全を維持する事が出来る – – 今日出来る最良を行い、明日更に向上させるた めに出来る事をする 完全性を待たずに、完全をしてはいけない
  25. 25. 原則 ● 多様性 – – – 様々な解決策を考えるために、多様性は必要だ 衝突はある。衝突を如何に生産的に解決出来る かが重要 様々な考えやスキルを持った人たちと、チーム として共に作業する際に「チーム全体」のプラ クティスとして表現される
  26. 26. 原則 ● 反省 – 優れたチームは、作業を行うだけでなく、方法と理由も考 える – 成功した理由、失敗した理由を分析し、そこから学習する – 知見を得るだけでなく、本能からも学習する – 反省は行動の後に、学習は反省の後の行動 – フィードバックを最大化するために、実行しながら反省す る
  27. 27. 原則 ● フロー – 全ての活動を同時に行う事で価値の ソフトウェアを提供する – 価値を少しずつ頻繁に配置する
  28. 28. 原則 ● 機会 – 問題を変更の機会と捉えるべき – ソフトウェアを「存続」させる姿勢では 問題解決に成らない – 学習と改善の機会と捉えるべき
  29. 29. 原則 ● 冗長性 – ソフトウェア開発で重要で困難な問題は、 様々な方法で解決する必要がある – 冗長性を用いる事で、最悪の事態を回避する – 冗長性はムダな場合もある – 正当な目的を果たす冗長性は排除してはいけ ない
  30. 30. 原則 ● 失敗 – 成功が困難な場合は失敗すればいい – 失敗しても価値のある何かを学習出来る – 最善の方法が分からないとき、それを見つけ 出すための最も安価な方法は何だろうか – 行うべき事が分からないとき、失敗する事が 成功への最短で確実な道になる場合が有る
  31. 31. 原則 ● 品質 – 品質を犠牲にするのは、管理方法として有効で はない – 品質は制御変数ではない – 低い品質で、プロジェクトが早くなる事はない – 品質を上げる事で早い納期に繋がる – 品質のメリットに制限はない
  32. 32. 原則 ● 小さなステップ – – – 大きなステップで、大きな変更をしたくなるのが 常だ 正しい条件下では、人とチームは小さなステップ を迅速に取る事ができるので、躍進して見える 小さなステップは、大きなステップより失敗した 時の損害が少ない
  33. 33. 原則 ● 責任の受け入れ – 責任は割り当てる事はできない – 受け入れる事が出来るだけ – 責任を持つ事は、権限を持つ事にもなる – 責任と権限のズレはチームのコミュニ ケーションを歪める
  34. 34. プラクティス(基礎) ● チーム全員 ● 全員同席 ● 情報豊富な作業空間 ● ● 活気のある仕事 ペアプログラミング ● ストーリー ● ● 四半期サイクル ● ゆとり ● 10分ビルド ● 常時結合 ● 1週間サイクル ● テストファーストプログ ラミング インクリメンタルな設計
  35. 35. プラクティス(応用) ● ● 実顧客の参加 インクリメンタル 配置 ● コードとテスト ● 単一のコードベース 日次配置 ● チームの継続 ● ● チームの縮小 ● 協議によるスコープ契 ● 根本原因の分析 ● 利用分払い ● コードの共有
  36. 36. プラクティス ● 個々のプラクティスは省略 ● プラクティスってなんだ! ● プラクティスとは?
  37. 37. 考えてみた ● XP曰 く – 価値 ● – プラクティス ● – 物事を判断する大まかな基準 実践方法 原則 ● 基本的な規則や法則
  38. 38. 考えてみた XP曰く 価値 原則 プラク ティス
  39. 39. 考えてみた ● 個人的には 目標 プラクティス 価  値 原則 制約
  40. 40. 考えてみた ● 個人的には – 価値とは、基準であり、恩恵を得るもの – プラクティスとは、価値を具体的行動に 移した物で価値得る手段 – 原則とは、価値とプラクティスから 導きだされる法則、また元から存在する法則
  41. 41. 考えてみた ● では、どうして 出来ない? XPが – 原則、制約が違うから – 原則などが違えば、プラクティスや 価値も異なってくる
  42. 42. 原則 ● 自己相似性 – ソフトウェアの解決策の構造を複写する – ただし別の場面で機能するとは限らない – 自己相似により、様々な場面で同じ解決策を 利用する事が出来る
  43. 43. 考えてみた ● 我々は、なぜここにいるのか? (目 ● 的を見つける ) 何 を 重 要(価 値 が あ る の か 視 ) しているのか ● 制約、原則は何か ● そこから、プラクティスを考える
  44. 44. まとめ ● XPとは – ● プログラミング技術、明確なコミュニケー ション、チームワークを見事(最大化)に実践 する事に焦点をあてたソフトウェア開発手法 XPの目標 – 優れたソフトウェア開発を行うこと

×