1 extreme programming. 2 12 practices the planning game small releases system metaphor simple design...

19
1 Extreme Programming

Upload: lesley-boone

Post on 29-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

1

Extreme Programming

Page 2: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

2

12 Practices

• The Planning Game• Small Releases• System Metaphor• Simple Design• Continuous Testing• Refactoring

• Pair Programming• Collective Code

Ownership• Continuous Integration• 40-Hour Work Week• On-Site Customer• Coding Standards

Page 3: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

3

An activity for your groups

• Which 6 of these 12 would be most easily adopted by your own group, and why?

• A follow-up for next week – Asking people in other groups about these practices.– As part of the project / presentation

Page 4: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

4

Day to day life on an XP team

• Hint: starts with a daily “standup” meeting much like Scrum’s scrum

Page 5: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

5

How does XP remove the need for extensive up-front requirements analysis?

Page 6: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

6

Or,

Page 7: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

7

How does XP remove the need for extensive design?

• What about API conflicts?• What about the code getting bad?• What about making bad design decisions and

finding out about it later?

“simplest thing that could possibly work”

Page 8: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

8

How does XP remove the need for extensive testing?

Page 9: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

9

What are the limits?

• *The Planning Game• Small Releases• System Metaphor• *Simple Design• *Continuous Testing• Refactoring

• Pair Programming• Collective Code

Ownership• *Continuous Integration• 40-Hour Work Week• *On-Site Customer• Coding Standards

* Are all of these inherently harder?

Page 10: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

10

The difficulties of “the customer”

• Custom development situation…– (one customer for this

particular version)

• Product development situation…– (use customer multiplier

– Myhrvold’s law)

Page 11: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

11

Question for your groups – What about different stakeholders?

• What if you have:– Client – pays for it– Users – do day-to-day use– Service people – fix it– Their managers– Customers of the buying organization / general

public• How do you ensure they are all represented?

Page 12: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

12

Adding more programmers to an XP project

• How many before relationships have to be more formal?

• Can they be remote?

Page 13: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

13

The even more extreme XP

• “Mob programming”

• See the silent movie on YouTube:https://www.youtube.com/watch?v=p_pvslS4gEI

• Basics – see http://mobprogramming.org

Page 14: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

14

XP - How much role fuzziness?

• Where does XP stand on the grounds of:– Defining clear responsibilities and holding people

accountable for those?– Having a clear message from leadership to

followers?– Self-organizing teams?

Page 15: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

15

Management theory tangent – Self-organizing teams

• What’s it mean? We asked last week…– In physics, “self-organization” means organization arises out of local

interactions.– An initially disordered system.– This is Empiricism in action!

• In management, “organization” means who-does-what.• All of agile claims to have this.

– Including Scrum.• See discussion athttp

://www.mountaingoatsoftware.com/presentations/leading-a-self-organizing-team

• Leadership is distributed and changing.• Control is subtle – “Light touch and adaptive.”

Page 16: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

16

In physics…

Page 17: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

17

How this relates to XP

• Typically teams need to transition to being “self-organizing.”

• XP teams especially need a Mentor at first.• Doing it on a daily basis – a big change.• Mentor does these things:– Removing misconceptions– Planning the transition to XP– Clearing up insecurities, gaining confidence– Taking away “finger pointing,” negativity– Helping create first cycles of successes

Page 18: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

18

Other “roles” with Agile

• Like Mentor, these surround the self-organizing team.• The customer role isn’t exactly as fluid as the team roles.

– Likely need a Coordinator to manage customer relationship.– Helps customer manage list of requirements.

• May also need a Translator– The old role of Business Analyst

• A Champion gains upper-management support for use of agile processes.

• A Promoter does similar work with customers.• A Terminator removes people from the team.

– This is a controversial role!

Page 19: 1 Extreme Programming. 2 12 Practices The Planning Game Small Releases System Metaphor Simple Design Continuous Testing Refactoring Pair Programming Collective

19

Your questions from the reading quiz

• My pick• Your choice