Scrum: Engineering High-Quality Software – Presentation built with: – Agenda



Scrum: Engineering High-Quality Software – Presentation built with: – Agenda

1 0


scrum-quality-software


On Github agiletodd / scrum-quality-software

Scrum: Engineering High-Quality Software

Presentation built with:

Reveal.js in Visual Studio Code

Agenda

  • The Scrum Framework
  • The Development Team
  • Engineering for Quality
Scrum Overview Roles Artifacts Events Product Owner Product Backlog Sprint Scrum Master Sprint Backlog Sprint Planning Development Team Increment Daily Scrum - - Sprint Review - - Sprint Retrospective
Scrum Roles
  • Product Owner

    Key Stakeholder, Value Maximizer, ROI, TCO, Responsible for 'What'

  • Scrum Master

    Manages the Scrum Process, Impediment Remover, Organizational Agile Leader

  • Development Team

    6+-3, Responsible for 'How', Cross-functional, Self-organizing

Scrum Artifacts
  • Product Backlog

    Requirements are Stored, Owner by Product Owner, Ordered on Value

  • Sprint Backlog

    Dev Teams Sprint Focus, Subset of Product Backlog, Owned by Dev Team

  • Increment

    "Done", Delivered in a Sprint, Potentially Shippable, High Quality

Scrum Events Name Duration Attendees Purpose Sprint <= 30 days - Container Event Sprint Planning <= 8 hrs Scrum Team Sprint Backlog, Sprint Goal Daily Scrum <= 15 mins Dev Team Plan for next 24 hours Sprint Review <= 4 hrs Scrum Team + Stakeholders Increment Inspection, What's next? Sprint Retrospective <= 3 hrs Scrum Team Inspect & Adapt Sprint, Kaizen

The Development Team

Problem

~ an arrangement of pieces in which the solver(s) has to achieve a specified result Software Dev:

New Customers, Operational Efficiency, Improve Communication

Expanding online presence, Building a sales tool, sell online

Cross-Functional Team

~ a team that has all the neccesary skills to solve a problem
  • Scrum only recognizes "Developer"
  • Coder, Tester, UX, Ops, DBA

Self-Organization

~ A team that is led and organized by team members
  • Presenting with a problem and organize around it
  • Not self-managing

Problem

Cross-Functional Team

Self-Organization

SCRUM VALUES

Engineering for Quality

Create "Done" Increments

  • Define what "Done" means
  • Don't accept un-done work
  • Collective Ownership

Done = Common understanding, Transparency

Collectively Own the Sprint Backlog

Application Lifecycle Management

  • Source Control
  • Build Automation
    • Continous Integration/Deployment/Delivery
  • Test Automation
    • Unit, System, Performance, UI, Business, etc.

There are others!

Branching should be simple

(CI) requires developers to integrate code into a shared repository several times a day

(CDelivery) discipline where you build software in such a way that the software can be released to production at any time.

(CDeployment) every change goes through the pipeline and automatically gets put into production, resulting in many production deployments every day.

Shorten Feedback Loops

The further you go down the road, the harder it is to remember what was behind you.

Engineering Practices

  • Test Driven Development
  • Pair Programming
  • Object Oriented Design Principles (SOLID)
  • Design Patterns
  • Clean Code
  • Refactoring
  • Emergent Architecture

SOLID (Single responsibility principle, Open/closed principle, Liskov substitution principle, Interface segregation principle, Dependency inversion principle)

Technical Debt

Be a craftsman!

Nobody will be happy with a wobbly table.

"Done" Increments

Application Lifecycle Management

Engineering Practices

Todd Miller

  • Professional Scrum Trainer (Scrum.org)
  • Delivery Director (Celerity)
  • agiletodd
  • agiletodd
  • todd_miller11
  • todd@xperientsoftware.com

http://www.xperientsoftware.com/scrum-quality-software

1.1
Scrum: Engineering High-Quality Software