Slide 1

Slide 1 text

Manage Complexity With Agility Alan Stevens

Slide 2

Slide 2 text

Contact Me Email/IM: [email protected] Blog: http://halanstevens.com Twitter: @alanstevens

Slide 3

Slide 3 text

The Straw Man

Slide 4

Slide 4 text

Software is Complex

Slide 5

Slide 5 text

You Are Already Succeeding

Slide 6

Slide 6 text

Pomposity

Slide 7

Slide 7 text

Use What Works (For You)

Slide 8

Slide 8 text

Avoid Dogma

Slide 9

Slide 9 text

It’s a process It takes Time

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Release Regularly (Every two to four weeks)

Slide 12

Slide 12 text

Release: Even Internally

Slide 13

Slide 13 text

Constant Velocity “Heroism is Failure” H. Alan Stevens

Slide 14

Slide 14 text

Short Horizons

Slide 15

Slide 15 text

Frequent Course Corrections

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

User Goals Not Technical Requirements

Slide 18

Slide 18 text

Reminder of a Future Conversation

Slide 19

Slide 19 text

SWAG Sophisticated Wild Ass Arbitrary Guess

Slide 20

Slide 20 text

User Story Template As a: (Role) I want: (Something) So that: (Benefit)

Slide 21

Slide 21 text

Documented in Acceptance Tests

Slide 22

Slide 22 text

Avoid BDUF (Big Design Up Front)

Slide 23

Slide 23 text

The Last Responsible Moment

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Do the simplest thing that could possibly work

Slide 26

Slide 26 text

YAGNI You Ain’t Gonna’ Need It!

Slide 27

Slide 27 text

Loose Coupling

Slide 28

Slide 28 text

High Cohesion & Low Coupling

Slide 29

Slide 29 text

Law of Demeter A class should only communicate with its immediate neighbors

Slide 30

Slide 30 text

Manage Technical Debt

Slide 31

Slide 31 text

I thought that rushing software out the door to get some experience with it was a good idea, but that of course, you would eventually go back and as you learned things about that software you would repay that loan by refactoring the program to reflect your experience as you acquired it. Ward Cunningham “Ward Explains Debt Metaphor” http://c2.com/cgi/wiki?WardExplainsDebtMetaphor

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Code Smells a hint that something might be wrong

Slide 34

Slide 34 text

Follow the “Boy Scout Principle”

Slide 35

Slide 35 text

Enable Change

Slide 36

Slide 36 text

Common Refactorings Rename Class Extract Variable Extract Method Extract Class

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

DRY Don’t Repeat Yourself

Slide 39

Slide 39 text

See it once: do it See it twice: notice it See it a third time: Automate It! The Rule of Three

Slide 40

Slide 40 text

Optimize Bottlenecks

Slide 41

Slide 41 text

Reduce Friction

Slide 42

Slide 42 text

Enable Flow

Slide 43

Slide 43 text

Reduce Ceremony

Slide 44

Slide 44 text

Automate the BFDs (Big Friggin’ Deals)

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

As applications mature, they should become more maintainable, not less.

Slide 47

Slide 47 text

Continuous Improvement

Slide 48

Slide 48 text

“With every mistake, I must surely be learning” George Harrison

Slide 49

Slide 49 text

Work on your process, not just in your process

Slide 50

Slide 50 text

Value Developer Cycles Over CPU Cycles

Slide 51

Slide 51 text

Eliminate Waste

Slide 52

Slide 52 text

Prevention is the best cure

Slide 53

Slide 53 text

Avoid Complacency

Slide 54

Slide 54 text

LEAN

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

Thanks For Listening! Email/IM: [email protected] Blog: http://halanstevens.com Twitter: @alanstevens