SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (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
Justin Gordon
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
Devnology
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
Jean Pаoli
 
Code quality
Code quality Code quality
Code quality
Sunil Prasad
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
DUONG Trong Tan
 
DP Project Report
DP Project ReportDP Project Report
DP Project Report
Chawal Ukesh
 
Software development philosophies v1
Software development philosophies v1Software development philosophies v1
Software development philosophies v1
Praveen Nair
 
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
Wee Witthawaskul
 
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
Daniel Davis
 
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
Luca Minudel
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
Remus Langu
 
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
 
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
Elad Maimon
 
Test driven developement
Test driven developementTest driven developement
Test driven developement
Bhavik Panchal
 
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
Wee Witthawaskul
 
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
 
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
Steven Mak
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
harinderpisces
 
Pragmatic notdogmatictdd
Pragmatic notdogmatictddPragmatic notdogmatictdd
Pragmatic notdogmatictdd
Joseph Yoder
 
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)
CodeOps Technologies LLP
 
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
Justin Gordon
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
Devnology
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
Jean Pаoli
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
DUONG Trong Tan
 
Software development philosophies v1
Software development philosophies v1Software development philosophies v1
Software development philosophies v1
Praveen Nair
 
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
Wee Witthawaskul
 
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
Daniel Davis
 
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
Luca Minudel
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
Remus Langu
 
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
 
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
Elad Maimon
 
Test driven developement
Test driven developementTest driven developement
Test driven developement
Bhavik Panchal
 
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
Wee Witthawaskul
 
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
 
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
Steven Mak
 
Pragmatic notdogmatictdd
Pragmatic notdogmatictddPragmatic notdogmatictdd
Pragmatic notdogmatictdd
Joseph Yoder
 
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)
CodeOps Technologies LLP
 

Similar to 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
Naresh Jain
 
Agile testing
Agile testingAgile testing
Agile testing
Madhu Packiam Duraisamy
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
Raghu Karnati
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
jackcrews
 
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
David Hanson
 
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ć
Bosnia Agile
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
Shaun Abram
 
Extreme-Programming-XPllllllllllllllllllllllllllllll.pptx
Extreme-Programming-XPllllllllllllllllllllllllllllll.pptxExtreme-Programming-XPllllllllllllllllllllllllllllll.pptx
Extreme-Programming-XPllllllllllllllllllllllllllllll.pptx
indianmarketmovers
 
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
Alphageeks
 
Pair Programming - a pratical guide
Pair Programming - a pratical guidePair Programming - a pratical guide
Pair Programming - a pratical guide
Giuseppe Sorrentino
 
2012 icse program comprehension
2012 icse program comprehension2012 icse program comprehension
2012 icse program comprehension
Walid Maalej
 
L5555555555555555555555 Agile Scrum Framework.pdf
L5555555555555555555555 Agile Scrum Framework.pdfL5555555555555555555555 Agile Scrum Framework.pdf
L5555555555555555555555 Agile Scrum Framework.pdf
rahulprasad894389
 
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat
 
XP Explained
XP ExplainedXP Explained
XP Explained
vineet
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
HopeTutors1
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
guest1c30ed5
 
Stepping Outside
Stepping OutsideStepping Outside
Stepping Outside
Lasse Koskela
 
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
 
ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...
ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...
ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...
AgileNetwork
 
Build Quality In
Build Quality InBuild Quality In
Build Quality In
Kishen Simbhoedatpanday
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
Naresh Jain
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
Raghu Karnati
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
jackcrews
 
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
David Hanson
 
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ć
Bosnia Agile
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
Shaun Abram
 
Extreme-Programming-XPllllllllllllllllllllllllllllll.pptx
Extreme-Programming-XPllllllllllllllllllllllllllllll.pptxExtreme-Programming-XPllllllllllllllllllllllllllllll.pptx
Extreme-Programming-XPllllllllllllllllllllllllllllll.pptx
indianmarketmovers
 
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
Alphageeks
 
Pair Programming - a pratical guide
Pair Programming - a pratical guidePair Programming - a pratical guide
Pair Programming - a pratical guide
Giuseppe Sorrentino
 
2012 icse program comprehension
2012 icse program comprehension2012 icse program comprehension
2012 icse program comprehension
Walid Maalej
 
L5555555555555555555555 Agile Scrum Framework.pdf
L5555555555555555555555 Agile Scrum Framework.pdfL5555555555555555555555 Agile Scrum Framework.pdf
L5555555555555555555555 Agile Scrum Framework.pdf
rahulprasad894389
 
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir MajerABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat - TDD Intro by Damir Majer
ABAPCodeRetreat
 
XP Explained
XP ExplainedXP Explained
XP Explained
vineet
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
HopeTutors1
 
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
 
ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...
ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...
ANIn Chennai Jan 2025 | The developer's co-pilot! by Lakshmi Narasimhan R and...
AgileNetwork
 
Ad

More from Makoto SAKAI (20)

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

Recently uploaded (20)

Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
João Esperancinha
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
Build With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdfBuild With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdf
Google Developer Group - Harare
 
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient CareAn Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
Cyntexa
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
ACE Aarhus - Team'25 wrap-up presentation
ACE Aarhus - Team'25 wrap-up presentationACE Aarhus - Team'25 wrap-up presentation
ACE Aarhus - Team'25 wrap-up presentation
DanielEriksen5
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Artificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptxArtificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptx
03ANMOLCHAURASIYA
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
How to Build an AI-Powered App: Tools, Techniques, and Trends
How to Build an AI-Powered App: Tools, Techniques, and TrendsHow to Build an AI-Powered App: Tools, Techniques, and Trends
How to Build an AI-Powered App: Tools, Techniques, and Trends
Nascenture
 
Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025
Damco Salesforce Services
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
João Esperancinha
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient CareAn Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
Cyntexa
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
ACE Aarhus - Team'25 wrap-up presentation
ACE Aarhus - Team'25 wrap-up presentationACE Aarhus - Team'25 wrap-up presentation
ACE Aarhus - Team'25 wrap-up presentation
DanielEriksen5
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Artificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptxArtificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptx
03ANMOLCHAURASIYA
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
How to Build an AI-Powered App: Tools, Techniques, and Trends
How to Build an AI-Powered App: Tools, Techniques, and TrendsHow to Build an AI-Powered App: Tools, Techniques, and Trends
How to Build an AI-Powered App: Tools, Techniques, and Trends
Nascenture
 
Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025
Damco Salesforce Services
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 

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
  翻译: