466 9754 email@example.com CSCI E-71 Agile Software Development Harvard University Extension School Richard Kasperowski @rkasper skype:rkasperowski Google Hangouts: kasperowski +1 617 466 9754 firstname.lastname@example.org www.kasperowski.com
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.
466 9754 email@example.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
466 9754 firstname.lastname@example.org 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
466 9754 email@example.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
466 9754 firstname.lastname@example.org 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 deﬁned 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/
466 9754 email@example.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, Jeﬀ (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
466 9754 firstname.lastname@example.org 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://ﬂowchainsensei.wordpress.com/2012/09/07/ conways-law-revisited/
466 9754 email@example.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
466 9754 firstname.lastname@example.org 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 deﬁned roles • hashed out requirements • quick feedback • small team • anonymous team feedback • knowledge center • Agile / Scrum • ﬂexibility • short iterations • users involved • ﬂexibility • positive people, willing to help each other • teamwork • trust • honest communication
466 9754 email@example.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
466 9754 firstname.lastname@example.org 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
466 9754 email@example.com Communication • Staff • Richard Kasperowski: skype:rkasperowski, +1 617 466 9754, firstname.lastname@example.org • Jeff Johnson • Ofﬁce 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)
466 9754 email@example.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
466 9754 firstname.lastname@example.org 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: Speciﬁc 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.
466 9754 email@example.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
466 9754 firstname.lastname@example.org 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 ﬁrst. Use EclEmma to measure code coverage. Write a maven POM ﬁle to build and test your code. Upload your code to GitHub.