SlideShare a Scribd company logo
10/11/2016
1
Deliver Fast
“with confidence”
Joseph W. Yoder
The Refactory
Teams That Innovate
Copyright 2016 Joseph Yoder & The Refactory, Inc.
Twitter: @metayoda
joe@refactory.com
http://www.refactory.com
http://www.teamsthatinnovate.com
11th,
10/11/2016
2
architecture quality can be invisible
…especially when the spotlight is on
FEATURES
10/11/2016
3
The Problem
EBiz
New Products
Features
Mobile
Version
© Can Stock Photo Inc. / alex5248
The Solution
© Can Stock Photo Inc. / Freezingpicture
10/11/2016
4
What’s below
the waterline?
all those “ilities”
we can’t ignore
…
Reliability
Scalability
Stability
Maintainability
Performance
© Can Stock Photo Inc. / SergeyNivens
8
10/11/2016
5
Code Rot
Is it better to
clean little by
little?
Or to let dirt
and mess
accumulate?
10/11/2016
6
Neglect Is Contagious
Disorder increases and software rots over time.
Don’t tolerate a broken window.
http://www.pragmaticprogrammer.com/ppbook/extracts/no_broken_windows.html
Some dirt becomes
very hard to clean
if you do not clean
it right away!
Technical Debt?
10/11/2016
7
Values Drive Practices
10/11/2016
8
Agile/Lean Design Values
 Core values:
 Design Simplicity
 Quick Feedback
 Frequent Releases
 Continuous Improvement
 Teamwork/Trust
 Satisfying stakeholder needs
 Building Quality Software
 Keep Learning
 Lots of Testing!!!
Agile Practices
TDD
Scrum
10/11/2016
9
Sustaining Your Architecture
Some Agile Myths
 Simple solutions are always best
 We can easily adapt to changing
requirements (new requirements)
 Scrum/TDD will ensure good
Design/Architecture
 Good architecture simply emerges
from “good” development practice
 You always go fast when doing agile
 Make significant architecture
changes at the last moment
“www.agilemyths.com”
Continuous Improvement
“Retrospectives are Key!!!”
Small Steps we can take - next sprint!!!
10/11/2016
10
Refactoring
“If you value clean code…”
Clean Code Doesn't Just Happen
•You have to craft it
•You have to maintain it
•You have to make a professional commitment
“Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.”
– Martin Fowler
10/11/2016
11
Professional Responsibility
There’s no time to wash hands, get to the next patient!
Professionalism
Make it your responsibility to create code that:
Delivers business value
Is clean
Is tested
Is simple
Follows good design principles
When working with existing code:
If you break it, you fix it
You never make it worse than it was
You always make it better
10/11/2016
12
Code Bad Smells
Have you ever looked at
a piece of code that
doesn't smell very nice?
A code smell is any
symptom in the
source code that can
indicate a problem!
Ten Most Putrid List
1) Sloppy Layout,
2) Dead Code,
3) Lame Names,
4) Commented Code,
5) Duplicated Code,
6) Feature Envy,
7) Inappropriate Intimacy,
8) Long Methods & Large Class,
9) Primitive Obsession & Long Parameter List,
10) Switch Statement & Conditional Complexity …
0) Magic Numbers,
10/11/2016
13
Sustaining Your Architecture
Safe Refactorings
Rename is always safe!!!
New Abstract Class moving
common features up
Extract Method (always safe)
Extract Interface / Extract Constant
Pull Up / Push Down
Create common component
for shared internal methods
 Fairly safe but can be harder to share
Two Refactoring Types*
Floss Refactorings—frequent, small
changes, intermingled with other
programming
(daily health)
Root canal refactorings—infrequent,
protracted refactoring, during which
programmers do nothing
else (major repair)
* Emerson Murphy-Hill and Andrew Black in
“Refactoring Tools: Fitness for Purpose”
http://web.cecs.pdx.edu/~black/publications/IEEESoftwareRefact.pdf
10/11/2016
14
But We Don’t Have Time!
Kaizen
The Sino-Japanese word "kaizen" simply means
"change for better", with no inherent meaning of
either "continuous" or "philosophy" in Japanese
dictionaries or in everyday use. The word refers to
any improvement, one-time or continuous, large or
small, in the same sense as the English word
"improvement". (Wikipedia)
Most view it as Continuous Improvement…
10/11/2016
15
Slack Time
Key Principle:
Need Slack time to improve
Ways to get slack time…
 Monitor and Make Visible
 Reduce Waste (Muda)
 Inject time into process
(retros, daily cleanup, …)
Try little experiments…
Kaizen
Spotify: Innovation
10/11/2016
16
Regular Practices
Allocate time for dealing with tech debt
Team building and education sessions
Evaluate and Reflect…small changes
Delivery Size is Key
Large Delivery Size can cause many issues
Issues:
 More potential defects
 Longer time to get feedback
 Slower adjust time
 Harder to experiment
10/11/2016
17
HOW SYSTEM QUALITY WORK
CAN FIT INTO YOUR RHYTHMS
“QUALITY IS NOT AN ACT, IT IS A HABIT.”
—ARISTOTLE
Build architectural quality into your project rhythms
10/11/2016
18
Qualify the Backlog
You can add backlog items for technical debt and
quality-related architecture work… yes, you can
Make Architecture Work
Visible and Explicit
http://philippe.kruchten.com/2013/12/11/the-missing-value-of-software-architecture/
Visible Feature
Invisible Architectural
Feature
Visible Defect Technical Debt
Color your backlog—Phillipe Kruchten
Positive Value
Negative Value
Visible Invisible
10/11/2016
19
Plan a Sprint
Product
Envisioning
/
Roadmap
Deploy to
Stakeholders
Functional
Acceptance
Testing
Develop
and Manage
the Backlog
Run a Sprint
Daily Review
Incorporate Feedback
How Quality Fits
Into An Agile Process
Identify:
Architecture Risks
Key Quality Scenarios
Landing Zone Criteria
Can
Include
Quality
Items
Quality
Testing
Include
relevant
quality
tasks
Test Driven Development
10/11/2016
20
Define Architecture Triggers
• Conditions that
cause architecture
investigation/ tasks
– Quality target
no longer met
– Code quality
metrics violations
– …
• Have broad
system impact
ONGOING QUALITY ACTIVITIES
10/11/2016
21
Monitor System Qualities—
Build An Operational Dashboard
Sustaining Your Architecture
Continuous Inspection
Asian PLoP 2014 Paper
CODE SMELL DETECTION
METRICS (TEST COVERAGE,
CYCLOMATIC COMPLEXITY,
TECHNICAL DEBT, SIZES, …)
APPLICATION SECURITY CHECKS
ARCHITECTURAL CONFORMANCE
AUTOMATE WHERE YOU CAN!!!
10/11/2016
22
Periodically Re-Evaluate
Architecture Risks
Iteration
Planning
Implementation
Delivery and
Feedback
Continuous Improvement
Architecture Quality
PAUSE POINTS HELP
10/11/2016
23
Quality Focused
Checklists
• Release Checklists*
– Agreed upon checklist
for quality and major
architecture concerns
• Use at pause points
– sprint planning,
release planning,
…
*Thanks, James Thorpe for
sharing your company’s checklist
Two Kinds of
Checklists
1.Read-review
2.Do-confirm
10/11/2016
24
*Thanks, Alex Balboaca for sharing
Checklists at MozaicWorks*
Where do you start?
• Small quick releases
• Monitor qualities
• Pick some low hanging fruit
– Make goals visible
– Colorize your backlog
– Create quality-related
checklists
• Spread attention to code
quality throughout teams
• Depends on where you are
and where the pain is…
© Can Stock Photo Inc. / iqoncept
10/11/2016
25
How Much Architecture
Risk do you Have?
• New architecture, new product,
new market, new technologies
• Transforming an existing product
• Evolving a product
• Feature extensions on a
“stable” architecture
Higher
Lower
“the more risk, the more attention you need to pay to architecture”
How Big is your Project?
Small v. Large Projects
Small Projects
• 6-8 people
• Non-life critical
• Known domain
Large Projects
• Multiple teams
• Known domain
but tackling a big
problem
• “Naturally”
emerging architecture can
reflect organization structure
• Significant risks, challenges,
unknowns, lots of coordination
architecture needs explicit attention
architecture typically evolves
OK without much attention
10/11/2016
26
VALUES DRIVE PRACTICE
CALL TO ACTION
Daily Practices
Sustainable Development
(CC) by muffinn on Flickr
Visibility
Lazy Manifesto
Keeping slack over fully utilizing all the time
Small high quality software over
large complex software
Doing only what is necessary over
exhaustively discovering all tasks
Doing less to deliver the same over
doing more to deliver less
“We are uncovering lazier ways of developing valuable
products by doing it and helping others to 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…
10/11/2016
27
Principles of Lazy Manifesto
Doing nothing is always an option.
We seek to minimize the number of backlog items while keeping the value of the backlog.
We believe to keep increasing velocity is not always good.
We try to eliminate tasks that generate no value.
We try to combine tasks to reduce latency and rework.
We try to rearrange tasks to find problems early.
We try to simplify all tasks as much as possible
We are not afraid of eliminating our own tasks / processes
by continuously acquiring new skills / capabilities.
We expand capabilities over increasing capacities.
We only work hard to make our work easier and safer.
We always look to get help while we provide help to others with minimum effort.
We never try to add an unnecessary principle simply to match with the other manifesto :)
“We follow these principles when they don’t add work:”
It is a Journey
Commitment
Follow-through
Deliberate practices
Paying attention
Small Fast Delivery
Continuous Learning
© Can Stock Photo Inc. / jefras
10/11/2016
28
Agile Mindset
Being AgileBeing vs Doing
Core Ideas / Takeaways
• Values drive practice
• Continues Improvement
• Code Quality and Delivery Size
• Deal with Technical Debt
• Many Practices can help
• Call To Action (small steps you can take)
10/11/2016
29
Additional Resources
• The Hillside Group (patterns community): Hillside.net
• Being Agile at System Qualities workshop:
– www.adaptiveobjectmodel.com/2015/04/
qa-to-aq-shifting-towards-agile-quality
• Agile Myths: agilemyths.com
• The Refactory (www.refactory.com)
• Teams That Innovate (www.teamsthatinnovate.com)
• Pragmatic TDD :
refactory.com/training/test-driven-development
http://adaptiveobjectmodel.com/2012/01/
what-is-pragmatic-tdd
Kaizen
Joe’s cool photo goes here!!!
joe@refactory.com
Twitter: @metayoda
www.joeyoder.com
www.refactory.com
Dziękuję!!!

More Related Content

What's hot

Release Engineering Downstream of an OpenStack Project
Release Engineering Downstream of an OpenStack ProjectRelease Engineering Downstream of an OpenStack Project
Release Engineering Downstream of an OpenStack Project
Rainya Mosher
 
JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps world
Bert Jan Schrijver
 
Lean Software Development: Values and Principles
Lean Software Development: Values and PrinciplesLean Software Development: Values and Principles
Lean Software Development: Values and Principles
Balaji Sathram
 
Anti patterns
Anti patternsAnti patterns
Anti patterns
Karthikeyan VK
 
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
Ho Chi Minh City Software Testing Club
 
Using Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design ProcessUsing Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design Process
Lisa Whalen
 
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHubSOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
DevOpsDays Tel Aviv
 
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
XebiaLabs
 
Soaring in the Clouds - Don't be dragged down by ITIL bloat!
Soaring in the Clouds - Don't be dragged down by ITIL bloat! Soaring in the Clouds - Don't be dragged down by ITIL bloat!
Soaring in the Clouds - Don't be dragged down by ITIL bloat!
Navvia
 
DevOps beyond the Tools
DevOps beyond the ToolsDevOps beyond the Tools
DevOps beyond the Tools
Johann-Peter Hartmann
 
My Dad Won't Buy Me DevOps
My Dad Won't Buy Me DevOpsMy Dad Won't Buy Me DevOps
My Dad Won't Buy Me DevOps
XebiaLabs
 
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Bert Jan Schrijver
 
DevOps Picc12 Management Talk
DevOps Picc12 Management TalkDevOps Picc12 Management Talk
DevOps Picc12 Management Talk
Michael Rembetsy
 
No Projects - Beyond Projects (Refreshed version)
No Projects - Beyond Projects (Refreshed version)No Projects - Beyond Projects (Refreshed version)
No Projects - Beyond Projects (Refreshed version)
allan kelly
 
JavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsJavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systems
Bert Jan Schrijver
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
Bill Scott
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
Bert Jan Schrijver
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
Ernest Mueller
 
Jan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wantsJan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wants
Agile Lietuva
 
Chapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CIChapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CI
Jherson Martelo Medina
 

What's hot (20)

Release Engineering Downstream of an OpenStack Project
Release Engineering Downstream of an OpenStack ProjectRelease Engineering Downstream of an OpenStack Project
Release Engineering Downstream of an OpenStack Project
 
JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps world
 
Lean Software Development: Values and Principles
Lean Software Development: Values and PrinciplesLean Software Development: Values and Principles
Lean Software Development: Values and Principles
 
Anti patterns
Anti patternsAnti patterns
Anti patterns
 
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
 
Using Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design ProcessUsing Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design Process
 
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHubSOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
 
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
 
Soaring in the Clouds - Don't be dragged down by ITIL bloat!
Soaring in the Clouds - Don't be dragged down by ITIL bloat! Soaring in the Clouds - Don't be dragged down by ITIL bloat!
Soaring in the Clouds - Don't be dragged down by ITIL bloat!
 
DevOps beyond the Tools
DevOps beyond the ToolsDevOps beyond the Tools
DevOps beyond the Tools
 
My Dad Won't Buy Me DevOps
My Dad Won't Buy Me DevOpsMy Dad Won't Buy Me DevOps
My Dad Won't Buy Me DevOps
 
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
 
DevOps Picc12 Management Talk
DevOps Picc12 Management TalkDevOps Picc12 Management Talk
DevOps Picc12 Management Talk
 
No Projects - Beyond Projects (Refreshed version)
No Projects - Beyond Projects (Refreshed version)No Projects - Beyond Projects (Refreshed version)
No Projects - Beyond Projects (Refreshed version)
 
JavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsJavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systems
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
 
Jan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wantsJan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wants
 
Chapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CIChapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CI
 

Similar to JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"

Deliver Fast with Confidence
Deliver Fast with ConfidenceDeliver Fast with Confidence
Deliver Fast with Confidence
DevCamp Campinas
 
Dextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoring
Dextra
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
Lester Martin
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
Nitin Bhide
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsSteve Pember
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)
Mike Subelsky
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
lokori
 
NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...
NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...
NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...
NUS-ISS
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
OpenSource Connections
 
How to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveHow to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspective
Colin Domoney
 
Kanban at radical_fusion
Kanban at radical_fusionKanban at radical_fusion
Kanban at radical_fusion
Sam McAfee
 
Agile basics
Agile basicsAgile basics
Agile basics
allan kelly
 
GMO'less Software Development Practices
GMO'less Software Development PracticesGMO'less Software Development Practices
GMO'less Software Development Practices
Lemi Orhan Ergin
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
David O'Dowd
 
Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015
Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015
Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015
Mozaic Works
 
Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018
Shawn Button
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
Alexandru Bolboaca
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
Nitin Bhide
 
What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?
Bill Holtshouser
 

Similar to JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence" (20)

Deliver Fast with Confidence
Deliver Fast with ConfidenceDeliver Fast with Confidence
Deliver Fast with Confidence
 
Dextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoring
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
 
NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...
NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...
NUS-ISS Learning Day 2016 - Improve IT Project Management and other IT Proces...
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
How to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveHow to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspective
 
Kanban at radical_fusion
Kanban at radical_fusionKanban at radical_fusion
Kanban at radical_fusion
 
Agile basics
Agile basicsAgile basics
Agile basics
 
GMO'less Software Development Practices
GMO'less Software Development PracticesGMO'less Software Development Practices
GMO'less Software Development Practices
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015
Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015
Alex Bolboacă: Usable Software Design at I T.A.K.E. Unconference 2015
 
Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?
 

Recently uploaded

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

JDD 2016 - Joseph W. Yoder - Deliver Fast "With Confidence"

  • 1. 10/11/2016 1 Deliver Fast “with confidence” Joseph W. Yoder The Refactory Teams That Innovate Copyright 2016 Joseph Yoder & The Refactory, Inc. Twitter: @metayoda joe@refactory.com http://www.refactory.com http://www.teamsthatinnovate.com 11th,
  • 2. 10/11/2016 2 architecture quality can be invisible …especially when the spotlight is on FEATURES
  • 3. 10/11/2016 3 The Problem EBiz New Products Features Mobile Version © Can Stock Photo Inc. / alex5248 The Solution © Can Stock Photo Inc. / Freezingpicture
  • 4. 10/11/2016 4 What’s below the waterline? all those “ilities” we can’t ignore … Reliability Scalability Stability Maintainability Performance © Can Stock Photo Inc. / SergeyNivens 8
  • 5. 10/11/2016 5 Code Rot Is it better to clean little by little? Or to let dirt and mess accumulate?
  • 6. 10/11/2016 6 Neglect Is Contagious Disorder increases and software rots over time. Don’t tolerate a broken window. http://www.pragmaticprogrammer.com/ppbook/extracts/no_broken_windows.html Some dirt becomes very hard to clean if you do not clean it right away! Technical Debt?
  • 8. 10/11/2016 8 Agile/Lean Design Values  Core values:  Design Simplicity  Quick Feedback  Frequent Releases  Continuous Improvement  Teamwork/Trust  Satisfying stakeholder needs  Building Quality Software  Keep Learning  Lots of Testing!!! Agile Practices TDD Scrum
  • 9. 10/11/2016 9 Sustaining Your Architecture Some Agile Myths  Simple solutions are always best  We can easily adapt to changing requirements (new requirements)  Scrum/TDD will ensure good Design/Architecture  Good architecture simply emerges from “good” development practice  You always go fast when doing agile  Make significant architecture changes at the last moment “www.agilemyths.com” Continuous Improvement “Retrospectives are Key!!!” Small Steps we can take - next sprint!!!
  • 10. 10/11/2016 10 Refactoring “If you value clean code…” Clean Code Doesn't Just Happen •You have to craft it •You have to maintain it •You have to make a professional commitment “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler
  • 11. 10/11/2016 11 Professional Responsibility There’s no time to wash hands, get to the next patient! Professionalism Make it your responsibility to create code that: Delivers business value Is clean Is tested Is simple Follows good design principles When working with existing code: If you break it, you fix it You never make it worse than it was You always make it better
  • 12. 10/11/2016 12 Code Bad Smells Have you ever looked at a piece of code that doesn't smell very nice? A code smell is any symptom in the source code that can indicate a problem! Ten Most Putrid List 1) Sloppy Layout, 2) Dead Code, 3) Lame Names, 4) Commented Code, 5) Duplicated Code, 6) Feature Envy, 7) Inappropriate Intimacy, 8) Long Methods & Large Class, 9) Primitive Obsession & Long Parameter List, 10) Switch Statement & Conditional Complexity … 0) Magic Numbers,
  • 13. 10/11/2016 13 Sustaining Your Architecture Safe Refactorings Rename is always safe!!! New Abstract Class moving common features up Extract Method (always safe) Extract Interface / Extract Constant Pull Up / Push Down Create common component for shared internal methods  Fairly safe but can be harder to share Two Refactoring Types* Floss Refactorings—frequent, small changes, intermingled with other programming (daily health) Root canal refactorings—infrequent, protracted refactoring, during which programmers do nothing else (major repair) * Emerson Murphy-Hill and Andrew Black in “Refactoring Tools: Fitness for Purpose” http://web.cecs.pdx.edu/~black/publications/IEEESoftwareRefact.pdf
  • 14. 10/11/2016 14 But We Don’t Have Time! Kaizen The Sino-Japanese word "kaizen" simply means "change for better", with no inherent meaning of either "continuous" or "philosophy" in Japanese dictionaries or in everyday use. The word refers to any improvement, one-time or continuous, large or small, in the same sense as the English word "improvement". (Wikipedia) Most view it as Continuous Improvement…
  • 15. 10/11/2016 15 Slack Time Key Principle: Need Slack time to improve Ways to get slack time…  Monitor and Make Visible  Reduce Waste (Muda)  Inject time into process (retros, daily cleanup, …) Try little experiments… Kaizen Spotify: Innovation
  • 16. 10/11/2016 16 Regular Practices Allocate time for dealing with tech debt Team building and education sessions Evaluate and Reflect…small changes Delivery Size is Key Large Delivery Size can cause many issues Issues:  More potential defects  Longer time to get feedback  Slower adjust time  Harder to experiment
  • 17. 10/11/2016 17 HOW SYSTEM QUALITY WORK CAN FIT INTO YOUR RHYTHMS “QUALITY IS NOT AN ACT, IT IS A HABIT.” —ARISTOTLE Build architectural quality into your project rhythms
  • 18. 10/11/2016 18 Qualify the Backlog You can add backlog items for technical debt and quality-related architecture work… yes, you can Make Architecture Work Visible and Explicit http://philippe.kruchten.com/2013/12/11/the-missing-value-of-software-architecture/ Visible Feature Invisible Architectural Feature Visible Defect Technical Debt Color your backlog—Phillipe Kruchten Positive Value Negative Value Visible Invisible
  • 19. 10/11/2016 19 Plan a Sprint Product Envisioning / Roadmap Deploy to Stakeholders Functional Acceptance Testing Develop and Manage the Backlog Run a Sprint Daily Review Incorporate Feedback How Quality Fits Into An Agile Process Identify: Architecture Risks Key Quality Scenarios Landing Zone Criteria Can Include Quality Items Quality Testing Include relevant quality tasks Test Driven Development
  • 20. 10/11/2016 20 Define Architecture Triggers • Conditions that cause architecture investigation/ tasks – Quality target no longer met – Code quality metrics violations – … • Have broad system impact ONGOING QUALITY ACTIVITIES
  • 21. 10/11/2016 21 Monitor System Qualities— Build An Operational Dashboard Sustaining Your Architecture Continuous Inspection Asian PLoP 2014 Paper CODE SMELL DETECTION METRICS (TEST COVERAGE, CYCLOMATIC COMPLEXITY, TECHNICAL DEBT, SIZES, …) APPLICATION SECURITY CHECKS ARCHITECTURAL CONFORMANCE AUTOMATE WHERE YOU CAN!!!
  • 22. 10/11/2016 22 Periodically Re-Evaluate Architecture Risks Iteration Planning Implementation Delivery and Feedback Continuous Improvement Architecture Quality PAUSE POINTS HELP
  • 23. 10/11/2016 23 Quality Focused Checklists • Release Checklists* – Agreed upon checklist for quality and major architecture concerns • Use at pause points – sprint planning, release planning, … *Thanks, James Thorpe for sharing your company’s checklist Two Kinds of Checklists 1.Read-review 2.Do-confirm
  • 24. 10/11/2016 24 *Thanks, Alex Balboaca for sharing Checklists at MozaicWorks* Where do you start? • Small quick releases • Monitor qualities • Pick some low hanging fruit – Make goals visible – Colorize your backlog – Create quality-related checklists • Spread attention to code quality throughout teams • Depends on where you are and where the pain is… © Can Stock Photo Inc. / iqoncept
  • 25. 10/11/2016 25 How Much Architecture Risk do you Have? • New architecture, new product, new market, new technologies • Transforming an existing product • Evolving a product • Feature extensions on a “stable” architecture Higher Lower “the more risk, the more attention you need to pay to architecture” How Big is your Project? Small v. Large Projects Small Projects • 6-8 people • Non-life critical • Known domain Large Projects • Multiple teams • Known domain but tackling a big problem • “Naturally” emerging architecture can reflect organization structure • Significant risks, challenges, unknowns, lots of coordination architecture needs explicit attention architecture typically evolves OK without much attention
  • 26. 10/11/2016 26 VALUES DRIVE PRACTICE CALL TO ACTION Daily Practices Sustainable Development (CC) by muffinn on Flickr Visibility Lazy Manifesto Keeping slack over fully utilizing all the time Small high quality software over large complex software Doing only what is necessary over exhaustively discovering all tasks Doing less to deliver the same over doing more to deliver less “We are uncovering lazier ways of developing valuable products by doing it and helping others to 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…
  • 27. 10/11/2016 27 Principles of Lazy Manifesto Doing nothing is always an option. We seek to minimize the number of backlog items while keeping the value of the backlog. We believe to keep increasing velocity is not always good. We try to eliminate tasks that generate no value. We try to combine tasks to reduce latency and rework. We try to rearrange tasks to find problems early. We try to simplify all tasks as much as possible We are not afraid of eliminating our own tasks / processes by continuously acquiring new skills / capabilities. We expand capabilities over increasing capacities. We only work hard to make our work easier and safer. We always look to get help while we provide help to others with minimum effort. We never try to add an unnecessary principle simply to match with the other manifesto :) “We follow these principles when they don’t add work:” It is a Journey Commitment Follow-through Deliberate practices Paying attention Small Fast Delivery Continuous Learning © Can Stock Photo Inc. / jefras
  • 28. 10/11/2016 28 Agile Mindset Being AgileBeing vs Doing Core Ideas / Takeaways • Values drive practice • Continues Improvement • Code Quality and Delivery Size • Deal with Technical Debt • Many Practices can help • Call To Action (small steps you can take)
  • 29. 10/11/2016 29 Additional Resources • The Hillside Group (patterns community): Hillside.net • Being Agile at System Qualities workshop: – www.adaptiveobjectmodel.com/2015/04/ qa-to-aq-shifting-towards-agile-quality • Agile Myths: agilemyths.com • The Refactory (www.refactory.com) • Teams That Innovate (www.teamsthatinnovate.com) • Pragmatic TDD : refactory.com/training/test-driven-development http://adaptiveobjectmodel.com/2012/01/ what-is-pragmatic-tdd Kaizen Joe’s cool photo goes here!!! joe@refactory.com Twitter: @metayoda www.joeyoder.com www.refactory.com Dziękuję!!!