CMPS 116 Software Design Project
Introduction Instructor: Dr. Huahai Yang IBM Research – Almaden Former SUNY Albany Programming since 1991 Built software since 1995 Practicing Agile/Scrum since 2009 Would like to be better practitioner by teaching
Introduction Student: name Year Major Programming since... Built software since... Practicing Agile/Scrum since... Would like to...
Primary Goal Students in teams specify, design, construct, test, and deliver a working software to meet customer needs Students drive everything Project owner Scrum Master Expect teams to work like start-up Organize daily scrum outside the classroom Gain real experience
Customers Ebay Sign NDA
Team Preference What project you would like to work on Who you would like to work with Who you would not want to work with Send to Due by Wednesday 5pm
Secondary Goal Learn common design patterns in object- oriented programming
Final Goal Look beyond object-oriented programming, learn some dynamic functional programming
Administrivia
Scrum!
Agile / Scrum Scrum is an agile process that allows us to focus on delivering the highest value in the shortest time. Teams self-organize to determine the best way to deliver the highest priority features. We will rotate the roles It allows us to rapidly and repeatedly inspect actual working software. Every one and half to two weeks, anyone can see real working software and decide to release it as is or continue to enhance it for another iteration. Adapted from Mountain Goat Software LLC.
Why Agile? Coped from Wesley Mackey.
Values Process and tools Individuals and interactions over Comprehensive documentation Working software over Contract negotiation Customer collaboration over Contract negotiation Customer collaboration over Following a plan Responding to change over Adapted from Mountain Goat Software LLC.
Return Sprint goal Gift wrap CouponsCancel Product backlog Sprint backlog Scrum Shopping Site Example Daily Scrum Sprint weeks Release potentially shippable product increment Adapted from Mountain Goat Software LLC.
Sprint (iteration) Requirements DesignCodeTest Rather than doing all of one thing at a time time......Scrum teams do a little of everything all the time Adapted from Mountain Goat Software LLC.
No changes during a sprint Change Plan sprint durations around how long you can commit to keeping change out of the sprint
Scrum Framework Product owner ScrumMaster Team Roles Sprint planning Sprint review Sprint retrospective Daily scrum meeting Ceremonies Product backlog Sprint backlog Burndown charts Artifacts
Product Owner Define the features of the product Keep in contact with customers Decide on release date and content Be responsible for the profitability of the product Prioritize features according to market value Adjust features and priority every iteration, as needed Accept or reject work results
Scrum Master Represents management to the project Responsible for enacting Scrum values and practices Removes impediments Ensure that the team is fully functional and productive Enable close cooperation across all roles and functions Shield the team from external interferences
The Team Typically 5-9 people Cross-functional: Programmers, testers, user experience designers, etc. Teams are self-organizing Membership should change only between sprints
Tool Support Many free hosted options, pick one Requirements: Simple, but support all necessary scrum roles, artifacts and ceremonies Support collocated collaboration as well as remote So team, customers and I all have easy access