A Gentle Introduction to Agile Software Development H. Alan Stevens Manage Complexity With Agility
Nov 01, 2014
A Gentle Introduction to Agile Software Development
H. Alan Stevens
Manage Complexity With Agility
Contact Me
Slides: speakerdeck.com/alanstevens
Email/IM: [email protected]
Website: halanstevens.com
Twitter: @alanstevens
nerdhiveindustries.com
The Straw Man
Software is Complex
You Are Already Succeeding
Pomposity
Use What Works(For You)
Avoid Dogma
It’s a processIt takes Time
Release Regularly(Every two to four weeks)
Release: Even Internally
Constant Velocity“Heroism is Failure”
H. Alan Stevens
Short Horizons
Frequent Course Corrections
User GoalsNot Technical Requirements
Reminder of a Future Conversation
SWAGSophisticated Wild Ass
Arbitrary Guess
User Story Template
As a: (Role)I want: (Something)So that: (Benefit)
Documented in Acceptance Tests
Avoid BDUF(Big Design Up Front)
The Last Responsible Moment
Do the simplest thing that could possibly work
YAGNIYou Ain’t Gonna’ Need It!
Loose Coupling
High Cohesion &
Low Coupling
Law of DemeterA class should only
communicate with its immediate neighbors
Manage Technical Debt
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
Ward Cunningham“Ward Explains Debt Metaphor”http://c2.com/cgi/wiki?WardExplainsDebtMetaphor
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
Code Smellsa hint that something might be wrong
Follow the “Boy Scout Principle”
Enable Change
Common Refactorings
Rename ClassExtract VariableExtract MethodExtract Class
DRYDon’t
Repeat Yourself
See it once: do it
See it twice: notice it
See it a third time:
Automate It!
The Rule of Three
OptimizeBottlenecks
Reduce Friction
Enable Flow
Reduce Ceremony
Automate the BFDs
(Big Friggin’ Deals)
As applications mature, they should become more
maintainable, not less.
Continuous Improvement
“With every mistake, I must surely be learning”
George Harrison
Work on your
process, not just in
your process
Value Developer Cycles Over CPU Cycles
Eliminate Waste
Prevention is the best cure
Avoid Complacency
LEAN
Slides: speakerdeck.com/alanstevens
Email/IM: [email protected]
Website: halanstevens.com
Twitter: @alanstevens
Thanks For Listening!