Agile In Practice Benjamin Booth Spring 2010 Programmer/Architect Proprietary 5 2 Author/Blogger benjaminbooth.com Proprietary 3 Prescriptive-style History • Restrict change to improve predictions • Drive with the plan • Communicate with documents 4 Waterfall Is Expensive! Waterfall Not all Bad • Space shuttle flight control system • Requirements are well defined • Unlimited resources • Useful for < 5% of all software projects 6 Typical Requirements • The site shall have a ‘nice looking’ menu page for an existing restaurant’s seven year old website. (Nice looking is defined by the customer.) • The system shall have the ability to edit the menu online. Current menus are stored in a MS Word document. • The site shall have a ‘Suggestion’ capability. Users can use a form to submit suggestions which get stored and also emailed to the owner. 7 Agile • People (users) are the focus • Measure success with working software • Expect and embrace change • Use small, skilled, motivated teams agilemanifesto.org 8 Agile - SCRUM Style • Japanese origin • Whole team • 1995 OOPSLA, by Jeff Sutherland and Ken Schwaber • Skeleton of practices and roles 9 SCRUM Workflow Proprietary 10 SCRUM Roles • Product Owner: Manages the backlog • Scrum Master: Coach the process • Team Member: Write code 11 Practice Tip • Create User Advocates • Include User Advocates in: • Story creation • Priority setting • Interaction design sessions 12 SCRUM Artifacts • Backlog • Sprint Burn Down • Sprint Backlog • Past Backlogs 13 Practice Tip • Store Backlogs electronically • Use physical Task Boards 14 Artifacts • • • • Backlog Sprint Backlog Taskboard Sprint Burn Down Proprietary 15 Artifacts • • • • Backlog Sprint Backlog Taskboard Sprint Burn Down Proprietary 16 Artifacts • • • • Backlog Sprint Backlog Taskboard Sprint Burn Down Proprietary 17 Artifacts • • • • Backlog Sprint Backlog Taskboard Sprint Burn Down Proprietary 18 Practice Tip • Keep old Sprint Backlogs & Burndowns • Keep old tasks • Use for velocity calculations • Helps identify trends 20 Planning Poker • • • • • • • Each developer has a set of cards with estimation values A user story is presented Each developer picks the card representing the number of story points the user story should take Everyone then shows their cards Discussion happens until agreement on a number Repeat for each user story Schedule a sprint with the required number of story points based on your team’s velocity 21 As a patron, I want to... • easily navigate to the menu from the home page so that I can make a phone order (delivery) • be able to make suggestions for improvements to my overall dining experience 22 As the restaurant manager, I want to... • create, update and delete menu items so that it stays interesting and keeps people coming back • generate a PDF of the menu so that I can give it to the printer for creating ‘real’ menus • get customer feedback emailed to me so I can quickly respond to problems and also pass on compliments to the staff 23 Agile Challenges • Access to real customers • Large, distributed teams • Industry misperceptions • Command-and-control culture 24 Summary • Waterfall or nothing still predominant • Agile is highly adaptive, people centric • SCRUM is an effective Agile process skeleton • If your process isn’t working adapt it 25 Practice Tip • Introduce incrementally • Business strategy and architecture a must • Get everyone speaking the same language 26 Practice Tip • Allocate QA time explicitly • Keep PM simple but do it • Keep improving your process 27 Q&A References • • • • • • • http://en.wikipedia.org/wiki/Agile_software_development http://www.waterfall2006.com/ http://www.agileManifesto.org/ http://www.codinghorror.com/blog/archives/000588.html http://www.drdobbsonline.net/architect/207100381 http://en.wikipedia.org/wiki/Scrum_%28management%29 http://spectrum.ieee.org/sep05/1685/failt1 29 As a patron, I want to easily navigate to the menu from the home page so that I can make a phone order (delivery) As a restaurant owner, I want patrons to be able to make suggestions so that I can improve their dining experience. As the restaurant manager, I want to create, update and delete menu items so that the menu stays interesting. As the restaurant manager, I want to generate a PDF of the menu so that I can give it to the printer for creating ‘real’ menus. As the restaurant manager, I want to get customer feedback emailed to me so I can quickly respond to problems and also pass on compliments to the staff.