Anatomy of a Snowflake Goto Amsterdam 2012 you are here eBay - - PowerPoint PPT Presentation

anatomy of a snowflake
SMART_READER_LITE
LIVE PREVIEW

Anatomy of a Snowflake Goto Amsterdam 2012 you are here eBay - - PowerPoint PPT Presentation

Bartosz Kiera Anatomy of a Snowflake Goto Amsterdam 2012 you are here eBay Classifieds Group http://www.ebayclassifiedsgroup.com My road to Agile Patterns are evil The Fantastic 4 My road to Agile yes, thats a process now Im


slide-1
SLIDE 1

Anatomy of a Snowflake

Bartosz Kiera Goto Amsterdam 2012

slide-2
SLIDE 2

eBay Classifieds Group http://www.ebayclassifiedsgroup.com

you are here

slide-3
SLIDE 3

My road to Agile Patterns are evil The Fantastic 4

slide-4
SLIDE 4

My road to Agile

slide-5
SLIDE 5

yes, that’s a process

slide-6
SLIDE 6

now I’m convinced...

slide-7
SLIDE 7

FOS - Flight Operation Suite QUE - Communication & Alerting TOP - Aircraft Performance Tool FIDS - Flight Information Display System FIDS - Flight Information Display System BRF - Briefer LST - Weight & Balance ULD - ULD Control WXS - Weather Station NTM - NOTAM Management FLW - Flight Watch CDM - Crew DX IFS Briefer - Globe

slide-8
SLIDE 8

6 developers 2 testers

slide-9
SLIDE 9

Optimizing Predictable Defined Repeatable Ad hoc this way up

CMM

what if our ad hoc is the optimizing?

slide-10
SLIDE 10

6 developers 2 testers

slide-11
SLIDE 11

6 developers 2 testers

3

slide-12
SLIDE 12

FOS - Flight Operation Suite QUE - Communication & Alerting TOP - Aircraft Performance Tool FIDS - Flight Information Display System FIDS - Flight Information Display System BRF - Briefer LST - Weight & Balance ULD - ULD Control WXS - Weather Station NTM - NOTAM Management FLW - Flight Watch CDM - Crew DX IFS Briefer - Globe

slide-13
SLIDE 13
slide-14
SLIDE 14

no I didn’t

slide-15
SLIDE 15

phone call implementation test rollout

slide-16
SLIDE 16

ah, good times...

slide-17
SLIDE 17

I learned it the hard way

Agile

slide-18
SLIDE 18

Agile

slide-19
SLIDE 19

Patterns are evil

slide-20
SLIDE 20

A clerk at a butcher shop stands five feet ten inches tall and wears size 13 sneakers. What does he weigh? In British Columbia you cannot take a picture of a man with a wooden leg. Why not? Which is correct to say, “The yolk of the egg is white”

  • r “The yolk of the egg are white?”
slide-21
SLIDE 21

A clerk at a butcher shop stands five feet ten inches tall and wears size 13 sneakers. What does he weigh? In British Columbia you cannot take a picture of a man with a wooden leg. Why not? Which is correct to say, “The yolk of the egg is white”

  • r “The yolk of the egg are white?”

Meat You can’t take a picture with a wooden leg. You need a camera (or iPad or cell phone) to take a picture.

  • Neither. Egg yolks are yellow.
slide-22
SLIDE 22

We see what we want to see and what we expect to see

slide-23
SLIDE 23

Yet Another Technology (?)

slide-24
SLIDE 24

I love the familiar. I categorize.

slide-25
SLIDE 25

implement

  • bserve
slide-26
SLIDE 26

implement

  • bserve
slide-27
SLIDE 27

Which fits better?

define “fits better”?

slide-28
SLIDE 28

quick solution code to compare things done better focus on the problem emerging patterns more than a sum of its parts

Emergent Design

slide-29
SLIDE 29

relevant complex

the good the bad the ugly

irrelevant simple

Solution

slide-30
SLIDE 30

Emergent design - HOW-TO

  • 1. Satisfy your immediate needs.
  • 2. Observe the patterns and adapt the solution.

focus on the what (relevancy) focus on the how(simplicity)

slide-31
SLIDE 31

public void setProduct(String productAlias) { this.product = Product.from(productAlias); }

relevant? simple?

slide-32
SLIDE 32

public void setProduct(Product product) { this.product = product; } public class ProductEnumConverter extends PropertyEditorSupport { @Override public void setAsText(final String productAlias) throws IllegalArgumentException { setValue(Product.from(productAlias)); } } @InitBinder public void initBinder(WebDataBinder binder) { binder.registerCustomEditor(Product.class, new ProductEnumConverter()); } <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors"> <map> <entry key="domain.model.product.Product" value="domain.infrastructure.ProductEnumConverter"/> </map> </property> </bean>

relevant? simple? +

slide-33
SLIDE 33

Agile

slide-34
SLIDE 34

Agile

slide-35
SLIDE 35

Agile

slide-36
SLIDE 36

Agile

slide-37
SLIDE 37

Agile

slide-38
SLIDE 38

Agile

is it? Scrum much?

slide-39
SLIDE 39

Question 1 - Iterations No iterations - 0 Interations > 6 weeks - 1 Variable length < 6 weeks - 2 Fixed iteration length 6 weeks - 3 Fixed iteration length 5 weeks - 4 Fixed iteration 4 weeks or less - 10

slide-40
SLIDE 40

You loose 2 points if your requirements are good but not user stories

Question 3 - Agile Specification No requirements - 0 Big requirements documents - 1 Poor user stories - 4 Good requirements - 5 Good user stories - 7 Just enough, just in time specifications - 8 Good user stories tied to specifications as needed - 10

slide-41
SLIDE 41

Planning poker is worth 3 points

Question 6 - Estimates Product Backlog not estimated - 0 Estimates not produced by team - 1 Estimates not produced by planning poker - 5 Estimates produced by planning poker by team - 8 Estimate error < 10% - 10

slide-42
SLIDE 42

Agile FTW (WTF?)

“We give this test to Scrum teams at OpenView Venture Partners and to their portfolio companies as the venture group does not expect good performance

from Scrum teams without passing the Nokia test. They are also very interested in predictability of release dates which is impossible without passing grades on the test.”

Jeff Sutherland

slide-43
SLIDE 43

“The Nokia Test? I hope you’re not expecting to graduate just because you passed.”

Brad Murphy, Founder & CEO of Gear Stream

slide-44
SLIDE 44

Matryoshka syndrome

slide-45
SLIDE 45

We can’t change it, because then it’s not Scrum anymore.

slide-46
SLIDE 46

Functional completeness

slide-47
SLIDE 47

Functional completeness

slide-48
SLIDE 48

Agile = Common sense

slide-49
SLIDE 49

And a pinch of crazy

Individuals & interactions

In-house coaching

Pair programming

Experimenting

(Passionate) discussions

Flat structure

Visibility

Trust Great People

Outings

Open space

slide-50
SLIDE 50

The team

slide-51
SLIDE 51

git push

Working software

Emergent design

Hive mind

Experimenting

Evolutionary architecture

TDD

Visibility

Continuos deployment

BDD DDD

Trust

Monitoring

slide-52
SLIDE 52
slide-53
SLIDE 53

One for all - all for one

Customer collaboration Flat structure

Experimenting

Hive mind Visibility

One team Trust

User testing Beta

Open space

(Passionate) discussions Outings

slide-54
SLIDE 54
slide-55
SLIDE 55

One for all - all for one

Responding to change

Continuos deployment

Experimenting

Hive mind Visibility TDD

Trust

Let it hurt Last responsible moment

Real priorities

slide-56
SLIDE 56
slide-57
SLIDE 57

Be Agile.

slide-58
SLIDE 58

More?

bkiera@ebay.com @useresu mutablenotions.wordpress.com tinyurl.com/nf-ead Neal Ford http://www.thoughtworks.com/emergent-design

slide-59
SLIDE 59

Start complaining. That was your training.

slide-60
SLIDE 60

Thank You!