Upload
stephen-ritchie
View
140
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Scrum and Agile Engineering Practices - What every ScrumMaster needs to know Some Agile teams fail to figure out or implement technical practices that are necessary for long term success. Practices like automated builds, automated tests, automated deployments, continuous integration, and continuous delivery are now considered essential for the success of any software development project. Join us for a tour of software engineering best practices. We'll discuss what these practices are and their impact on scope, schedule, cost, resources and quality. We'll also share some ideas on how to start adopting these practices and how to incrementally introduce them and gradually improve your team's software development process.
Citation preview
Scrum and Agile Engineering Practices
What every ScrumMaster needs to know about Agile
engineering practices
Washington DC Scrum User Group
September 23, 2013
Exercise 1: Scrum Diagram
Who can draw Scrum? ◊ Let’s form teams ◊ Draw a diagram representing Scrum
Scrum Framework
* Diagram from Scrum Primer From the Scrum Primer
Scrum Elements
"Sorry, if you don't use Agile engineering practices, if you don't have high-bandwidth communication, and if you don't include a strong customer voice, you're not going to succeed. Try something else instead.”
Scrum Requires Agility
James Shore, co-author of The Art of Agile Development (O’Reilly, 2007).
Tonight’s First Big Question
Does Scrum say anything about Agile engineering practices?
Scrum Alliance: CSD
"Certified Scrum Developers have demonstrated through a combination of formal training and a technical skills assessment that they have a working understanding of Scrum principles and have learned specialized Agile engineering skills."
http://www.scrumalliance.org/certifications/practitioners/csd-certification
Exercise 2: Scrum Diagram
Who can draw Scrum? ◊ Let’s form teams ◊ Draw a diagram representing Scrum What do you know about Agile Engineering Practices? ◊ Ideally, where does the team perform them? ◊ Where does the team benefit from them? ◊ Where does the team improve them? ◊ Let’s annotate the Scrum diagram
Agile Engineering Practices
◊ SOLID design principles ◊ Test driven development ◊ Testing code in isolation ◊ Integration testing ◊ Automated testing ◊ Code smells and
refactoring
◊ Code reviews and pair programming ◊ Working effectively with
legacy code ◊ Automated builds ◊ Continuous integration ◊ Automated
deployments ◊ Continuous delivery
Definition of Done
Definition of Done for the PBI
Security Testing
Integration Tested
Stress Testing
Acceptance Criteria
Definition of Done for the Sprint
Definition of Done for the Release
Definition of Done
Definition of Done for the PBI
Definition of Done for the Sprint
Definition of Done for the Release
Security Testing
Integration Tested
Stress Testing
Acceptance Criteria
Agile Manifesto
Individuals and interactions over Process and tools
Working software over Comprehensive documentation
Customer collaboration over Contract negotiation
Responding to change over Following a plan
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
http://agilemanifesto.org/
3 Pillars of Scrum
Transparency Inspection Adaptation
Ex 3: Vision versus Reality
◊ What challenges might new/better engineering practices solve? (vision) ◊ What challenges are you experiencing? (reality)
For management …
◊ Visibility and reporting ◊ Control and correction ◊ Efficiency and speed ◊ Planning and predictability ◊ Customer satisfaction
Impact on …
Impact on …
Impact on …
Impact on …
Impact on …
Tips for introducing them …
◊ Test count bar graph ◊ Improve the definition of done ◊ Test-driven bug fixing ◊ One new/different Agile eng practice per Sprint ◊ Pair program one user story per Sprint ◊ Test coverage graph ◊ Automate tasks that are repeated or error prone ◊ Static code analysis and monitoring (graph/chart) ◊ Backward-pass delivery and automation