SlideShare une entreprise Scribd logo
1  sur  72
Télécharger pour lire hors ligne
eXtream Programming入門
           ~理論から学ぶXP~




2008 / 5 / 17                      1
■参考文献
•   「よくわかる最新XPの基本と仕組み」
    – 監修:長瀬嘉秀
    – 著者:畑田成広 樋口博昭
    – 出版:秀和システム




•   「XPエクストリーム・プログラミング入門」
    – 著者:KentBeck
    – 出版:ピアソンデヂュケーション




                            2
■アジェンダ
•   1.概要
•   2.基本思想
•   3.開発プロセス
•   4.価値と原則とプラクティス




                     3
1.概要
       •   XPとは?
       •   XPの提唱者
       •   XPの歴史
       •   名前の由来
       •   アジャイル開発との関係




1.概要                     4
>>XPとは?
       • eXtream Programmingの略。
       • ソフトウェア開発手法の1つ。
       • ソフトウェア開発において、良いことを
         最大限に実施する手法。




1.概要                              5
>>XPの提唱者
       • Kent Beck
          – ケント・ベック
       • Ward Cunningham
          – ウォード・カニンガム
       • Ron Jeffries
          – ロン・ジェフリーズ


       • この3人は「Three Extremos」
              「              」
         と呼ばれている。


1.概要                             6
>>XPの歴史
       • 最初にXPが実践されたのは「C3プロジェクト」
                         プロジェクト」。
                      「 プロジェクト」
       • 危機的状況にあったC3プロジェクトを救うべく、過去に
         経験した手法を最大限に実施。その結果、プロジェクト
         の建て直しに成功。
       • この経験を元に、XP本を執筆。急速に拡大。


       1996年 ケント・ベックがC3プロジェクトに携わる。

       1999年 米国で『eXtream Programming Explained』刊行。
               日本で翻訳本『XPエクストリームプログラミング入門』
       2000年
               刊行。



1.概要                                                 7
>>名前の由来
                             ソフトウェア開発プロジェクト
       • [extream]=極端な/究極の
           良い事を徹底的に行い
         – 良い事                 良い事    不要な事
                              100%    100%

         – 不要な事を徹底的に行わない
           不要な事
                              0%       0%



       • [Programming]
         – プログラミングこそソフトウェ
           ア開発の「中心活動」
               「中心活動」と捉えて
               「中心活動」
           いる。




1.概要                                          8
>>アジャイル開発との関係(1)
       • XPは、アジャイル開発宣言に参加している開発
         手法である。
       • アジャイル開発とは?

         ソフトウェア工学において、迅速かつ
         適応的に ソフトウェア開発を行う
         軽量な開発手法群の総称 である。

         ~ 『ウィキペディア』からの抜粋 ~




1.概要                              9
>>アジャイル開発との関係(2)
       • アジャイル開発宣言
         【従来の価値観】         【アジャイルの価値観】
         プロセスやツール    より     個人と相互作用

        包括的なドキュメント   より   動作するソフトウェア

           契約交渉      より     ユーザとの協調

          計画に従う      より      変化に対応


       • 左側にも価値はあるが、右側の方が,
         より多くの価値を含んでいると考え
         る。
1.概要                                    10
■グループミーティング
       • ソフトウェア開発において、「良い事」「不要な
         事」を、各自で思いつくだけ挙げてください。
         – 3分(個人)

       • 「良い事」「悪い事」を発表して下さい。
         – 3分(グループ)

       • その中で、全員が共感した「良い事」「悪い事」
         を話し合って決めて下さい。(複数回答可)
         – 5分(グループ)



1.概要                              11
2.基本思想
         •   滝に打たれて苦労する
         •   ソフトウェア開発の暗黙の了解
         •   XPが指向すること
         •   5つの価値




2.基本思想                        12
>>滝に打たれて苦労する
     • ウォーターフォールの特徴
          – 大規模開発に最適
          – 仕様が途中で変化しない開発に最適
          – 後戻りは想定外
     • ウォーターフォールで苦労する原因
          – 要員増加でコミュニケーション不足!!
          – 仕様が途中で変化する!!
          – 後戻りの発生!!(特に総合試験フェーズ)

             ウォーターフォールのメリットが
             生かせる開発が少ない!!

2.基本思想                             13
>>ソフトウェア開発の暗黙の了解
     • すべてのシステムに適用可能な開発手法はない
          – 銀の弾丸は存在しない
          – 1システム毎にオーダーメイド
     • 人の重要性
          – システムを使うのも作るのも人である。
          – 結局、ソフトは人の手で作られる
          – 開発者のモチベーションが鍵
     • 変化は起きる
          – いつ、何が起きるか、予測する事は困難
          – 変化は起こってあたりまえ
          – 問題は、変化に素早く対応できるかどうか



               誰も明言しないが、みんな心の中
               で思っているハズ

2.基本思想                            14
>>XPが指向すること
         • 人の満足
           – ソフトウェア開発の中心は「人」
           – 「人」=ソフトウェアに関わる全員
           – 開発者と顧客の成功(WIN-WIN)を目指す
         • 変化に適応する
           – 未来を予測することは困難
           – 変化を抑止することも困難
           – だから、変化に適応できるソフトを作る
         • 実績重視
           – 予測は外れると無駄になる
           – 過去に蓄積した実績値を用いる
           – 「昨日の天気ルール」


         予測することを止め、今必要なものだけを、変更しやす
         く開発する。そのために、顧客と開発者の協力が必要!!
2.基本思想                                15
>>5つの価値
     • XPが指向するものをより明確に、より汎
       用的に示す指標が「価値」である。
     • ソフトウェア開発の中で、方向性を決める
       時、大いに役立つ指標となる。
     • 5つの価値の種類
          –   コミュニケーション
          –   シンプル
          –   フィードバック
          –   勇気
          –   尊重 ← 「XP入門」第2版で追加
2.基本思想                            16
>>5つの価値(1)

   •コミュニケーション
         –   人間が意思・感情・思考を伝達しあう事
         –   「関係性」「雰囲気」「場所」「タイミング」
         –   5つの価値の中で最も重要
         –   Face to Face が大事




2.基本思想                               17
>>5つの価値(2)

         •シンプル
          –   必要なモノ(コト)しかない状態
          –   本質・メタ(抽象)
          –   すべてのものに適用可能
          –   何をもってシンプルとみなすか、基準が必要




2.基本思想                               18
>>5つの価値(3)

     •フィードバック
          – 反応、結果
          – 例
           • システムを実際に動作させる
           • 顧客に使ってもらう
          – 「ありがとう」は最も身近なフィードバック




2.基本思想                             19
>>5つの価値(4)

    •勇気
         – 判断する/決断する
            • 他の4つの価値に基づき、実施する/しない
              を決定する。
            • 何も考えないで実行する事は、「勇気」では
              なく「蛮勇」である。
         – アンパンマン




2.基本思想                               20
>>5つの価値(5)

         •尊重
          –   人を思いやる気持ち
          –   人を信じる気持ち
          –   「尊重」なくして他の価値は成立しない。
          –   「チームのメンバーがベストを尽くしている
              ことを疑うな」- Kent Beck




2.基本思想                               21
>>5つの価値(6)
            尊重



                  コミュニケーション




                     勇気




           シンプル               フィードバック




2.基本思想                                  22
■グループミーティング
         • 「ソフトウェア開発」という作業の中で、自分の
           中で持っている価値感(=大切な事)を思いつくだ
           け挙げて下さい。
           – 3分(個人)

         • その価値を発表して下さい。
           – 3分(グループ)

         • その中で、全員が共感した「価値感」を話し合っ
           て決めて下さい。(複数回答可)
           – 5分(グループ)


2.基本思想                               23
3.開発プロセス
      • 従来型の開発プロセス
      • XPの開発プロセスの特徴
      • XPの開発プロセス
           –   リリース計画
           –   イテレーション計画
           –   イテレーション実施
           –   リリース
      • XPの管理変数
      • 開発手法の比較

3.開発プロセス                   24
>>従来型の開発プロセス(1)
      • 上流から下流へ。                  ・工程毎に作業が明確
                                  ・工程の後戻りは無い
           要件分析
           要件分析                   ・工程間の情報伝達は、
            外部設計
            外部設計
                                   主にドキュメント
                                  ・リリースは全工程終了後
              内部設計
              内部設計

                   開発
                   開発

                   単体試験
                   単体試験

                        結合試験
                        結合試験

                         総合試験
                         総合試験

                           運用試験
                           運用試験


3.開発プロセス                                     25
>>従来型の開発プロセス(2)
    • 成果物と設計の妥当性はV字カーブで検証
           要件分析
           要件分析      運用試験
                     運用試験     仕様
                              明確
           外部設計
           外部設計     総合試験
                    総合試験
            内部設計
            内部設計   結合試験
                   結合試験
                            時既に遅し!!
    仕様        開発
              開発   単体試験
                   単体試験
    不明確



    • 上流工程のバグは、下流工程にならないと
      検出できない!!
      検出できない
    • 更に、お客様の間違いは、お客様が触って
                  お客様が触って
      初めて見つかる!!
      初めて見つかる
3.開発プロセス                              26
>>従来型の開発プロセス(3)
      • 変更のコストカーブ

           コスト




                       時間
      • 後工程の変更は大変
      • 後工程の変更を抑えるべく、前工程の品質の作りこみが
        重要となる。
      • そのため、設計時に「将来の予測」を組み込むこととなる。
      • しかし、予測が外れると、後工程のリスクが高くなる


3.開発プロセス                          27
>>XPの開発プロセスの特徴
      • 繰り返し型開発(イテレーション型開発)
           – 「極小のウォーターフォール」の集合。
           – 小さな設計/開発を何度も繰り返す。
      • 何度もリリースする
           – 開発中に顧客からのフィードバックが得られる
           – 後工程のリスクを削減することができる
           – 全部完成するまで待たなくても、一部の機能からメリットを教授する
             ことができる
      • 要件/作業はカード単位
           – 見積もりはカード単位で行う
           – カードに予定/実績工数を記入し、次回の見積もりに使用
             することで、見積もり精度がどんどん向上する
           – 粒度が下がるため、見積もり精度が向上する
           – 本当にやるべき作業が明確になる
           – カードの枚数で進捗把握も可能

3.開発プロセス                                       28
>>XPの開発プロセス(1)
   ▼お客様                            ・期間内に開発したストーリ
                                    を満たすソフトウェアを
                                    リリース
                              製品

           リクエスト
                               ▼メンバー


           ストーリカード
            ストーリカード                          タスクカード
            ストーリカード                           タスクカード
                                               タスクカード




                      ▼リーダー

・要求を1件づつカードに書く                         ・ストーリをタスクに分割
・カード単位に見積もりを実施                         ・タスクを実行
・優先度/工数/期間により、
 実施するストーリーを決定



3.開発プロセス                                              29
>>XPの開発プロセス(2)
           ▼フィーチャー                          ▼ストーリー

                                            イテレーション計画
           リリース計画

                                                イテレーション実施#1
           イテレーション#1
                                                イテレーション実施#2
           イテレーション#2
                                                  ・・・
             ・・・
           リリース
                         ▼タスク
                             手短な設計


                              テスト



                       コード           リファクタリング


3.開発プロセス                               結合                     30
>>XPの開発プロセス(3)
      • ストーリーカード
           – 「目標カード」「やりたいことカード」
           – 開発するターゲットがどのようなものかを書く
           – 「こういう画面表示が必要」「こういう機能が必要」といったことを
             書く。




                                   翔泳社webマガジン
                                    ■組込みZine
                                     「組込みでジャイル」より。


3.開発プロセス                                        31
>>XPの開発プロセス(4)
      • タスクカード
           – ストーリーを実現するために必要な作業を書く。
           – 「設計する」「実装する」「テストする」などを書く。




                              翔泳社webマガジン
                               ■組込みZine
                                「組込みでジャイル」より。


3.開発プロセス                                    32
>>XPの開発プロセス >>リリース計画

      • 要求事項から、ストーリーカードを作成。
      • 開発者
           – ストーリーカード毎に見積もりを実施。
           – 単位時間あたりの消化可能ストーリー数も見積もる。
           – 技術的リスクを洗い出し、お客様に伝える。
      • お客様
           – 開発者からの情報を元に、実施するストーリと優先順位
             を選択頂く。
      • 見積もりには「昨日の天気ルール」を適用。
           – 「今日の天気は昨日の天気を元に予測する」
           – 過去のストーリの実績を元に、工数を見積もる。


3.開発プロセス                                33
>>XPの開発プロセス >>イテレーション計画

      • ストーリを理解する。
      • ストーリをタスクに分割する。
           – 分割したタスクは、タスクカードに記入。
      • 開発速度を宣言する。
           – 実施するタスクを消化するスピードを明確化する。
           – スケジュールリングする。
      • タスクを受け入れる




3.開発プロセス                               34
>>XPの開発プロセス >>イテレーション実施

      • ペアを組む
      • 手短な設計を行う
      • テストを先に作る
           – テストパターンを先に作ることで、仕様が明確になる
           – 自動テストスィート(xUnit)でテストプログラムを作成
           – 手書きのテスト仕様書でも可
      • 実装
           – テストがパスするコードを作成する
      • リファクタリングする
           – 常にコードをシンプルに保ち、変更容易性を確保する



3.開発プロセス                                    35
>>XPの開発プロセス >>リリース

      • 受け入れテストを作成
           – システムを最も理解しているのは、お客様である。
           – よって、テストパターンをお客様に作成頂くのがベスト。
      • 受け入れテストを実施
           – 過去に開発した機能の受け入れテストも実施することで、
             デグレを防止する。




3.開発プロセス                             36
>>XPの管理変数(1)
                                            Resource
   • 4つの管理変数を使用する
       –   Time    :開発期間(Deliveryと同意)           Time
       –   Quality :品質
                                        Scope          Quality
       –   Resource:開発人員/設備(Costと同意)
       –   Scope :ストーリーの数
   • 従来のQCDに相当
   • 限られた時間(Time)の中で、要求される品質
     (Quality)のものを、予算内(Resource)で消化
     可能なストーリ(Scope)をお客様に選択頂く




3.開発プロセス                                                   37
>>XPの管理変数(2)
      • 4つの項目がバランスする事で、健全なソフト
        ウェア開発が可能となる。
      • スコープの増減が、最も低リスク。
           –   Time:納期が遅れると、ビジネスチャンスを逃す
           –   Quality:品質を下げるとバグ混入の危険性
           –   Resource:要員追加は、生産性低下となる
           –   スコープの変更は、他の管理変数に影響しない。
      • スコープ増減を上手く機能させるためには、高い
        見積もり精度が必要。
           – XPにより、見積もり精度の向上が可能



3.開発プロセス                                  38
>>開発手法の比較
      • XPは、従来型と逆の価値観を持っている。
                 【従来型】
                  従来型】                【XP】
                                       XP】
       実装後に単体テスト              単体テスト作成後に実装
       ユーザは外部                 ユーザは開発チームの一員
       リリースは一番最後に1度だけ         できるだけ頻繁にリリース
       すべて完成したら結合             1モジュールが完成したら結合
       将来の要求を予測して実装           現在必要な機能だけを実装
       開発後期の変更コストは高い          変更コストは常に一定
       プロセス重視                 人を重視
       ドキュメント重視               コード重視

      • XPの場合、変更コストを一定に保つことができる。

           コスト                コスト

                  ▼従来型                ▼XP


                         時間                    時間

3.開発プロセス                                            39
■グループミーティング
      • XPの開発手法の中で、「良い点」と「悪い点」
        を思いつくだけ挙げて下さい。
        – 3分(個人)

      • 「良い点」「悪い点」を発表して下さい。
        – 3分(グループ)

      • チーム内で最も多かった「良い点」と「悪い点」
        を話し合って決めて下さい。(複数回答可)
        – 5分(グループ)



3.開発プロセス                         40
4.価値と原則とプラクティス
    •   プラクティス              •   価値と原則とプラクティス
    •   開発環境                •   原則
        –   ▼全員同席               –   ▼人間性
    •   見積もり                    –   ▼経済性
        –   ▼計画ゲーム              –   ▼相互利益
    •   開発プロセス                  –   ▼自己相似性
        –   ▼短期リリース             –   ▼改善
        –   ▼最適ペース              –   ▼多様性
        –   ▼スタンダップミーティング       –   ▼反省
        –   ▼ユーザテスト             –   ▼フロー
    •   開発Tips                  –   ▼機会
                                –   ▼冗長性
        –   ▼シンプル設計
                                –   ▼失敗
        –   ▼ペアプログラミング
                                –   ▼品質
        –   ▼テスト駆動型開発
                                –   ▼小さなステップ
        –   ▼リファクタリング
                                –   ▼責任の受け入れ
        –   ▼常時結合
        –   ▼コード共同所有
        –   ▼コーディング規約
        –   ▼メタファ



4.価値と原則とプラクティス                                 41
>>プラクティス
      • プラクティスとは?
         – 「習慣」/「実践項目」の意。
      • 経験に基づいて有用性が立証
        された実践項目の事である。
      • プラクティスは、継続的に洗
        練/改善され続けているため、
        数や名称が変化しています。




4.価値と原則とプラクティス              42
>>開発環境




4.価値と原則とプラクティス   43
>>開発環境 >>全員同席
      • 内容
         – お客様~開発者まで、全員同じ
           場所で作業する。
      • 効果
         – 質問のレスポンス速度向上
         – コミュニケーション不足の解消




4.価値と原則とプラクティス              44
>>見積もり




4.価値と原則とプラクティス   45
>>見積もり >>計画ゲーム
      • 内容
         – お客様と開発者の見積もりゲーム。
         – 「期日までに何ができるか」「次に何を
           するのか」を明確にする。
         – 互いの役割に干渉してはならない。
         – お客様の役割
             • ストーリの提示
             • ストーリの優先順位決定
             • ストーリの実施可否決定
         – 開発者の役割
             • ストーリを見積もる
             • 想定されるリスクを報告する
      • 効果
         – お客様の希望する価格で真に望む機能を
           開発することができる。
         – 変更を容認できる仕組みの提案。


4.価値と原則とプラクティス                  46
>>開発プロセス




4.価値と原則とプラクティス   47
>>開発プロセス >>短期リリース
      • 内容
         – 短期間で動作可能なシステムを
           リリースする。
      • 効果
         – 開発期間中にユーザからの
           フィードバックが得られる。
         – 実装上のリスクが削減される。




4.価値と原則とプラクティス              48
>>開発プロセス >>最適ペース
      • 内容
         – 無理な作業は効率が悪い事に気
           付く。
         – 無理な作業は精神面への負担も
           増加することを認識する。
         – 実績に基づいて開発スピードを
           調整する。
      • 効果
         – 人は最適なペースを維持しなが
           ら作業すると効率が良い。

4.価値と原則とプラクティス              49
>>開発プロセス >>スタンダップミーティング

      • 内容
         – 毎朝同じ時間・同じ場所で、立ったま
           まミーティングする。
         – 昨日実施した事、今日実施することを
           手短に報告する。
      • 効果
         – コミュニケーション促進
         – 今日実施することを自分で宣言するこ
           とで、実施内容が明確になる
         – 問題が発生しても、最大24時間で
           キャッチアップ可能



4.価値と原則とプラクティス                  50
>>開発プロセス >>ユーザテスト
      • 内容
         – システムを最も理解しているの
           はシステムを使うお客様である。
         – お客様に受け入れテスト項目を
           作成頂く。
      • 効果
         – システムのゴールが明確になる。
         – 抜け/漏れが明確になる。




4.価値と原則とプラクティス               51
>>開発Tips




4.価値と原則とプラクティス   52
>>開発Tips >>シンプル設計
      • 内容
         – 必要な機能のみ実装する
         – 「将来必要と思われる機能」は
           実装しない。
         – 1つのモノに、複数の機能を詰
           め込まない。
         – YAGNI(You aren’t going to
           need it.=今必要なことだけや
           れ)の実践
      • 効果
         – 変更容易性の確保

4.価値と原則とプラクティス                         53
>>開発Tips >>ペアプログラミング
      • 内容
         – 1台のマシンに2人でコーディングを
           行う。
         – 1人はコーダ(ドライバ)、1人はレ
           ビュアー(サポーター)。
         – 頻繁に交代しながらコーディングを行
           う。
      • 効果
         – 1人が持っている知識を、開発しなが
           ら全員に伝播することができる。
         – 1人が倒れても、もう1人が開発を継
           続可能。


4.価値と原則とプラクティス                 54
>>開発Tips >>テスト駆動型開発
      • 内容
         – コードを書く前にテストを考える。
         – 考えたテストをパスするコードを書く。
         – (可能であれば)テストを自動化する
      • 効果
         – コードの仕様が明確になる
         – テストコードで品質保証が可能となる。
         – デグレ混入の抑止




4.価値と原則とプラクティス                  55
>>開発Tips >>リファクタリング
      • 内容
         – リファクタリングとは、コード
           の振舞いを変化させず、中身を
           整理すること。
         – テストが成功したら、リファク
           タリングする。
      • 効果
         –   プログラムを理解しやすくなる
         –   不具合混入を予防できる
         –   コーディング時間の短縮
         –   メンテナンス性の向上

4.価値と原則とプラクティス                56
>>開発Tips >>常時結合
      • 内容
         – 結合テストを自動実行可能にする。
         – 小さな変更で、不具合が持ち込まれて
           いないか確認する。
      • 効果
         – 変更に対する品質維持が可能となる。
         – 勇気を持って変更することができる。
         – 変更に対する品質保証が可能となる。




4.価値と原則とプラクティス                 57
>>開発Tips >>コード共同所有
      • 内容
         – コードはチーム全員の共有資産
           と位置づける。
         – 誰でも修正可能な状態とする。
      • 効果
         – コードの知識を分散可能となり、
           メンバー離脱時の負荷分散/リ
           スク回避が可能となる。
         – ただし、所有責任者が不明確と
           なるため、「チーム全員が責任
           者」である事を、事前に周知徹
           底する必要がある。
4.価値と原則とプラクティス               58
>>開発Tips >>コーディング規約
      • 内容
         – チームメンバーが共有できる
           コーディング規約を共同で作る。
      • 効果
         – ペアプロ/コード共同所有する
           ためには、共有のコーディング
           規約が必要。
         – 規約違反により、違反箇所を修
           正するロスコストが発生する。



4.価値と原則とプラクティス               59
>>開発Tips >>メタファ
      • 内容
         – 「メタファ」=「たとえ」
         – 複雑なものに、誰でも理解でき
           る分かりやすい名前を付ける。
         – 例
             • クライアント/サーバシステム
             • インターネット
      • 効果
         – 「メタファ」を活用することで、
           強力な意思疎通が可能となる。

4.価値と原則とプラクティス                  60
>>価値と原則とプラクティス




4.価値と原則とプラクティス         61
>> 価値と原則とプラクティス(1)
      • XPでは、ソフトウェア開発において、
        5つの価値を重要視している。
         –   コミュニケーション
         –   シンプル
         –   フィードバック
         –   勇気
         –   尊重
      • 単純にプラクティスを実践するだけでは、
        5つの価値を得ることができない場合が
        ある。
         – 例
             • Kent:花を植える時、等間隔を重視。
             • 庭師:「肥料をやる方が大事」
      • 価値とプラクティスを繋ぐ『橋』が必要。


4.価値と原則とプラクティス                       62
>> 価値と原則とプラクティス(2)
    • 価値とプラクティスの間に、「原則」
      という橋を架ける。

                     原則
                     原則



            プラクティス        価値
                          価値
            プラクティス


    • 原則を意識してプラクティスを実践す
      ることで、効果的に価値を得ることが
      できる。


4.価値と原則とプラクティス                 63
>>原則(1)
      • 人間性
         – 休養や達成感は必要 人間は馬車馬ではない
      • 経済性
         – 利益がちゃんと得られる開発をしよう
      • 相互利益
         – みんなの利益になるように活動しよう 他人のバグでも取る
           のだ
      • 自己相似性
         – 開発の基本はみんな同じ テスト作成→テストの動作の繰り
           返し
      • 改善
         – 理想と現実を近づけるために日々努力しよう
      • 多様性
         – 多様性を否定しない チームの衝突を納得行くように解決し
           よう
      • 反省                   「ゆめかがくにっき」様より抜粋
         – 失敗を隠さず理由を分析しよう        http://www.yumekagaku.com/




4.価値と原則とプラクティス                                                64
>>原則(2)
      • フロー
         – ソフトウェア間の結合は細かく行い、開発のフローを止めない
      • 機会
         – 問題が起きたら、それは変更するための機会と前向きに考える
      • 冗長性
         – 冗長性も時には必要 大事な冗長性は取り除かないように
      • 失敗
         – 失敗することは無駄ではない   解の出ない議論を繰り返さず、とりあ
           えず作ってみよう
      • 品質
         – 品質を低くしたからと言って、プロジェクトが早く進むことはない
      • 小さなステップ
         – 一度に大きく変更せず、小さく変更してすぐテスト
      • 責任の受け入れ
         – 権限と責任にずれがないようにする さもないと「お前がやれ」とい
           うことになる
                                 「ゆめかがくにっき」様より抜粋
                                 http://www.yumekagaku.com/




4.価値と原則とプラクティス                                                65
■グループミーティング
      • 仕事上、一番困っている問題を解決できそうな
        プラクティスがないか、考えて下さい。
        – 3分(個人)

      • 一番困っている問題と、問題を解決するプラク
        ティスを発表して下さい。
        – 3分(グループ)

      • チーム内で最も多かったプラクティスを発表して
        下さい。
        – 5分(グループ)


4.価値と原則とプラクティス                   66
最後に。
   67
プラクティスを実施
することが「XP」
ではありません。

            68
XPとは
「ソフトウェア開発に
 おいて、良いことを最
 大限に実施する手法」
です。
          69
本日
「自分の仕事をもっと
良くしよう!」
と思って参加された方、
挙手願います。
          70
皆さん
XPer(XP実践者)
    です!!

          71
ご参加頂き、
                ありがとうございました。



2008 / 5 / 17                  72

Contenu connexe

Tendances

GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
アジャイルなオフショア開発
アジャイルなオフショア開発アジャイルなオフショア開発
アジャイルなオフショア開発Arata Fujimura
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景Koichi ITO
 
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティスAgility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティスSORACOM, INC
 
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用ESM SEC
 
アジャイル基礎再考
アジャイル基礎再考アジャイル基礎再考
アジャイル基礎再考Kanu orz
 
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発HIDEKAZU MATSUURA
 
「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会Yu Ishikawa
 
I-TRIZのエッセンスと事例
I-TRIZのエッセンスと事例I-TRIZのエッセンスと事例
I-TRIZのエッセンスと事例IDEATION JAPAN
 
挑戦の道具としてのチケット駆動開発(長編版)
挑戦の道具としてのチケット駆動開発(長編版)挑戦の道具としてのチケット駆動開発(長編版)
挑戦の道具としてのチケット駆動開発(長編版)Makoto SAKAI
 
2. 技術的問題を解決する
2. 技術的問題を解決する2. 技術的問題を解決する
2. 技術的問題を解決するIDEATION JAPAN
 
現場の見える化で、チーム力を向上させる
現場の見える化で、チーム力を向上させる現場の見える化で、チーム力を向上させる
現場の見える化で、チーム力を向上させるESM SEC
 
問題を解決のプロセスとツール
問題を解決のプロセスとツール問題を解決のプロセスとツール
問題を解決のプロセスとツールIDEATION JAPAN
 
CEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするためにCEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするためにTakafumi Ikeda
 
チーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるかチーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるかTakafumi Ikeda
 
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」akipii Oga
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイルYoshihito Kuranuki
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイルTakao Kimura
 

Tendances (20)

GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
アジャイルなオフショア開発
アジャイルなオフショア開発アジャイルなオフショア開発
アジャイルなオフショア開発
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティスAgility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス
 
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
 
アジャイル基礎再考
アジャイル基礎再考アジャイル基礎再考
アジャイル基礎再考
 
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発
 
Dev love kansai
Dev love kansaiDev love kansai
Dev love kansai
 
「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会
 
I-TRIZのエッセンスと事例
I-TRIZのエッセンスと事例I-TRIZのエッセンスと事例
I-TRIZのエッセンスと事例
 
挑戦の道具としてのチケット駆動開発(長編版)
挑戦の道具としてのチケット駆動開発(長編版)挑戦の道具としてのチケット駆動開発(長編版)
挑戦の道具としてのチケット駆動開発(長編版)
 
2. 技術的問題を解決する
2. 技術的問題を解決する2. 技術的問題を解決する
2. 技術的問題を解決する
 
現場の見える化で、チーム力を向上させる
現場の見える化で、チーム力を向上させる現場の見える化で、チーム力を向上させる
現場の見える化で、チーム力を向上させる
 
問題を解決のプロセスとツール
問題を解決のプロセスとツール問題を解決のプロセスとツール
問題を解決のプロセスとツール
 
CEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするためにCEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするために
 
チーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるかチーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるか
 
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
 
Scrum"再"入門
Scrum"再"入門Scrum"再"入門
Scrum"再"入門
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 

En vedette

Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」takepu
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」hakoika-itwg
 
アジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaアジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaques_staff
 
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワークスクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク慎一 古賀
 
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)Makoto Nishikawa
 
パタン・ランゲージを用いてスクラムの本質をひもとく
パタン・ランゲージを用いてスクラムの本質をひもとくパタン・ランゲージを用いてスクラムの本質をひもとく
パタン・ランゲージを用いてスクラムの本質をひもとくMinoru Yokomichi
 
つくらない ものづくり ~明日からできるリーンスタートアップ~
つくらない ものづくり ~明日からできるリーンスタートアップ~つくらない ものづくり ~明日からできるリーンスタートアップ~
つくらない ものづくり ~明日からできるリーンスタートアップ~圭 進藤
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~Kenji Hiranabe
 
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~圭 進藤
 
アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!hiroyuki Yamamoto
 
大組織の中でのリーン
大組織の中でのリーン大組織の中でのリーン
大組織の中でのリーンTaro Kawai
 

En vedette (12)

Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」Xp寺子屋出張版#2「xp入門 追補版」
Xp寺子屋出張版#2「xp入門 追補版」
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
 
アジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaアジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqa
 
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワークスクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
 
スクラム再入門
スクラム再入門スクラム再入門
スクラム再入門
 
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
 
パタン・ランゲージを用いてスクラムの本質をひもとく
パタン・ランゲージを用いてスクラムの本質をひもとくパタン・ランゲージを用いてスクラムの本質をひもとく
パタン・ランゲージを用いてスクラムの本質をひもとく
 
つくらない ものづくり ~明日からできるリーンスタートアップ~
つくらない ものづくり ~明日からできるリーンスタートアップ~つくらない ものづくり ~明日からできるリーンスタートアップ~
つくらない ものづくり ~明日からできるリーンスタートアップ~
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
 
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
 
アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!アジャイルな開発は『かんばん』でいこう!
アジャイルな開発は『かんばん』でいこう!
 
大組織の中でのリーン
大組織の中でのリーン大組織の中でのリーン
大組織の中でのリーン
 

Similaire à Xp Terakoya No02

大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験についてRakuten Group, Inc.
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
Xpfp 070626
Xpfp 070626Xpfp 070626
Xpfp 070626takepu
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2Takuya Nishimoto
 
Distributed Agile using UML
Distributed Agile using UMLDistributed Agile using UML
Distributed Agile using UMLKenji Hiranabe
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1Hiro Yoshioka
 
スクラム適用報告
スクラム適用報告スクラム適用報告
スクラム適用報告Eiichi Hayashi
 
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門陽一 滝川
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
ソフトウェアだんどり
ソフトウェアだんどりソフトウェアだんどり
ソフトウェアだんどりTakashi Imagire
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadShinsuke Miyaki
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進めDai FUJIHARA
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進めRakuten Group, Inc.
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsKenji Hiranabe
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門You&I
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」techtalkdwango
 
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese TranslationEric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese TranslationKenji Hiranabe
 

Similaire à Xp Terakoya No02 (20)

大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
Xpfp 070626
Xpfp 070626Xpfp 070626
Xpfp 070626
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
 
Distributed Agile using UML
Distributed Agile using UMLDistributed Agile using UML
Distributed Agile using UML
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
20130320 agile pm
20130320 agile pm20130320 agile pm
20130320 agile pm
 
スクラム適用報告
スクラム適用報告スクラム適用報告
スクラム適用報告
 
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
ソフトウェアだんどり
ソフトウェアだんどりソフトウェアだんどり
ソフトウェアだんどり
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
 
Scrum
ScrumScrum
Scrum
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」
 
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese TranslationEric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
 

Plus de takepu

Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~takepu
 
XP寺子屋第9回「シンプル・プログラミング」
XP寺子屋第9回「シンプル・プログラミング」XP寺子屋第9回「シンプル・プログラミング」
XP寺子屋第9回「シンプル・プログラミング」takepu
 
お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~takepu
 
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」takepu
 
XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門takepu
 
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。takepu
 
20121117 aut open_jam
20121117 aut open_jam20121117 aut open_jam
20121117 aut open_jamtakepu
 
オブジェクト指向モデリング
オブジェクト指向モデリングオブジェクト指向モデリング
オブジェクト指向モデリングtakepu
 
DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ
DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ
DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ takepu
 
男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介takepu
 
PFP関西ワークショップ#26
PFP関西ワークショップ#26PFP関西ワークショップ#26
PFP関西ワークショップ#26takepu
 
ペアプロとは? 20120331
ペアプロとは? 20120331ペアプロとは? 20120331
ペアプロとは? 20120331takepu
 
Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」takepu
 
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」takepu
 
行列のできるXp相談所 20110917
行列のできるXp相談所 20110917行列のできるXp相談所 20110917
行列のできるXp相談所 20110917takepu
 
Lt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.pptLt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.ppttakepu
 
劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→After劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→Aftertakepu
 
Xp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTXp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTtakepu
 
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山takepu
 
事例発表 本田
事例発表 本田事例発表 本田
事例発表 本田takepu
 

Plus de takepu (20)

Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~
 
XP寺子屋第9回「シンプル・プログラミング」
XP寺子屋第9回「シンプル・プログラミング」XP寺子屋第9回「シンプル・プログラミング」
XP寺子屋第9回「シンプル・プログラミング」
 
お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~お客様へ価値を届け続けるために~継続的デリバリーの活用~
お客様へ価値を届け続けるために~継続的デリバリーの活用~
 
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
もえる!えっくす・ぴぃ入門第1回「えっくす・ぴぃの歴史」
 
XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門XP寺子屋 デザインパターン入門
XP寺子屋 デザインパターン入門
 
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。
 
20121117 aut open_jam
20121117 aut open_jam20121117 aut open_jam
20121117 aut open_jam
 
オブジェクト指向モデリング
オブジェクト指向モデリングオブジェクト指向モデリング
オブジェクト指向モデリング
 
DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ
DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ
DevLOVE関西2012 B-2「メンバーの行動が激変!「ペアふりかえり」ワークショップ
 
男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介
 
PFP関西ワークショップ#26
PFP関西ワークショップ#26PFP関西ワークショップ#26
PFP関西ワークショップ#26
 
ペアプロとは? 20120331
ペアプロとは? 20120331ペアプロとは? 20120331
ペアプロとは? 20120331
 
Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」Xp寺子屋出張版#2「xp体験」
Xp寺子屋出張版#2「xp体験」
 
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
Xp寺子屋出張版#2「ペアワークの楽しさ実感!ペアドローワークショップ」
 
行列のできるXp相談所 20110917
行列のできるXp相談所 20110917行列のできるXp相談所 20110917
行列のできるXp相談所 20110917
 
Lt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.pptLt「5分で分かる!e xtremeprogramming」.ppt
Lt「5分で分かる!e xtremeprogramming」.ppt
 
劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→After劇的改善!ペアふりかえり」 Before→After
劇的改善!ペアふりかえり」 Before→After
 
Xp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTXp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLT
 
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山
 
事例発表 本田
事例発表 本田事例発表 本田
事例発表 本田
 

Xp Terakoya No02

  • 1. eXtream Programming入門 ~理論から学ぶXP~ 2008 / 5 / 17 1
  • 2. ■参考文献 • 「よくわかる最新XPの基本と仕組み」 – 監修:長瀬嘉秀 – 著者:畑田成広 樋口博昭 – 出版:秀和システム • 「XPエクストリーム・プログラミング入門」 – 著者:KentBeck – 出版:ピアソンデヂュケーション 2
  • 3. ■アジェンダ • 1.概要 • 2.基本思想 • 3.開発プロセス • 4.価値と原則とプラクティス 3
  • 4. 1.概要 • XPとは? • XPの提唱者 • XPの歴史 • 名前の由来 • アジャイル開発との関係 1.概要 4
  • 5. >>XPとは? • eXtream Programmingの略。 • ソフトウェア開発手法の1つ。 • ソフトウェア開発において、良いことを 最大限に実施する手法。 1.概要 5
  • 6. >>XPの提唱者 • Kent Beck – ケント・ベック • Ward Cunningham – ウォード・カニンガム • Ron Jeffries – ロン・ジェフリーズ • この3人は「Three Extremos」 「 」 と呼ばれている。 1.概要 6
  • 7. >>XPの歴史 • 最初にXPが実践されたのは「C3プロジェクト」 プロジェクト」。 「 プロジェクト」 • 危機的状況にあったC3プロジェクトを救うべく、過去に 経験した手法を最大限に実施。その結果、プロジェクト の建て直しに成功。 • この経験を元に、XP本を執筆。急速に拡大。 1996年 ケント・ベックがC3プロジェクトに携わる。 1999年 米国で『eXtream Programming Explained』刊行。 日本で翻訳本『XPエクストリームプログラミング入門』 2000年 刊行。 1.概要 7
  • 8. >>名前の由来 ソフトウェア開発プロジェクト • [extream]=極端な/究極の 良い事を徹底的に行い – 良い事 良い事 不要な事 100% 100% – 不要な事を徹底的に行わない 不要な事 0% 0% • [Programming] – プログラミングこそソフトウェ ア開発の「中心活動」 「中心活動」と捉えて 「中心活動」 いる。 1.概要 8
  • 9. >>アジャイル開発との関係(1) • XPは、アジャイル開発宣言に参加している開発 手法である。 • アジャイル開発とは? ソフトウェア工学において、迅速かつ 適応的に ソフトウェア開発を行う 軽量な開発手法群の総称 である。 ~ 『ウィキペディア』からの抜粋 ~ 1.概要 9
  • 10. >>アジャイル開発との関係(2) • アジャイル開発宣言 【従来の価値観】 【アジャイルの価値観】 プロセスやツール より 個人と相互作用 包括的なドキュメント より 動作するソフトウェア 契約交渉 より ユーザとの協調 計画に従う より 変化に対応 • 左側にも価値はあるが、右側の方が, より多くの価値を含んでいると考え る。 1.概要 10
  • 11. ■グループミーティング • ソフトウェア開発において、「良い事」「不要な 事」を、各自で思いつくだけ挙げてください。 – 3分(個人) • 「良い事」「悪い事」を発表して下さい。 – 3分(グループ) • その中で、全員が共感した「良い事」「悪い事」 を話し合って決めて下さい。(複数回答可) – 5分(グループ) 1.概要 11
  • 12. 2.基本思想 • 滝に打たれて苦労する • ソフトウェア開発の暗黙の了解 • XPが指向すること • 5つの価値 2.基本思想 12
  • 13. >>滝に打たれて苦労する • ウォーターフォールの特徴 – 大規模開発に最適 – 仕様が途中で変化しない開発に最適 – 後戻りは想定外 • ウォーターフォールで苦労する原因 – 要員増加でコミュニケーション不足!! – 仕様が途中で変化する!! – 後戻りの発生!!(特に総合試験フェーズ) ウォーターフォールのメリットが 生かせる開発が少ない!! 2.基本思想 13
  • 14. >>ソフトウェア開発の暗黙の了解 • すべてのシステムに適用可能な開発手法はない – 銀の弾丸は存在しない – 1システム毎にオーダーメイド • 人の重要性 – システムを使うのも作るのも人である。 – 結局、ソフトは人の手で作られる – 開発者のモチベーションが鍵 • 変化は起きる – いつ、何が起きるか、予測する事は困難 – 変化は起こってあたりまえ – 問題は、変化に素早く対応できるかどうか 誰も明言しないが、みんな心の中 で思っているハズ 2.基本思想 14
  • 15. >>XPが指向すること • 人の満足 – ソフトウェア開発の中心は「人」 – 「人」=ソフトウェアに関わる全員 – 開発者と顧客の成功(WIN-WIN)を目指す • 変化に適応する – 未来を予測することは困難 – 変化を抑止することも困難 – だから、変化に適応できるソフトを作る • 実績重視 – 予測は外れると無駄になる – 過去に蓄積した実績値を用いる – 「昨日の天気ルール」 予測することを止め、今必要なものだけを、変更しやす く開発する。そのために、顧客と開発者の協力が必要!! 2.基本思想 15
  • 16. >>5つの価値 • XPが指向するものをより明確に、より汎 用的に示す指標が「価値」である。 • ソフトウェア開発の中で、方向性を決める 時、大いに役立つ指標となる。 • 5つの価値の種類 – コミュニケーション – シンプル – フィードバック – 勇気 – 尊重 ← 「XP入門」第2版で追加 2.基本思想 16
  • 17. >>5つの価値(1) •コミュニケーション – 人間が意思・感情・思考を伝達しあう事 – 「関係性」「雰囲気」「場所」「タイミング」 – 5つの価値の中で最も重要 – Face to Face が大事 2.基本思想 17
  • 18. >>5つの価値(2) •シンプル – 必要なモノ(コト)しかない状態 – 本質・メタ(抽象) – すべてのものに適用可能 – 何をもってシンプルとみなすか、基準が必要 2.基本思想 18
  • 19. >>5つの価値(3) •フィードバック – 反応、結果 – 例 • システムを実際に動作させる • 顧客に使ってもらう – 「ありがとう」は最も身近なフィードバック 2.基本思想 19
  • 20. >>5つの価値(4) •勇気 – 判断する/決断する • 他の4つの価値に基づき、実施する/しない を決定する。 • 何も考えないで実行する事は、「勇気」では なく「蛮勇」である。 – アンパンマン 2.基本思想 20
  • 21. >>5つの価値(5) •尊重 – 人を思いやる気持ち – 人を信じる気持ち – 「尊重」なくして他の価値は成立しない。 – 「チームのメンバーがベストを尽くしている ことを疑うな」- Kent Beck 2.基本思想 21
  • 22. >>5つの価値(6) 尊重 コミュニケーション 勇気 シンプル フィードバック 2.基本思想 22
  • 23. ■グループミーティング • 「ソフトウェア開発」という作業の中で、自分の 中で持っている価値感(=大切な事)を思いつくだ け挙げて下さい。 – 3分(個人) • その価値を発表して下さい。 – 3分(グループ) • その中で、全員が共感した「価値感」を話し合っ て決めて下さい。(複数回答可) – 5分(グループ) 2.基本思想 23
  • 24. 3.開発プロセス • 従来型の開発プロセス • XPの開発プロセスの特徴 • XPの開発プロセス – リリース計画 – イテレーション計画 – イテレーション実施 – リリース • XPの管理変数 • 開発手法の比較 3.開発プロセス 24
  • 25. >>従来型の開発プロセス(1) • 上流から下流へ。 ・工程毎に作業が明確 ・工程の後戻りは無い 要件分析 要件分析 ・工程間の情報伝達は、 外部設計 外部設計 主にドキュメント ・リリースは全工程終了後 内部設計 内部設計 開発 開発 単体試験 単体試験 結合試験 結合試験 総合試験 総合試験 運用試験 運用試験 3.開発プロセス 25
  • 26. >>従来型の開発プロセス(2) • 成果物と設計の妥当性はV字カーブで検証 要件分析 要件分析 運用試験 運用試験 仕様 明確 外部設計 外部設計 総合試験 総合試験 内部設計 内部設計 結合試験 結合試験 時既に遅し!! 仕様 開発 開発 単体試験 単体試験 不明確 • 上流工程のバグは、下流工程にならないと 検出できない!! 検出できない • 更に、お客様の間違いは、お客様が触って お客様が触って 初めて見つかる!! 初めて見つかる 3.開発プロセス 26
  • 27. >>従来型の開発プロセス(3) • 変更のコストカーブ コスト 時間 • 後工程の変更は大変 • 後工程の変更を抑えるべく、前工程の品質の作りこみが 重要となる。 • そのため、設計時に「将来の予測」を組み込むこととなる。 • しかし、予測が外れると、後工程のリスクが高くなる 3.開発プロセス 27
  • 28. >>XPの開発プロセスの特徴 • 繰り返し型開発(イテレーション型開発) – 「極小のウォーターフォール」の集合。 – 小さな設計/開発を何度も繰り返す。 • 何度もリリースする – 開発中に顧客からのフィードバックが得られる – 後工程のリスクを削減することができる – 全部完成するまで待たなくても、一部の機能からメリットを教授する ことができる • 要件/作業はカード単位 – 見積もりはカード単位で行う – カードに予定/実績工数を記入し、次回の見積もりに使用 することで、見積もり精度がどんどん向上する – 粒度が下がるため、見積もり精度が向上する – 本当にやるべき作業が明確になる – カードの枚数で進捗把握も可能 3.開発プロセス 28
  • 29. >>XPの開発プロセス(1) ▼お客様 ・期間内に開発したストーリ を満たすソフトウェアを リリース 製品 リクエスト ▼メンバー ストーリカード ストーリカード タスクカード ストーリカード タスクカード タスクカード ▼リーダー ・要求を1件づつカードに書く ・ストーリをタスクに分割 ・カード単位に見積もりを実施 ・タスクを実行 ・優先度/工数/期間により、 実施するストーリーを決定 3.開発プロセス 29
  • 30. >>XPの開発プロセス(2) ▼フィーチャー ▼ストーリー イテレーション計画 リリース計画 イテレーション実施#1 イテレーション#1 イテレーション実施#2 イテレーション#2 ・・・ ・・・ リリース ▼タスク 手短な設計 テスト コード リファクタリング 3.開発プロセス 結合 30
  • 31. >>XPの開発プロセス(3) • ストーリーカード – 「目標カード」「やりたいことカード」 – 開発するターゲットがどのようなものかを書く – 「こういう画面表示が必要」「こういう機能が必要」といったことを 書く。 翔泳社webマガジン ■組込みZine 「組込みでジャイル」より。 3.開発プロセス 31
  • 32. >>XPの開発プロセス(4) • タスクカード – ストーリーを実現するために必要な作業を書く。 – 「設計する」「実装する」「テストする」などを書く。 翔泳社webマガジン ■組込みZine 「組込みでジャイル」より。 3.開発プロセス 32
  • 33. >>XPの開発プロセス >>リリース計画 • 要求事項から、ストーリーカードを作成。 • 開発者 – ストーリーカード毎に見積もりを実施。 – 単位時間あたりの消化可能ストーリー数も見積もる。 – 技術的リスクを洗い出し、お客様に伝える。 • お客様 – 開発者からの情報を元に、実施するストーリと優先順位 を選択頂く。 • 見積もりには「昨日の天気ルール」を適用。 – 「今日の天気は昨日の天気を元に予測する」 – 過去のストーリの実績を元に、工数を見積もる。 3.開発プロセス 33
  • 34. >>XPの開発プロセス >>イテレーション計画 • ストーリを理解する。 • ストーリをタスクに分割する。 – 分割したタスクは、タスクカードに記入。 • 開発速度を宣言する。 – 実施するタスクを消化するスピードを明確化する。 – スケジュールリングする。 • タスクを受け入れる 3.開発プロセス 34
  • 35. >>XPの開発プロセス >>イテレーション実施 • ペアを組む • 手短な設計を行う • テストを先に作る – テストパターンを先に作ることで、仕様が明確になる – 自動テストスィート(xUnit)でテストプログラムを作成 – 手書きのテスト仕様書でも可 • 実装 – テストがパスするコードを作成する • リファクタリングする – 常にコードをシンプルに保ち、変更容易性を確保する 3.開発プロセス 35
  • 36. >>XPの開発プロセス >>リリース • 受け入れテストを作成 – システムを最も理解しているのは、お客様である。 – よって、テストパターンをお客様に作成頂くのがベスト。 • 受け入れテストを実施 – 過去に開発した機能の受け入れテストも実施することで、 デグレを防止する。 3.開発プロセス 36
  • 37. >>XPの管理変数(1) Resource • 4つの管理変数を使用する – Time :開発期間(Deliveryと同意) Time – Quality :品質 Scope Quality – Resource:開発人員/設備(Costと同意) – Scope :ストーリーの数 • 従来のQCDに相当 • 限られた時間(Time)の中で、要求される品質 (Quality)のものを、予算内(Resource)で消化 可能なストーリ(Scope)をお客様に選択頂く 3.開発プロセス 37
  • 38. >>XPの管理変数(2) • 4つの項目がバランスする事で、健全なソフト ウェア開発が可能となる。 • スコープの増減が、最も低リスク。 – Time:納期が遅れると、ビジネスチャンスを逃す – Quality:品質を下げるとバグ混入の危険性 – Resource:要員追加は、生産性低下となる – スコープの変更は、他の管理変数に影響しない。 • スコープ増減を上手く機能させるためには、高い 見積もり精度が必要。 – XPにより、見積もり精度の向上が可能 3.開発プロセス 38
  • 39. >>開発手法の比較 • XPは、従来型と逆の価値観を持っている。 【従来型】 従来型】 【XP】 XP】 実装後に単体テスト 単体テスト作成後に実装 ユーザは外部 ユーザは開発チームの一員 リリースは一番最後に1度だけ できるだけ頻繁にリリース すべて完成したら結合 1モジュールが完成したら結合 将来の要求を予測して実装 現在必要な機能だけを実装 開発後期の変更コストは高い 変更コストは常に一定 プロセス重視 人を重視 ドキュメント重視 コード重視 • XPの場合、変更コストを一定に保つことができる。 コスト コスト ▼従来型 ▼XP 時間 時間 3.開発プロセス 39
  • 40. ■グループミーティング • XPの開発手法の中で、「良い点」と「悪い点」 を思いつくだけ挙げて下さい。 – 3分(個人) • 「良い点」「悪い点」を発表して下さい。 – 3分(グループ) • チーム内で最も多かった「良い点」と「悪い点」 を話し合って決めて下さい。(複数回答可) – 5分(グループ) 3.開発プロセス 40
  • 41. 4.価値と原則とプラクティス • プラクティス • 価値と原則とプラクティス • 開発環境 • 原則 – ▼全員同席 – ▼人間性 • 見積もり – ▼経済性 – ▼計画ゲーム – ▼相互利益 • 開発プロセス – ▼自己相似性 – ▼短期リリース – ▼改善 – ▼最適ペース – ▼多様性 – ▼スタンダップミーティング – ▼反省 – ▼ユーザテスト – ▼フロー • 開発Tips – ▼機会 – ▼冗長性 – ▼シンプル設計 – ▼失敗 – ▼ペアプログラミング – ▼品質 – ▼テスト駆動型開発 – ▼小さなステップ – ▼リファクタリング – ▼責任の受け入れ – ▼常時結合 – ▼コード共同所有 – ▼コーディング規約 – ▼メタファ 4.価値と原則とプラクティス 41
  • 42. >>プラクティス • プラクティスとは? – 「習慣」/「実践項目」の意。 • 経験に基づいて有用性が立証 された実践項目の事である。 • プラクティスは、継続的に洗 練/改善され続けているため、 数や名称が変化しています。 4.価値と原則とプラクティス 42
  • 44. >>開発環境 >>全員同席 • 内容 – お客様~開発者まで、全員同じ 場所で作業する。 • 効果 – 質問のレスポンス速度向上 – コミュニケーション不足の解消 4.価値と原則とプラクティス 44
  • 46. >>見積もり >>計画ゲーム • 内容 – お客様と開発者の見積もりゲーム。 – 「期日までに何ができるか」「次に何を するのか」を明確にする。 – 互いの役割に干渉してはならない。 – お客様の役割 • ストーリの提示 • ストーリの優先順位決定 • ストーリの実施可否決定 – 開発者の役割 • ストーリを見積もる • 想定されるリスクを報告する • 効果 – お客様の希望する価格で真に望む機能を 開発することができる。 – 変更を容認できる仕組みの提案。 4.価値と原則とプラクティス 46
  • 48. >>開発プロセス >>短期リリース • 内容 – 短期間で動作可能なシステムを リリースする。 • 効果 – 開発期間中にユーザからの フィードバックが得られる。 – 実装上のリスクが削減される。 4.価値と原則とプラクティス 48
  • 49. >>開発プロセス >>最適ペース • 内容 – 無理な作業は効率が悪い事に気 付く。 – 無理な作業は精神面への負担も 増加することを認識する。 – 実績に基づいて開発スピードを 調整する。 • 効果 – 人は最適なペースを維持しなが ら作業すると効率が良い。 4.価値と原則とプラクティス 49
  • 50. >>開発プロセス >>スタンダップミーティング • 内容 – 毎朝同じ時間・同じ場所で、立ったま まミーティングする。 – 昨日実施した事、今日実施することを 手短に報告する。 • 効果 – コミュニケーション促進 – 今日実施することを自分で宣言するこ とで、実施内容が明確になる – 問題が発生しても、最大24時間で キャッチアップ可能 4.価値と原則とプラクティス 50
  • 51. >>開発プロセス >>ユーザテスト • 内容 – システムを最も理解しているの はシステムを使うお客様である。 – お客様に受け入れテスト項目を 作成頂く。 • 効果 – システムのゴールが明確になる。 – 抜け/漏れが明確になる。 4.価値と原則とプラクティス 51
  • 53. >>開発Tips >>シンプル設計 • 内容 – 必要な機能のみ実装する – 「将来必要と思われる機能」は 実装しない。 – 1つのモノに、複数の機能を詰 め込まない。 – YAGNI(You aren’t going to need it.=今必要なことだけや れ)の実践 • 効果 – 変更容易性の確保 4.価値と原則とプラクティス 53
  • 54. >>開発Tips >>ペアプログラミング • 内容 – 1台のマシンに2人でコーディングを 行う。 – 1人はコーダ(ドライバ)、1人はレ ビュアー(サポーター)。 – 頻繁に交代しながらコーディングを行 う。 • 効果 – 1人が持っている知識を、開発しなが ら全員に伝播することができる。 – 1人が倒れても、もう1人が開発を継 続可能。 4.価値と原則とプラクティス 54
  • 55. >>開発Tips >>テスト駆動型開発 • 内容 – コードを書く前にテストを考える。 – 考えたテストをパスするコードを書く。 – (可能であれば)テストを自動化する • 効果 – コードの仕様が明確になる – テストコードで品質保証が可能となる。 – デグレ混入の抑止 4.価値と原則とプラクティス 55
  • 56. >>開発Tips >>リファクタリング • 内容 – リファクタリングとは、コード の振舞いを変化させず、中身を 整理すること。 – テストが成功したら、リファク タリングする。 • 効果 – プログラムを理解しやすくなる – 不具合混入を予防できる – コーディング時間の短縮 – メンテナンス性の向上 4.価値と原則とプラクティス 56
  • 57. >>開発Tips >>常時結合 • 内容 – 結合テストを自動実行可能にする。 – 小さな変更で、不具合が持ち込まれて いないか確認する。 • 効果 – 変更に対する品質維持が可能となる。 – 勇気を持って変更することができる。 – 変更に対する品質保証が可能となる。 4.価値と原則とプラクティス 57
  • 58. >>開発Tips >>コード共同所有 • 内容 – コードはチーム全員の共有資産 と位置づける。 – 誰でも修正可能な状態とする。 • 効果 – コードの知識を分散可能となり、 メンバー離脱時の負荷分散/リ スク回避が可能となる。 – ただし、所有責任者が不明確と なるため、「チーム全員が責任 者」である事を、事前に周知徹 底する必要がある。 4.価値と原則とプラクティス 58
  • 59. >>開発Tips >>コーディング規約 • 内容 – チームメンバーが共有できる コーディング規約を共同で作る。 • 効果 – ペアプロ/コード共同所有する ためには、共有のコーディング 規約が必要。 – 規約違反により、違反箇所を修 正するロスコストが発生する。 4.価値と原則とプラクティス 59
  • 60. >>開発Tips >>メタファ • 内容 – 「メタファ」=「たとえ」 – 複雑なものに、誰でも理解でき る分かりやすい名前を付ける。 – 例 • クライアント/サーバシステム • インターネット • 効果 – 「メタファ」を活用することで、 強力な意思疎通が可能となる。 4.価値と原則とプラクティス 60
  • 62. >> 価値と原則とプラクティス(1) • XPでは、ソフトウェア開発において、 5つの価値を重要視している。 – コミュニケーション – シンプル – フィードバック – 勇気 – 尊重 • 単純にプラクティスを実践するだけでは、 5つの価値を得ることができない場合が ある。 – 例 • Kent:花を植える時、等間隔を重視。 • 庭師:「肥料をやる方が大事」 • 価値とプラクティスを繋ぐ『橋』が必要。 4.価値と原則とプラクティス 62
  • 63. >> 価値と原則とプラクティス(2) • 価値とプラクティスの間に、「原則」 という橋を架ける。 原則 原則 プラクティス 価値 価値 プラクティス • 原則を意識してプラクティスを実践す ることで、効果的に価値を得ることが できる。 4.価値と原則とプラクティス 63
  • 64. >>原則(1) • 人間性 – 休養や達成感は必要 人間は馬車馬ではない • 経済性 – 利益がちゃんと得られる開発をしよう • 相互利益 – みんなの利益になるように活動しよう 他人のバグでも取る のだ • 自己相似性 – 開発の基本はみんな同じ テスト作成→テストの動作の繰り 返し • 改善 – 理想と現実を近づけるために日々努力しよう • 多様性 – 多様性を否定しない チームの衝突を納得行くように解決し よう • 反省 「ゆめかがくにっき」様より抜粋 – 失敗を隠さず理由を分析しよう http://www.yumekagaku.com/ 4.価値と原則とプラクティス 64
  • 65. >>原則(2) • フロー – ソフトウェア間の結合は細かく行い、開発のフローを止めない • 機会 – 問題が起きたら、それは変更するための機会と前向きに考える • 冗長性 – 冗長性も時には必要 大事な冗長性は取り除かないように • 失敗 – 失敗することは無駄ではない 解の出ない議論を繰り返さず、とりあ えず作ってみよう • 品質 – 品質を低くしたからと言って、プロジェクトが早く進むことはない • 小さなステップ – 一度に大きく変更せず、小さく変更してすぐテスト • 責任の受け入れ – 権限と責任にずれがないようにする さもないと「お前がやれ」とい うことになる 「ゆめかがくにっき」様より抜粋 http://www.yumekagaku.com/ 4.価値と原則とプラクティス 65
  • 66. ■グループミーティング • 仕事上、一番困っている問題を解決できそうな プラクティスがないか、考えて下さい。 – 3分(個人) • 一番困っている問題と、問題を解決するプラク ティスを発表して下さい。 – 3分(グループ) • チーム内で最も多かったプラクティスを発表して 下さい。 – 5分(グループ) 4.価値と原則とプラクティス 66
  • 72. ご参加頂き、 ありがとうございました。 2008 / 5 / 17 72