Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Harvard CSCI E-71 Agile Software Development Se...

Harvard CSCI E-71 Agile Software Development Session 1

Why Agile software development?
What is Agile software development?

Richard Kasperowski

August 31, 2015
Tweet

More Decks by Richard Kasperowski

Other Decks in Education

Transcript

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

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

    466 9754 [email protected] 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 Hangout: kasperowski +1 617

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

    466 9754 [email protected] Jeff Johnson Teaching Assistant Constant contact Principal Software Developer
  5. 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.
  6. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  7. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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.
  8. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  9. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] Course syllabus: our learning backlog • http://gr8p.pl/agile-syllabus
  10. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  11. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

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

    466 9754 [email protected] 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/
  13. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

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

    466 9754 [email protected] 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
  15. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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/
  16. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  17. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  18. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] Manifesto for Agile Software Development • http://agilemanifesto.org/
  19. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  20. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  21. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] Communication • Staff • Richard Kasperowski: skype:rkasperowski, +1 617 466 9754, [email protected] • 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)
  22. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  23. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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.
  24. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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
  25. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] 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.
  26. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

    466 9754 [email protected] Tonight’s class • Intro to the course • Why Agile Software Development • What is Agile? • Course logistics • Homework assignment • Wrap up
  27. cba2015 Richard Kasperowski @rkasper skype:rkasperowski Google Hangout: kasperowski +1 617

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