Pragmatic extreme programming

28
Scrum startup coding knowledge leadership story challenge desire UX planning Efficiency UX think skills qualities leaning set desire needs energy members wants manager done Efficiency Agile qualities planning leadership needs manager energy think wants Learning Team required Practice pair testing required workshop Designer Programmer economic Change internet reform reconfiguration reform reform ux leadership economic economic think reform reform Designer Designer needs coding leadership Team lean think qualities manager manager manager Reconfiguration Set reconfiguration Programmer scrum Scrum Scrum Skills People desire UX think qualities Agile Wants needs reform UX workshop energy Designer Wants Design think done Design Wants Set Reconfiguration Scrum startup coding knowledge leadership story challenge desire planning Efficiency UX think skills energy leaning set desire needs energy members wants manager done Agile qualities planning leadership needs manager energy think wants Learning Team product Practice pair testing required workshop Designer Programmer economic Change internet reform reconfiguration reform reform ux leadership economic economic think reform reform Designer Designer needs leadership Team lean set wants manager manager manager Reconfiguration Set reconfiguration Programmer scrum Scrum scrum Skills People desire UX think qualities Agile Wants needs reform UX workshop energy Designer Wants Design think done Design Wants Set Reconfiguration Set agile wants think knowledge wants skills plan pair think done Scrum Set reform Agile lean Pragmatic Extreme Programming Juven Xu 许晓斌

description

 

Transcript of Pragmatic extreme programming

Page 1: Pragmatic extreme programming

Scrum

startup

coding

know

ledg

e

leadership

story

challenge

desire

UX

planning

Efficien

cy

UX

think

skills

qualities

leaning

set

desire

needs

energy

members

wants

manager

done

Efficien

cy

Agile

qualities

planninglead

ersh

ip need

s

manager

energy

thinkwants

LearningTeamrequired

Practice

pair

testing

requ

ired

workshopDesigner

Programmer

economic

Changeinternet

reform

reco

nfigur

ation

refo

rmrefo

rm ux

leadership

econ

omic

economicthink

reform

reform

Designer

Designer

need

sco

ding

leadership

Teamlean

think

qualities

manager

manager

manager

Reconfiguration

Set

reconfigurationProg

rammer

scrum

Scrum

Scrum

Skills

Peop

le

desireUX

thinkqualities

AgileWantsneeds

reform UXworkshop energy

Designer

Wants

Design

think

done

DesignWants

SetReconfiguration

Scrum

startup

coding

know

ledg

e

leadership

story

challengedesireplanning

Efficien

cy

UX

think

skills

energy

leaning

set

desireneeds

energy

members

wants

manager

doneAgile

qualities

planning

lead

ersh

ip

need

s

manager

energy

think

wants

LearningTeamproduct

Practice pair

testing

requ

ired

workshop

Designer

Programmer

economic

Change

internet

reform

reco

nfigur

ation

refo

rm

refo

rmux

leadership

econ

omic

economicthink

reform

reform

Designer

Designer

need

s

leadership

Teamlean

set

wants

manager

manager

manager

Reconfiguration

Set

reconfigurationProg

rammer

scrum

Scrum scrumSkills

Peop

le

desire

UX

thinkqualities

Agile

Wants

needs

reformUXworkshop

energy

Designer

Wants

Design

think

done

DesignWants

SetReconfiguration

Set

agile

wants

think

know

ledg

e

wants

skills

plan

pair

think

done

Scru

m

Set

reformAgilelean

Pragmatic � Extreme � ProgrammingJuven � Xu � 许晓斌

Page 2: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

@juvenxu!http://www.juvenxu.com

Programmer & Agile Coach

Page 3: Pragmatic extreme programming

Extreme Programming (XP) is a software development methodology which is intended to improve software quality and

responsiveness to changing customer requirements.

Regional Scrum Gathering® Shanghai 2014

Page 4: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

Page 5: Pragmatic extreme programming

Kent Beck!Martin Fowler!James Shore!Ron Jeffries!

Regional Scrum Gathering® Shanghai 2014

Page 6: Pragmatic extreme programming

Do You Remember The Values?

Regional Scrum Gathering® Shanghai 2014

Page 7: Pragmatic extreme programming

simplicity

respect

feedback

communication

courage

Values

Regional Scrum Gathering® Shanghai 2014

Page 8: Pragmatic extreme programming

feedback

feedback

feedback

feedback

feedback

simplicity

simplicity

simplicity

courage

courage

respect

respect

communication

communication

communication

communicationcommunication

communication

simplicity

respect

feedback

communication

courage

Regional Scrum Gathering® Shanghai 2014

respect

Page 9: Pragmatic extreme programming

How Do We Follow The Values?

Here is our story…

Regional Scrum Gathering® Shanghai 2014

Page 10: Pragmatic extreme programming

A product supporting alibaba.com & aliexpress.com

Regional Scrum Gathering® Shanghai 2014

Page 11: Pragmatic extreme programming

5000 query per second & 500MB network traffic at peak

Regional Scrum Gathering® Shanghai 2014

Page 12: Pragmatic extreme programming

• We have 3 people for all business analysis, architecture, coding, testing work, and some operation work.!!

• High availability is a must, our service down almost means sites down.!!

• Business keeps growing, which means new requirements coming and users growing.

Challenges

Regional Scrum Gathering® Shanghai 2014

Page 13: Pragmatic extreme programming

simplicity

(‾口‾)!! !19 svn repositories for 1 project? !

Are you serious?

Regional Scrum Gathering® Shanghai 2014

Page 14: Pragmatic extreme programming

simplicity

Let’s follow the industry standard.

Regional Scrum Gathering® Shanghai 2014

Page 15: Pragmatic extreme programming

• Much less learning costs — imagine when programmers grows 2x in 1 year!

!

• No need to invest on customizing tools !!

• Much easier to use open source tools

Follow The Convention, Keep It Simple

Regional Scrum Gathering® Shanghai 2014

Page 16: Pragmatic extreme programming

We need streamed file download support!

In 2 weeks!

The Way Requirements Usually Comes:

Regional Scrum Gathering® Shanghai 2014

Page 17: Pragmatic extreme programming

The Way We Usually React:

Ok, let’s do it. (god knows how much time it takes)

Ok, let’s do it, but we need 2 months.

Sorry, don’t you see I’m already very busy?

Regional Scrum Gathering® Shanghai 2014

Page 18: Pragmatic extreme programming

communicationWhy you need streamed file download support?

We need to play audios and videos.

In what scenario you need this feature?

We have mobile users, they want to send audios and videos.

Mobiles users, hmm… what is the size of the audios/videos?

Let me think, … 5mb at most, usually no more than 2 mb.

Then you don’t need streamed file download, just download it and play it locally.

Regional Scrum Gathering® Shanghai 2014

respect our customers

Page 19: Pragmatic extreme programming

• Think code as the last way to solve a problem

more code == more code to maintain more feature == more complexmore complex == less stable

more complex == harder to change

simplicity

Regional Scrum Gathering® Shanghai 2014

Page 20: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

Page 21: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

Page 22: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

• TDD, CI, ATDD/BDD, Pair are great for getting feedback.!!

• But we need more, mainly from Ops point of view.

Page 23: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

user’s behaviour

Page 24: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

availability of our dependency

Page 25: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

img cluster

img-compress cluster

fileserver2-content cluster

task: merge 2 clusters

• For saving network traffic (>3GB/s) and machines (>30 4core VM)!• Legacy code with 100+ apache regex url rewrite rules!• Service must not get down during migration.

Page 26: Pragmatic extreme programming

Regional Scrum Gathering® Shanghai 2014

courage

LETS DO IT!

We have the because:

• We believe it’s valuable.!• We spend days parsing real access log and from which make many test cases.!• We use canary deployment to minimize risks.

respect our users

Page 27: Pragmatic extreme programming

simplicity

respect

feedback

communication

courage

Values

Regional Scrum Gathering® Shanghai 2014

Page 28: Pragmatic extreme programming

Scrum

startup

coding

know

ledg

e

leadership

story

challenge

desire

UX

planning

Efficien

cy

UX

think

skills

qualities

leaning

set

desire

needs

energy

members

wants

manager

done

Efficien

cy

Agile

qualities

planninglead

ersh

ip need

s

manager

energy

thinkwants

LearningTeamrequired

Practice

pair

testing

requ

ired

workshopDesigner

Programmer

economic

Changeinternet

reform

reco

nfigur

ation

refo

rmrefo

rm ux

leadership

econ

omic

economicthink

reform

reform

Designer

Designer

need

sco

ding

leadership

Teamlean

think

qualities

manager

manager

manager

Reconfiguration

Set

reconfigurationProg

rammer

scrum

Scrum

Scrum

Skills

Peop

le

desireUX

thinkqualities

AgileWantsneeds

reform UXworkshop energy

Designer

Wants

Design

think

done

DesignWants

SetReconfiguration

Scrum

startup

coding

know

ledg

e

leadership

story

challengedesireplanning

Efficien

cy

UX

think

skills

energy

leaning

set

desireneeds

energy

members

wants

manager

doneAgile

qualities

planning

lead

ersh

ip

need

s

manager

energy

think

wants

LearningTeamproduct

Practice pair

testing

requ

ired

workshop

Designer

Programmer

economic

Change

internet

reform

reco

nfigur

ation

refo

rm

refo

rmux

leadership

econ

omic

economicthink

reform

reform

Designer

Designer

need

s

leadership

Teamlean

set

wants

manager

manager

manager

Reconfiguration

Set

reconfigurationProg

rammer

scrum

Scrum scrumSkills

Peop

le

desire

UX

thinkqualities

Agile

Wants

needs

reformUXworkshop

energy

Designer

Wants

Design

think

done

DesignWants

SetReconfiguration

Set

agile

wants

think

know

ledg

e

wants

skills

plan

pair

think

done

Scru

m

Set

reformAgilelean

Thank � YouJuven � Xu � 许晓斌