SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Analysis of the interaction between
practices for introducing XP
effectively

                     Osamu Kobayashi
                      SRA(Software Research Associates)
                  Mitsuyoshi Kawabata
                   Agileware
                Makoto Sakai
                SRA Key Technology Laboratry
              Eddy Parkinson
               Department of Computer Science,
               Osaka University
Background:XP(eXtreme Programming)

What is XP ?
   eXtreme Programming
   Four Values
        Communication
        Simple
        Feedback
        Courage

Why XP ?
   Adapt to change, flexibly
   Agile development, avoiding waste
   High Quality, maintainability, productivity
                                                  2
XP Practices

 What are the Practices?
     Practices for to realize the four values
          Whole Team                   Refactoring
          Planning Game                Continuous Integration
          Small Releases               Collective Code Ownership
          Customer Tests               Coding Standards
          Simple Designs               Metaphor
                                         Sustainable Pace
           Pair Programming
                                     
       

          Test Driven Development


Often, we fail because we cannot use all of these practices.

                                                                     3
Using a subset of practices

Why can’t we use all practices?
   External problems
        Customers refuse E.g. Planning Game, Customer Test
        Conventional Contracts E.g. Small Releases
        Distributed development
          across sub-contractors    E.g. Whole Team
   Lack of resources
        Experts   E.g. Refactoring
        Development environments E.g. Test Driven Development
        Champions    E.g. Pair Programming


                                                              4
Problems of using not all practices

Not Effective Enough
   Concentration is needed for “Pair Programming”,
    thus, we have to keep to a “Sustainable Pace”.
   To keep a “Sustainable Pace”, we have to drive
    plans using the “Planning Game”
We have to understand interactions between
practices.
     We identify interactions between
     practices based on case studies.
                                                5
Agenda

Background
Analysis Methods
Case Studies
Results
Discussions
Summary


                   6
Analysis Methods

1.    Interview project members
     First, with free form answers to questions.
2.    Define notations for the results of
      interviews
     We defined graphical notations.
3.    Interview again, model interactions
     This time, using defined notations.
4.    Analyze interactions between practices

                                                   7
Case Study1 Web site workload analyzer

Item         Data                       Practices                   Adoption
                                        Whole Team                  △
Team         1 Manager
                                        Planning Game               △
             3 Developers
                                        Small Releases              ○
             2 Users                    Customer Tests              ○
Period       5 Months                   Simple Design               ○
             (XP was used during last   Pair Programming            ○
             3 months)                  Test Driven Development     ○
Language     C#, Stored Procedure       Refactoring                 ○
                                        Continuous Integration      ○
Number of    3                          Collective Code Ownership   ○
Releases                                Coding Standards            ○
Number of    4                          Metaphor                    ×
Iterations                              Sustainable Pace            ○
                                                                           8
Case Study1 Web site workload analyzer

Practices which were adopted partially:
   Whole team
        We could not keep customers on site.
        The manager and developers worked together
   Planning game
        Without customers on site, the manager took the role of the
         customer in planning games.
Practices which were not adopted:
   Metaphor
        The architecture of the system was simple, so we did not need
         metaphor to understand it.


                                                                       9
Results of Interviews (Examples)

Pair programming and sustainable pace
   Because of schedule delay they had to work at an unsustainable
    pace.
   But then, they got tired and could not think well in the morning.
   Without healthy concentration, pair programming lost productivity.
Pair programming and productivity and quality
   “Solo programming” introduced bugs and misunderstandings of
    specifications, resulting low productivity.
   Pair programming is a “real time code review”. It raised the quality
    of code from the beginning and minimized rework, thus resulting
    high productivity.




                                                                     10
Notations

We describe interactions between practices using 2
types of relationship.
         Test Driven Development
                                    Weak dependency


            Pair Programming

                                   Strong dependency


            Sustainable pace
                                                 11
Notations

Strong dependency
   Denoted by solid line arrows
   A      B means:
      By adopting A at the same time as B, B is more
    effective. (Without A, B is still partially effective.)
Weak dependency
   Denoted by dotted line arrows
   A     B means:
      Without A, B has little or no impact.


                                                              12
Second interviews and modeling

We categorized the results of second
interviews into 5 quality categories.
   Communications
   Productivity
   Quality of Code
   Quality of requirement
   Maintainability


                                        13
Interactions between practices

  Practices in “Productivity” category

                 Simple design          Test Driven Development



                  Refactoring         Pair Programming


Collective Code Ownership        Sustainable pace   While Team


                            Planning Game

                                                                  14
Interactions between practices

  Practices in “Productivity” category

                Simple design          Test Driven Development



                  Refactoring         Pair Programming


Collective Code Ownership       Sustainable pace   While Team


                            Planning Game

                                                                 15
Discussions (Effects)




                        16
Discussions (Effects)

We can identify subsets of
practices for each quality
categories.




                             17
Discussions (Effects)




                        Easy to introduce by
                        itself, highly effective




                                                   18
Discussions (Effects)




                   Difficult to introduce,
                    but highly effective




                                             19
Discussions (Effects)




          1             20
Summary

Model interactions between practices based on
case studies.
Using a table, categorized interactions into quality
categories.
Using the results, it looks possible to introduce XP
effectively, even when all practices cannot be
introduced at once.
Future directions
   More case studies.
   Recognize patterns of practice introduction.

                                                   21

Weitere ähnliche Inhalte

Was ist angesagt?

eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
Jean Pаoli
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Zohirul Alam Tiemoon
 
Test driven developement
Test driven developementTest driven developement
Test driven developement
Bhavik Panchal
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
Stephen Tucker
 

Was ist angesagt? (20)

xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
 
Code quality
Code quality Code quality
Code quality
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
DP Project Report
DP Project ReportDP Project Report
DP Project Report
 
Software development philosophies v1
Software development philosophies v1Software development philosophies v1
Software development philosophies v1
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
 
Refactoring legacy code driven by tests - ITA
Refactoring legacy code driven by tests -  ITARefactoring legacy code driven by tests -  ITA
Refactoring legacy code driven by tests - ITA
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
 
Code quality as a built-in process
Code quality as a built-in processCode quality as a built-in process
Code quality as a built-in process
 
Test driven developement
Test driven developementTest driven developement
Test driven developement
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile Adoption
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Pragmatic notdogmatictdd
Pragmatic notdogmatictddPragmatic notdogmatictdd
Pragmatic notdogmatictdd
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD)
 

Ähnlich wie Analysis of the interaction between practices for introducing XP effectively

2012 icse program comprehension
2012 icse program comprehension2012 icse program comprehension
2012 icse program comprehension
Walid Maalej
 
Building Serious Games for Medical Intervention and Training
Building Serious Games for Medical Intervention and TrainingBuilding Serious Games for Medical Intervention and Training
Building Serious Games for Medical Intervention and Training
Brock Dubbels
 

Ähnlich wie Analysis of the interaction between practices for introducing XP effectively (20)

Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Agile testing
Agile testingAgile testing
Agile testing
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Extreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP PracticesExtreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP Practices
 
xTreme Programming by Sejo Ćesić and Enis Zeherović
xTreme Programming by Sejo Ćesić and Enis ZeherovićxTreme Programming by Sejo Ćesić and Enis Zeherović
xTreme Programming by Sejo Ćesić and Enis Zeherović
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
 
Alphageeks #4: Example Embedding By Ohad Barzilay
Alphageeks #4: Example Embedding By Ohad BarzilayAlphageeks #4: Example Embedding By Ohad Barzilay
Alphageeks #4: Example Embedding By Ohad Barzilay
 
Pair Programming - a pratical guide
Pair Programming - a pratical guidePair Programming - a pratical guide
Pair Programming - a pratical guide
 
2012 icse program comprehension
2012 icse program comprehension2012 icse program comprehension
2012 icse program comprehension
 
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir Majer
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
Stepping Outside
Stepping OutsideStepping Outside
Stepping Outside
 
Building Serious Games for Medical Intervention and Training
Building Serious Games for Medical Intervention and TrainingBuilding Serious Games for Medical Intervention and Training
Building Serious Games for Medical Intervention and Training
 
Build Quality In
Build Quality InBuild Quality In
Build Quality In
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developer
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 

Mehr von Makoto SAKAI

新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
Makoto SAKAI
 
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Makoto SAKAI
 

Mehr von Makoto SAKAI (20)

プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
 
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
 
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
 
メールやチャットでも役立つテクニック
メールやチャットでも役立つテクニックメールやチャットでも役立つテクニック
メールやチャットでも役立つテクニック
 
改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話
 
(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話
 
論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修
 
SS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさSS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさ
 
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
 
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
 
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
 
Node-RED導入時の効果的な開発を考える
Node-RED導入時の効果的な開発を考えるNode-RED導入時の効果的な開発を考える
Node-RED導入時の効果的な開発を考える
 
プロのためのNode-RED再入門
プロのためのNode-RED再入門プロのためのNode-RED再入門
プロのためのNode-RED再入門
 
Node-redでプロトタイピング
Node-redでプロトタイピングNode-redでプロトタイピング
Node-redでプロトタイピング
 
プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理
 
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
 
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
 
複合主キーの扱い方
複合主キーの扱い方複合主キーの扱い方
複合主キーの扱い方
 
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
 
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Analysis of the interaction between practices for introducing XP effectively

  • 1. Analysis of the interaction between practices for introducing XP effectively Osamu Kobayashi SRA(Software Research Associates) Mitsuyoshi Kawabata Agileware Makoto Sakai SRA Key Technology Laboratry Eddy Parkinson Department of Computer Science, Osaka University
  • 2. Background:XP(eXtreme Programming) What is XP ?  eXtreme Programming  Four Values  Communication  Simple  Feedback  Courage Why XP ?  Adapt to change, flexibly  Agile development, avoiding waste  High Quality, maintainability, productivity 2
  • 3. XP Practices What are the Practices?  Practices for to realize the four values  Whole Team  Refactoring  Planning Game  Continuous Integration  Small Releases  Collective Code Ownership  Customer Tests  Coding Standards  Simple Designs  Metaphor Sustainable Pace Pair Programming    Test Driven Development Often, we fail because we cannot use all of these practices. 3
  • 4. Using a subset of practices Why can’t we use all practices?  External problems  Customers refuse E.g. Planning Game, Customer Test  Conventional Contracts E.g. Small Releases  Distributed development across sub-contractors E.g. Whole Team  Lack of resources  Experts E.g. Refactoring  Development environments E.g. Test Driven Development  Champions E.g. Pair Programming 4
  • 5. Problems of using not all practices Not Effective Enough  Concentration is needed for “Pair Programming”, thus, we have to keep to a “Sustainable Pace”.  To keep a “Sustainable Pace”, we have to drive plans using the “Planning Game” We have to understand interactions between practices. We identify interactions between practices based on case studies. 5
  • 7. Analysis Methods 1. Interview project members First, with free form answers to questions. 2. Define notations for the results of interviews We defined graphical notations. 3. Interview again, model interactions This time, using defined notations. 4. Analyze interactions between practices 7
  • 8. Case Study1 Web site workload analyzer Item Data Practices Adoption Whole Team △ Team 1 Manager Planning Game △ 3 Developers Small Releases ○ 2 Users Customer Tests ○ Period 5 Months Simple Design ○ (XP was used during last Pair Programming ○ 3 months) Test Driven Development ○ Language C#, Stored Procedure Refactoring ○ Continuous Integration ○ Number of 3 Collective Code Ownership ○ Releases Coding Standards ○ Number of 4 Metaphor × Iterations Sustainable Pace ○ 8
  • 9. Case Study1 Web site workload analyzer Practices which were adopted partially:  Whole team  We could not keep customers on site.  The manager and developers worked together  Planning game  Without customers on site, the manager took the role of the customer in planning games. Practices which were not adopted:  Metaphor  The architecture of the system was simple, so we did not need metaphor to understand it. 9
  • 10. Results of Interviews (Examples) Pair programming and sustainable pace  Because of schedule delay they had to work at an unsustainable pace.  But then, they got tired and could not think well in the morning.  Without healthy concentration, pair programming lost productivity. Pair programming and productivity and quality  “Solo programming” introduced bugs and misunderstandings of specifications, resulting low productivity.  Pair programming is a “real time code review”. It raised the quality of code from the beginning and minimized rework, thus resulting high productivity. 10
  • 11. Notations We describe interactions between practices using 2 types of relationship. Test Driven Development Weak dependency Pair Programming Strong dependency Sustainable pace 11
  • 12. Notations Strong dependency  Denoted by solid line arrows  A B means: By adopting A at the same time as B, B is more effective. (Without A, B is still partially effective.) Weak dependency  Denoted by dotted line arrows  A B means: Without A, B has little or no impact. 12
  • 13. Second interviews and modeling We categorized the results of second interviews into 5 quality categories.  Communications  Productivity  Quality of Code  Quality of requirement  Maintainability 13
  • 14. Interactions between practices Practices in “Productivity” category Simple design Test Driven Development Refactoring Pair Programming Collective Code Ownership Sustainable pace While Team Planning Game 14
  • 15. Interactions between practices Practices in “Productivity” category Simple design Test Driven Development Refactoring Pair Programming Collective Code Ownership Sustainable pace While Team Planning Game 15
  • 17. Discussions (Effects) We can identify subsets of practices for each quality categories. 17
  • 18. Discussions (Effects) Easy to introduce by itself, highly effective 18
  • 19. Discussions (Effects) Difficult to introduce, but highly effective 19
  • 21. Summary Model interactions between practices based on case studies. Using a table, categorized interactions into quality categories. Using the results, it looks possible to introduce XP effectively, even when all practices cannot be introduced at once. Future directions  More case studies.  Recognize patterns of practice introduction. 21