Harvard CSCI E-71 Agile Software Development Session 1

Harvard CSCI E-71 Agile Software Development Session 1

Why Agile software development?
What is Agile software development?

A66e8d6702fa27e8b8c1587dbe0ff07e?s=128

Richard Kasperowski

August 31, 2015
Tweet

Transcript

  1. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com CSCI E-71 Agile Software Development Harvard University Extension School Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617 466 9754 r@kasperowski.com www.kasperowski.com
  2. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Tonight’s class • Intro to the course • Why Agile Software Development • What is Agile? • Course logistics • Homework assignment • Wrap up
  3. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Intro to the course
  4. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Richard Kasperowski Instructor Greatness Guild Agile Trainer and Coach Core Protocols Open Space Technology The Core Protocols: A Guide to Greatness CoderDojo
  5. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Jeff Johnson Teaching Assistant Constant contact Principal Software Developer
  6. Audio  Setup  Wizard We’ll  begin  in  a  few  minutes,  while

     you’re  waiting:   Check  your  audio  through  the    Audio  Setup  Wizard Choose:   Meeting  à Audio  Setup  Wizard     You  must  play  back  the  sample   recording  to  configure  microphone   properly After  Audio  Setup  Wizard  is  complete,   click  the  Microphone  icon  to  turn  on   your  microphone,   then  again  to  MUTE  it.   You  should  do  this  for  every  session.
  7. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Activity 1: Agile knowledge • Where are you right now? • Why are you taking this class? What is your goal? • What do you already know about Agile? • http://gr8p.pl/agile-aug31 • 5 minutes
  8. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Goal of this course • By the end of this course, you will understand Agile software development well enough to be an effective Agile team member or leader.
  9. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Agile == people + technology
  10. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Pedagogy • “Learning 3.0” http://www.learning30.co/ • Learning == move ideas from short-term memory to long-term memory • Neuroscience • Short cycles (Pomodoro technique) • Social • Physically active • Active participation • Learn by doing, learn by teaching each other • Image: https://www.mcgill.ca/neuroscience/ neuroscience
  11. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Course syllabus: our learning backlog • http://gr8p.pl/agile-syllabus
  12. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Activity 2: learning backlog • Which topics are most important to you? (dot-vote) • Why is that topic important to you? • Is there a topic you want to add to the backlog? • Is there a guest speaker you want to do a lecture? • http://gr8p.pl/agile-aug31 • 5 minutes
  13. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Questions or comments?
  14. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Why Agile Software Development?
  15. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Agile vs Waterfall Image source: https://www.mountaingoatsoftware.com/blog/agile-succeeds-three-times-more-often-than-waterfall
  16. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Agile vs Waterfall • Waterfall is… • Structured • One big project • A sequential process • Suited for situations where change is uncommon • Internal • A process that requires clearly defined requirements upfront • Agile is… • Flexible • Many small projects • Highly collaborative • Best for those who want continuous improvements • Involves customers • A process in which requirements are expected to evolve and change Source: http://www.onedesk.com/2013/01/waterfall-vs-agile/
  17. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com When to use Agile: Stacey matrix variation Source: http://cdn.brilligence.net/wp-content/uploads/2013/04/ stacey-matrix-agile.png Image source:
  18. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Agile is about teams Individuals: 10x performance difference* Teams: 2000x performance difference* Should you focus on optimizing for individual performance or team performance? *Sutherland, Jeff (2014-09-30). Scrum: The Art of Doing Twice the Work in Half the Time (pp. 41-43). The Doubleday Religious Publishing Group. Kindle Edition. 10x is from a study of CS students at Yale. 2000x is from a study of 3800 software projects. 0 500 1000 1500 2000 Worst Best individual Best team
  19. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Conway’s law “Organisations which design systems… are constrained to produce designs which are copies of the communication structures of these organisations.” - Melvin Conway, 1968 Source: Bob Marshall https://flowchainsensei.wordpress.com/2012/09/07/ conways-law-revisited/
  20. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Team == Product … so build a great team!
  21. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Questions or comments?
  22. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com What is Agile?
  23. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Activity 3: Presto Manifesto • What are the elements of a great software project? • Think about the best software team or project you’ve ever been part of. • What were the key characteristics of that team/project that made it so successful? • http://gr8p.pl/agile-aug31 • 5 minutes
  24. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com What makes software teams & projects succeed? • Stakeholder buy in • Business and stakeholder participation • team members empowered to make decisions • open, frequent communication and discussion of ideas • small pieces of development work • refocus on what’s important • New technology • Tight deadline • Dev mgr has great tech skills • clearly defined roles • hashed out requirements • quick feedback • small team • anonymous team feedback • knowledge center • Agile / Scrum • flexibility • short iterations • users involved • flexibility • positive people, willing to help each other • teamwork • trust • honest communication
  25. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Manifesto for Agile Software Development • http://agilemanifesto.org/
  26. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Activity 4: Agile values & principles • Looking at the four values of Agile • Which one resonates most with you? Why? • Which one is the most challenging in your current team or organization? • Looking at the 12 principles of the Agile • Which one resonates most with you? Why? • Which one is the most challenging in your current team or organization? • http://gr8p.pl/agile-aug31 • 5 minutes
  27. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com “Flavors” of Agile
  28. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Questions or comments?
  29. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Course logistics
  30. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Course information • Course web site: http://www.agilesoftwaredevelopment.net/ • Syllabus • Slides and video of class (within 24 hours after class ends) • HW assignments • Classes held every other week • Virtual Monday nights 5:30-7:30pm ET • On campus Sat-Sun, Sep 12-13, 9:00-5:00 ET
  31. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Communication • Staff • Richard Kasperowski: skype:rkasperowski, +1 617 466 9754, r@kasperowski.com • Jeff Johnson • Office hours TBD, typically 1 hour each staff member per week (TODO) • Everyone • Staff may send email to all students • Course forum, probably on Slack (TODO)
  32. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Grading • http://www.agilesoftwaredevelopment.net/p/grading.html • Intrinsic vs extrinsic motivation • Goal: learning backlog and grading aligned with Agile Manifesto • Individuals and interactions => class participation, group HWs and project • Working software => tech HW and project will be working software • Customer collaboration => project oriented around a real customer • Responding to change => revise learning backlog, HWs, project, grading guidelines appropriately to achieve learning outcomes
  33. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Homework and project • HW • Designed to help you learn and get feedback on your learning in iterative chunks • Agile social skills: Collaborative, crowd-sourced HWs. You generate 30 unique questions, we all answer them. You get credit for your unique question and for answering all the questions. • Agile tech skills: Specific tech goal, assigned by course staff. You work in pairs or groups, submit code and evidence of collaboration. All team members receive same grade. • Project • Design, implement, and deliver a real software project, ideally for a real stakeholder and solving a real problem • Full Agile product delivery lifespan, from product vision and team formation to delivery of a working product increment • Work as Scrum teams. Demo product, code, and evidence of collaboration. All team members receive the same grade.
  34. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com On-campus weekend • Saturday-Sunday, September 12-13, 9:00-5:00pm ET • Arrive before 9:00. We will start promptly at 9:00. • Location: 1 Story Street, room 304, Cambridge, MA USA • If you’re from out of town, make your travel arrangements ASAP • Saturday: 1-day Scrum class, based on CSM curriculum • Sunday: 1-day tech skills class, using mob programming and kata to learn and practice TDD, refactoring, etc. • Suggestion: students organize activities (small group dinners at various restaurants?) prior to class (on Slack) or during class
  35. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Questions or comments?
  36. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Homework assignment
  37. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Homework • Due Sep 12 • Perfection Game feedback on tonight’s class: https:// www.surveymonkey.com/r/239DBGD • Suggested reading—you will teach back based on what you read (see syllabus) • Due Sep 13 • Suggested reading—you will teach back based on what you read (see syllabus) • Tech assignment (TODO add to syllabus) • Install the following software on your laptop (latest versions of each) • Java SE JDK: http://www.oracle.com/ technetwork/java/javase/downloads/index.html • Eclipse IDE for Java EE Developers: https:// eclipse.org/downloads/ • EclEmma Eclipse plug-in: http:// www.eclemma.org/ • git: https://git-scm.com/downloads, “brew install git” (Mac), etc. • maven: https://maven.apache.org/ download.cgi, “brew install maven” (Mac), etc. • Write a function in Java that accepts two integers and returns their sum. • Extra credit: Write JUnit unit tests first. Use EclEmma to measure code coverage. Write a maven POM file to build and test your code. Upload your code to GitHub.
  38. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Questions or comments?
  39. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Wrap up
  40. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Tonight’s class • Intro to the course • Why Agile Software Development • What is Agile? • Course logistics • Homework assignment • Wrap up
  41. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617

    466 9754 r@kasperowski.com Questions or comments?
  42. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 r@kasperowski.com Thank you! Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617 466 9754 r@kasperowski.com www.kasperowski.com gr8p.pl/corebook