A Gentle Introduction to Agile Software Development

1,104 views

Published on

Software development is complex business. In order to deal with this complexity, agile practices have been developed to break development into manageable cycles of development called iterations. We examine the use of user stories to gather requirements. We examine ways to automate our build and deployment process in order to produce more frequent releases. Finally we look at ways to implement each of these practices in existing projects.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,104
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A Gentle Introduction to Agile Software Development

  1. 1. A Gentle Introduction to Agile Software Development H. Alan Stevens Manage Complexity With Agility
  2. 2. Contact Me Slides: speakerdeck.com/alanstevens Email/IM: alanstevens@gmail.com Website: halanstevens.com Twitter: @alanstevens
  3. 3. nerdhiveindustries.com
  4. 4. The Straw Man
  5. 5. Software is Complex
  6. 6. You Are Already Succeeding
  7. 7. Pomposity
  8. 8. Use What Works (For You)
  9. 9. Avoid Dogma
  10. 10. It’s a process It takes Time
  11. 11. Release Regularly (Every two to four weeks)
  12. 12. Release: Even Internally
  13. 13. Constant Velocity “Heroism is Failure” H. Alan Stevens
  14. 14. Short Horizons
  15. 15. Frequent Course Corrections
  16. 16. User Goals Not Technical Requirements
  17. 17. Reminder of a Future Conversation
  18. 18. SWAG Sophisticated Wild Ass Arbitrary Guess
  19. 19. User Story Template As a: (Role) I want: (Something) So that: (Benefit)
  20. 20. Documented in Acceptance Tests
  21. 21. Avoid BDUF (Big Design Up Front)
  22. 22. The Last Responsible Moment
  23. 23. Do the simplest thing that could possibly work
  24. 24. YAGNI You Ain’t Gonna’ Need It!
  25. 25. Loose Coupling
  26. 26. High Cohesion & Low Coupling
  27. 27. Law of Demeter A class should only communicate with its immediate neighbors
  28. 28. Manage Technical Debt
  29. 29. 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
  30. 30. 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
  31. 31. Code Smells a hint that something might be wrong
  32. 32. Follow the “Boy Scout Principle”
  33. 33. Enable Change
  34. 34. Common Refactorings Rename Class Extract Variable Extract Method Extract Class
  35. 35. DRY Don’t Repeat Yourself
  36. 36. See it once: do it See it twice: notice it See it a third time: Automate It! The Rule of Three
  37. 37. Optimize Bottlenecks
  38. 38. Reduce Friction
  39. 39. Enable Flow
  40. 40. Reduce Ceremony
  41. 41. Automate the BFDs (Big Friggin’ Deals)
  42. 42. As applications mature, they should become more maintainable, not less.
  43. 43. Continuous Improvement
  44. 44. “With every mistake, I must surely be learning” George Harrison
  45. 45. Work on your process, not just in your process
  46. 46. Value Developer Cycles Over CPU Cycles
  47. 47. Eliminate Waste
  48. 48. Prevention is the best cure
  49. 49. Avoid Complacency
  50. 50. LEAN
  51. 51. Slides: speakerdeck.com/alanstevens Email/IM: alanstevens@gmail.com Website: halanstevens.com Twitter: @alanstevens Thanks For Listening!

×