feedback loops the power of - scrumalliance.org€¦ · continuous integration (ci) is a...

32
THE POWER OF FEEDBACK LOOPS

Upload: others

Post on 12-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

THE POWER OF FEEDBACK LOOPS

Page 2: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Hello!I am Luca Mezzalira

Solutions Architect at Massive Interactive

Co-Organiser of Agile 101 and Agile Leadership Communities in London

Page 3: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Agenda

▷ What is the feedback loop ?

▷ Empirical vs Scientific approach

▷ How can I integrate the feedback loop in my software development flow ?

▷ Collect data to analyse

Page 4: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

1.The FEEDBACK LOOP

Page 5: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

“The section of a control system that

allows for feedback and self-correction and that adjusts its

operation according to differences between the actual and the desired

or optimal output

http://www.thefreedictionary.com/feedback+loop

Page 6: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

“Feedback loops provide generic mechanisms for controlling the

running, maintenance, and evolution of software and

computing systems.

https://en.wikipedia.org/wiki/Feedback

Page 7: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Feedback Loop in Scrum

❖ Sprint

➢ Daily standup

➢ Sprint Retrospective

➢ Sprint Review

Page 8: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

PDCA Cycle: the loop behind the continuous improvement

❖ Plan

❖ Do

❖ Check

❖ Act

Page 9: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Feedback Loops Characteristics in Grows Method

❖ real time

❖ direct

❖ short

❖ small

❖ concrete

❖ mesurable

http://growsmethod.com/

Page 10: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Why is feedback loop so important in software development ?

Page 11: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

2.EMPIRICAL vs SCIENTIFIC

Page 12: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

H2OH2OH2O

Page 13: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several
Page 14: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Keywords

EXPERIMENTS

TRIALS

FEEDBACK

METRICS

SMALL & CONSTANT

FOCUS

Page 15: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Let’s createa chain of loops!

❖ Automation Testing*

❖ Continuous Integration*

❖ Pair Programming*

❖ Code Reviews*

❖ Static Analysis*

❖ QA testing

❖ Emergent Design*

❖ Standup

❖ Sprint Review

❖ Sprint Retrospective

secs

mins

hours

days

weeks

Page 16: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

MA

IN G

OA

LS

● CODE QUALITY

● CODE STANDARDS

● CATCH BUGS EARLY

● BETTER PERFORMANCES

● MAINTAINABILITY

● MEET THE REQUIREMENTS

● CREATE VALUE

● SHARE KNOWLEDGE WITHIN THE TEAM

● CONTINUOUS IMPROVEMENT

Page 17: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Remember remember...

Page 18: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

3.INTEGRATE feedback

loops inside your FLOW

Page 19: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.

Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.

Automation Testing

Feedback frequency: SECONDS

Goals: CATCH BUGS EARLIER, CODE QUALITY & MAINTAINABILITY

https://en.wikipedia.org/wiki/Software_testing

Page 20: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

By integrating regularly, you can detect errors quickly, and locate them more easily.

Continuous Integration

Feedback frequency: SECONDS

https://www.thoughtworks.com/continuous-integration

Goals: RELIABLE CODE, CREATE VALUE, CODE QUALITY & STANDARDS, CATCH BUGS EARLIER

Page 21: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Pair programming (sometimes referred to as peer programming) is an agile software development technique in which two programmers work as a pair together on one workstation.

One, the driver, writes code while the other, the observer, pointer or navigator, reviews each line of code as it is typed in.

The two programmers switch roles frequently.

Pair Programming

Feedback frequency: SECONDS

https://en.wikipedia.org/wiki/Pair_programming

Goals: SHARED KNOWLEDGE & BETTER CODE QUALITY

Page 22: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Code review is systematic examination (often known as peer review) of computer source code.

It is intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills

Code Reviews

Feedback frequency: MINUTES

https://en.wikipedia.org/wiki/Code_review

Goals: BETTER CODE QUALITY, PERFORMANCE IMPROVEMENTS & SHARED KNOWLEDGE

Page 23: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Static program analysis is the analysis of computer software that is performed without actually executing programs (analysis performed on executing programs is known as dynamic analysis).

In most cases the analysis is performed on some version of the source code, and in the other cases, some form of the object code.

Static Analysis

Feedback frequency: MINUTES

https://en.wikipedia.org/wiki/Code_review

Goals: BETTER CODE QUALITY, CODE STYLE COMPLIANT & PERFORMANCE IMPROVEMENT

Page 24: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Emergent design is a consistent topic in agile software development, as a result of the methodology's focus on delivering small pieces of working code with business value.

The end result is a simpler design with a smaller code base, which is more easily understood and maintained and naturally has less room for defects

Emergent Design

Feedback frequency: HOURS

https://en.wikipedia.org/wiki/Emergent_Design

Goals: BETTER CODE QUALITY, HANDLE NEW REQUIREMENTS & MAINTAINABILITY

Page 25: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

4.Collect data to analyse

Page 26: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several
Page 27: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several
Page 28: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several
Page 29: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several
Page 30: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Wrap up

Page 31: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Instructions for use

OFTENMore feedback loops will allow your project to hit your users/customers goals

SHORTKeep the iterations as short as possible in order to close more feedback loops as possible

MEASURABLECollect information and metrics in order to improve your current situation

CONTINUOUS IMPROVEMENTAdd an improvement per time, don’t add too many techniques too often!

Page 32: FEEDBACK LOOPS THE POWER OF - scrumalliance.org€¦ · Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several

Thanks!Any questions?

You can find me at:

@lucamezzalira

[email protected]

www.lucamezzalira.com