Manifesto for Agile Software Development What is Agile? http://agilemanifesto.org Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas
While SCRUM == Agile, Agile != SCRUM overview of implementation of Agile practices include a brief description of each "phase" from user story writing, sprint planning, stand up meetings to closing out the sprint any "fun" things that you incorporate during the sprint Deeper dive into the meetings that make up your sprint Tools and information systems that you use Challenges current challenges challenges you have overcome
Which Agile Methodology? Adaptive software development (ASD) Agile modeling Agile Unified Process (AUP) Business analyst designer method (BADM) Crystal Clear Methods Disciplined agile delivery Dynamic systems development method (DSDM) Extreme programming (XP) Feature-driven development (FDD) Lean software development Kanban (development) Scrum Scrumban https://en.wikipedia.org/wiki/Agile_software_development#Agile_methods
Which Agile Practices? Acceptance test-driven development (ATDD) Agile modeling Backlogs (Product and Sprint) Behavior-driven development (BDD) Cross-functional team Continuous integration (CI) Domain-driven design (DDD) Information radiators (scrum board, task board, visual management board, burndown chart) Iterative and incremental development (IID) Pair programming Planning poker Refactoring Scrum events (sprint planning, daily scrum, sprint review and retrospective) Test-driven development (TDD) Agile testing Timeboxing Use case User story Story-driven modeling Retrospective Velocity tracking User Story Mapping https://en.wikipedia.org/wiki/Agile_software_development#Agile_practices
Be wary* of for-fee “certification authorities” Davis General Advice Pick an Agile methodology that works for your team; not the other way ‘round Pick only those practices that your team will commit to actually practicing Be wary* of for-fee “certification authorities” *NB: Don’t avoid them! Just be wary of them!
ORIS/RA SCRUM Practice We chose SCRUM 2-week sprints with daily 15-minute stand up Our typical process flow: User Story Writing, Estimation Meeting, Sprint Planning Meeting, Demo, Release Planning, Deployment Product Owner primarily responsible for stories Developers can write “technical” stories to address debt Estimation, Sprint Planning, Demo, Release, and Deployment all involve Product Owner and DEVs We do not Deploy every sprint
ORIS/RA SCRUM Tools: User Story Template
ORIS/RA SCRUM Tools: Gherkin for Acceptance Criteria GIVEN that I am in receipt of a SIMSreports Award Notification distribution e-mail AND have access to view documents AND “Notification of” appears in the subject line WHEN I click on OSP#, this is a deep link that THEN takes user to the Statement of Award
ORIS/RA SCRUM Tools: Stories Organized by Phase in box.psu.edu
ORIS/RA SCRUM Tools: Google Sheets for Metrics Tracking
ORIS/RA SCRUM Tools: Google Sheets for Metrics Tracking
ORIS/RA SCRUM Tools: Google Sheets for Metrics Tracking
IBM XP Practice If time permits…
ORIS/RA Challenges Gathering (the right) metrics Collective code ownership Honest retrospective Small releases (but we’re getting better here!)