How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer

Similar documents
Test-driven development

Branching and Merging

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Shift Left, Automation, and Other Smart Strategies for Getting Ahead in QA

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Inverting the Pyramid

agile engineering practices Lionel Bisschoff CEO Kaizania

DevOps Made Easy. Shireesh Thanneru, Platform Architect. Intel. Linoy Alexander, Director, DevOps

LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus

Automated Testing of Tableau Dashboards

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Review Version Control Concepts

Achieving Continuous Delivery - Micro Services. - Vikram Gadang

AppScan Deployment APPLICATION SECURITY SERVICES. Colin Bell. Applications Security Senior Practice Manager

The Need for Agile Project Management

Test Driven Development

Shift Left Testing: are you ready? Live Webinar, Sept 19

WE THOUGHT WE WERE DOING CONTINUOUS DELIVERY AND THEN. Aravind and Suzie ThoughtWorks

Continuous Testing at Scale

Agile Tester Foundation E-learning Course Outline

Introduction to Extreme Programming

Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010

Software Development Methodologies

Agile Testing Course: 15 16/11

Atlassian JIRA Introduction to JIRA Issue and Project Tracking Software Tutorial 1

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY

Lecture 7: Software Processes. Refresher: Software Always Evolves

COURSE 11 DESIGN PATTERNS

A CONFUSED TESTER IN AGILE WORLD

BEHAVIOR DRIVEN DEVELOPMENT BDD GUIDE TO AGILE PRACTICES. Director, Strategic Solutions

Seven Deadly Sins of Agile Testing

Agile Test Automation ICAgile

Turning a Marathon Runner into a Sprinter: Adopting Agile Testing Strategies and Practices at Microsoft

Test-driven development

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved.

Index. BigBadGuiTools (BBGT), 186 Business logic and data layer, 32 Business requirements

Maja Schreiner. 9th Lean, Agile & Scrum Conference 2017

Optimize tomorrow today.

Technology Background Development environment, Skeleton and Libraries

Agile, Testing, and Quality: Looking Back, Moving Forward

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Liquibase Version Control For Your Schema. Nathan Voxland April 3,

02161: Software Engineering I

Exam Questions

Kanban One-Day Workshop

Successful Test Automation without Coding. Marc J. Balcer Chief Architect Model Compilers

l e a n Lean Software Development software development Faster Better Cheaper

Best practices for OO 10 content structuring

Extreme programming XP 6

5 Object Oriented Analysis

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering

VISUAL STUDIO TEAM SYSTEM 2008 END-TO-END USING MSF/CMMI Course E2EC08: Three days; Instructor-Led Course Syllabus

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE

Kanban In a Nutshell. Bob Galen President & Principal Consultant RGCG, LLC

The Old World. Have you ever had to collaborate on a project by

Testing Microservices Techniques for Automation

Agile 2005 Experience Report

I m an egotistical bastard, and I name all my projects after myself. First Linux, now git. Linus Torvalds, creator of Linux and Git

Daniel Lynn Lukas Klose. Technical Practices Refresher

How to Build an Appium Continuous Testing Pipeline

Continuous Integration. Johannes Seitz

Adopting Agile Practices

Test Driven Development TDD

Research Faculty Summit Systems Fueling future disruptions

CS 320 Introduction to Software Engineering Spring February 06, 2017

Selling Improved Testing

Software Engineering I (02161)

Dilbert Scott Adams. CSc 233 Spring 2012

Approach to development in OTM projects

Ready for Scrum? Steve Hutchison DISA T&E

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Building in Quality: The Beauty of Behavior Driven Development (BDD) Larry Apke - Agile Coach

Testing in Agile Software Development

AppSec in a DevOps World

Implementing an SQA Automation Strategy Using the Automature Framework, a Case Study

How Can Testing Teams Play a Key Role in DevOps Adoption?

Contents. Management issues. Technical issues. Mark Fewster.

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

Orchestrating the Continuous Delivery Process

Which one? It all comes down to complexity. Scrum - Kanban Cage Match. Kanban. Scrum Ben Day. The Tale of the Tape. Scrum and Kanban Cage Match

David Bernstein Five Development Practices Essential for Scrum Teams

7 steps for digital app test automation success. October 2018

Chapter 10. Testing and Quality Assurance

JOB TITLE: Senior Database Administrator PRIMARY JOB DUTIES Application Database Development

Final Paper/Best Practice/Tutorial Advantages OF BDD Testing

The More We Get Together... The Islandora Community

Evolutionary Architecture and Design

Designing API: 20 API Paradoxes. Jaroslav Tulach NetBeans Platform Architect

Super Charge Your Continuous Integration Deployments. Nikola Gotsev April 26, 2016

3 Continuous Integration 3. Automated system finding bugs is better than people

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

Continuous Delivery and Team Foundation Server Ognjen Bajić Ana Roje Ivančić Ekobit

A Proposal to Develop a Testing Framework for Agile Software Process

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Transcription:

How technical excellence helps in LeSS adoption Anton Bevzuk Dodo Pizza Chief Agile Officer

The plan Why engineering practices? Deep dive into Pair Programming Test Automation Continuous Integration Q&A

What is Dodo Pizza? 11 countries 372 pizzerias 200 orders/min

DodoIS 7 teams 50 developers 1M+ lines of code

Scrum as well as LeSS does not work without engineering practices

Continuous attention to technical excellence and good design enhances agility agilemanifesto.org

Test Automation Coding Standards Sustainable Pace Refactoring Commitment Simple Design Courage Focus TDD Evolutionary Design Scrum Respect Openness Pair Programming Collective Code Ownership

Quality R # of bugs % of time spent on focused valued work Internal satisfaction Overtime Ability to make thoughtful decisions in a new code QF Stress Value delivered each sprint Customer satisfaction on Sprint Review Ability to improve an old code # of tests

Test Driven Development by Example by Kent Beck, 2000

The most simple engineering practices are the most powerful

Pair Programming

Just a few rules 2 roles: Driver and Observer Switch roles every 10-15 mins Rotate pairs at least every day

Lightweight Simple to understand Difficult to master

Single team open space

Pair Programming: HW Do s Open space for each team Flat wide tables Powerful pair stations 2 wide 24-30 monitors Duplicate screen Consistent settings, hotkeys, etc. Dont s Open space for multiple teams Cubicles Corner desk Narrow table Crappy hardware Single crappy monitor Personalize

Pair Programming: People Do s Dont s Demonstrate Push DevSchool Mentor Let them choose

Pair Programming: Pairs Do s Dont s Experienced + Newbie Newbie + Newbie Experienced + Experienced

Pair Programming: Roles Do s Dont s Developer + Developer Developer + QA Developer + Analyst Limit yourself Developer + Lawyer Developer +

Pair Programming is not just about programming Code structure Coding standards New technologies Business domain Decomposition Focus Internal processes Other practices (TDD etc.) Deploy DoD Tips & tricks Help each other Pair Programming builds the Team

Pair Programming in LeSS Pair with team members Pair with the Traveller Pair with a team member Pair with QA Pair with manual tester Pair with deploy engineer

Test Automation

Unit Test example 1

Unit Test example 2

Unit BDD Test example

API Test example

UI Test example

Test Automation Do s Dont s Automate critical path Automate everything Invest in containers infrastructure Unit tests API tests Component tests DSL Unit tests readable by biz E2E tests Mocks of mocks of mocks

Test Automation Do s Dont s Developers write tests Separate team writes tests QA team as a quick fix Permanent QA team Keep high test quality Delete useless tests

Test Automation is a prerequisite for

Continuous Integration

Configuration Management 2017

Teams branches Not finished work Oops, Team B broke something Team A did Teams A and B can t utilise the refactoring Team C have to wait until A and B resolve their conflicts

Unfinished work Let s create a Team Ready branch with finished features The sprint is almost over, but Feature 3 can t be completed

Complexity Now we have to merge even more branches We all want to finish our work before sprint ends Which team changes have blown up the branch?

Sequential team releases Let s make some order But now we have to wait for too long before our next release :(

Joined teams releases Let s release together! When increments are smaller, regress is faster If something breaks, the bug is easy to find and fix

16 April 2018

Focus on ONE goal

All teams in a single room synching twice daily

Get feedback from PROD 20 deploys per day

Ongoing releases

Ongoing releases

Merge conflicts are gone. I can t remember when it was the last time I resolved complex merge conflict to DEV in the last 6 months. Vitaly Pomozov, DodoIS developer

Releases stat

Continuous Integration in LeSS Ability to work with other teams CI CD

Pair Programming Feature Team Forming Test Automation Collaboration Continuous Integration

Thanks! Anton Bevzuk a.bevzuk@dodopizza.com

Easy in greenfield, hard in legacy code Impediments: Viscosity of the code makes writing unit testing harder Ok, let s write some integration tests -> lack of API makes writing integration tests impossible Ok, let s write some UI tests -> lots of slow, fragile and untrusted tests -> tests are useless Solution Split monolith Microservices is not the only option Bounded domain context Start with critical path Refactoring of legacy code book Find the seeds and inject dependencies Extract API where possible Prefer API tests to UI E2E tests

Unit Test example 2

Test Automation in LeSS Automate regress

How to start

Hire

Educate

Experiment

Evolve