Analysis of the interaction between
practices for introducing XP
effectively

                     Osamu Kobayashi
       ...
Background:XP(eXtreme Programming)

What is XP ?
   eXtreme Programming
   Four Values
        Communication
        S...
XP Practices

 What are the Practices?
     Practices for to realize the four values
          Whole Team               ...
Using a subset of practices

Why can’t we use all practices?
   External problems
        Customers refuse E.g. Planning...
Problems of using not all practices

Not Effective Enough
   Concentration is needed for “Pair Programming”,
    thus, we...
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 ...
Case Study1 Web site workload analyzer

Item         Data                       Practices                   Adoption
     ...
Case Study1 Web site workload analyzer

Practices which were adopted partially:
   Whole team
        We could not keep ...
Results of Interviews (Examples)

Pair programming and sustainable pace
   Because of schedule delay they had to work at ...
Notations

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

Strong dependency
   Denoted by solid line arrows
   A      B means:
      By adopting A at the same time as ...
Second interviews and modeling

We categorized the results of second
interviews into 5 quality categories.
   Communicati...
Interactions between practices

  Practices in “Productivity” category

                 Simple design          Test Drive...
Interactions between practices

  Practices in “Productivity” category

                Simple design          Test Driven...
Discussions (Effects)




                        16
Discussions (Effects)

We can identify subsets of
practices for each quality
categories.




                             ...
Discussions (Effects)




                        Easy to introduce by
                        itself, highly effective


...
Discussions (Effects)




                   Difficult to introduce,
                    but highly effective




        ...
Discussions (Effects)




          1             20
Summary

Model interactions between practices based on
case studies.
Using a table, categorized interactions into quality
...
Upcoming SlideShare
Loading in …5
×

Analysis of the interaction between practices for introducing XP effectively

886 views

Published on

In this paper, we discuss interactions between XP (eXtreme Programming) practices. We discuss 2 case studies of introducing XP practices selectively from the 13 practices which are defined in XP, and we analyze how to select practices. Our analysis is based on interviews with developers. While it is difficult to introduce all the XP practices at once, our knowledge makes it easier to determine more effective combinations of practices.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
886
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Analysis of the interaction between practices for introducing XP effectively

  1. 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. 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. 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. 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. 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
  6. 6. Agenda Background Analysis Methods Case Studies Results Discussions Summary 6
  7. 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. 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. 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. 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. 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. 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. 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. 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. 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
  16. 16. Discussions (Effects) 16
  17. 17. Discussions (Effects) We can identify subsets of practices for each quality categories. 17
  18. 18. Discussions (Effects) Easy to introduce by itself, highly effective 18
  19. 19. Discussions (Effects) Difficult to introduce, but highly effective 19
  20. 20. Discussions (Effects) 1 20
  21. 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

×