SlideShare uma empresa Scribd logo
1 de 16
Evolutionary Design:
Take only one Decision
at a time
Adrian Bolboacă
@adibolb
adrian.bolboaca@mozaicworks.
com
Objectives
◊
Understand Evolutionary Design ideas
◊
Use Baby steps for Evolutionary Design
◊
Have a flow while evolving the design
Evolutionary Design
The art of growing a system by observing its
natural traits and then normalizing and
optimizing its growth
Evolutionary Design
Evolutionary design is about the
transformations that take place when we add
new behaviors / tests.
Evolutionary Design Ideas
◊
The tests are pressure applied to existing design
◊
The production code is like clay that gets molded
depending on the pressure applied to it
◊
When evolving the design of a system we observe growth
patterns that simplify the resulting system
◊
Evolutionary Design is like helping your plants grow,
knowing what measures to take so they will be fruitful
Entry Point
The initial batch of steps when starting a
problem
Design Flow
In positive psychology, flow, also known as the zone, is the mental state of
operation in which a person performing an activity is fully immersed in a
feeling of energized focus, full involvement, and enjoyment in the process of the
activity
For Design:
◊
We know next few steps
◊
We understand the direction
◊
We see the directions (options) not to take
Take one decision: mechanics
1)Write one failing test
2)Make it pass in the simplest way
3)Write comments with all the possible next
steps
4)Decide pros and cons and choose the best
next step
5)Go back to 3
Remember: Only one design decision at a time
Coding Time
◊
Problem: Write code Outside-In on the Bank
Kata
Coding Time
◊
Problem: Write code Bottom-Up on Poker
Game
Anti-Patterns
◊
Focus on implementation details and not on
design concepts
◊
Consider that tests are the essential output of
TDD, and not well structured design elements
◊
Consider you know exactly the resulting
design, and don’t listen to the design smells
◊
Focus on the solution and not on the problem
What’s Next?
◊
Experiment both Deductive and Inductive
approaches during katas or coderetreats
◊
Try both Deductive and Inductive approaches
in your production environment
◊
Watch my codecasts on TDD as if you Meant It
& more
blog.adrianbolboaca.ro/evolutionary-design
◊
Pair with many people and learn from them
#RemotePairProgramming
Join my #RemotePairProgramming Codecasts:
contact me and pair during a recorded
codecast with me
Join Mozaic Works
Software Design School
Join Mozaic Works
Software Design School
◊
Join the level you want:
ҩ Fundamentals
ҩ Paradigms
ҩ Test Driven Design
ҩ Evolutionary Design
ҩ Improve Existing Design
ҩ Optimize Software Design
◊
From the basics to the most advanced & avant-garde
◊
Want to join? adrian.bolbaca@mozaicworks.com
Thank you!

Mais conteúdo relacionado

Semelhante a Evolutionary Design: Take One Decision at a Time

Design thinking
Design thinkingDesign thinking
Design thinkingchandkec
 
Design process in English
Design process in English Design process in English
Design process in English InglsVI
 
Ready, Set, Critique!
Ready, Set, Critique!Ready, Set, Critique!
Ready, Set, Critique!Adam Connor
 
Introduction to Design Thinking
Introduction to Design ThinkingIntroduction to Design Thinking
Introduction to Design ThinkingAmmad Nasir
 
Intro to Design (Lecture)
Intro to Design (Lecture)Intro to Design (Lecture)
Intro to Design (Lecture)Ammad Nasir
 
A Systematic Approach to Design Critique
A Systematic Approach to Design CritiqueA Systematic Approach to Design Critique
A Systematic Approach to Design CritiqueTryMyUI
 
A Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UXA Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UXVahid Abolhassani Nejad
 
Stages of problem solving presentation
Stages of problem solving presentationStages of problem solving presentation
Stages of problem solving presentationbbaugh
 
Stages of problem solving presentation
Stages of problem solving presentationStages of problem solving presentation
Stages of problem solving presentationbbaugh
 
Speed design studio version4.6
Speed design studio version4.6Speed design studio version4.6
Speed design studio version4.6Jabe Bloom
 
Basic Engineering Design (Part 1): Identify the Problem
Basic Engineering Design (Part 1):  Identify the ProblemBasic Engineering Design (Part 1):  Identify the Problem
Basic Engineering Design (Part 1): Identify the ProblemDenise Wilson
 
lesson-4.pptx
lesson-4.pptxlesson-4.pptx
lesson-4.pptxOut Cast
 
Principles of interaction design and user testing
Principles of interaction design and user testingPrinciples of interaction design and user testing
Principles of interaction design and user testingJulie Stanford
 
Take ithome
Take ithomeTake ithome
Take ithomeVijaya M
 
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Wey Wey Web
 
Design Thinking for Adoption - Devintersections-Fall2016.pptx
Design Thinking for Adoption - Devintersections-Fall2016.pptxDesign Thinking for Adoption - Devintersections-Fall2016.pptx
Design Thinking for Adoption - Devintersections-Fall2016.pptxMichelle Caldwell, PSM, SSGB
 
A Primer For Design Thinking For Business
A Primer For Design Thinking For BusinessA Primer For Design Thinking For Business
A Primer For Design Thinking For Businesssean carney
 
Presentation By Mr. David: HOD Design And Technology, Pathways Gurgaon
Presentation By Mr. David: HOD Design And Technology, Pathways GurgaonPresentation By Mr. David: HOD Design And Technology, Pathways Gurgaon
Presentation By Mr. David: HOD Design And Technology, Pathways Gurgaonrobongiers
 
Design thinking -_with_ideo_lecture.ppt
Design thinking -_with_ideo_lecture.pptDesign thinking -_with_ideo_lecture.ppt
Design thinking -_with_ideo_lecture.pptRicardo Amador
 

Semelhante a Evolutionary Design: Take One Decision at a Time (20)

Design thinking
Design thinkingDesign thinking
Design thinking
 
Design process in English
Design process in English Design process in English
Design process in English
 
Ready, Set, Critique!
Ready, Set, Critique!Ready, Set, Critique!
Ready, Set, Critique!
 
Introduction to Design Thinking
Introduction to Design ThinkingIntroduction to Design Thinking
Introduction to Design Thinking
 
Intro to Design (Lecture)
Intro to Design (Lecture)Intro to Design (Lecture)
Intro to Design (Lecture)
 
A Systematic Approach to Design Critique
A Systematic Approach to Design CritiqueA Systematic Approach to Design Critique
A Systematic Approach to Design Critique
 
A Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UXA Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UX
 
Stages of problem solving presentation
Stages of problem solving presentationStages of problem solving presentation
Stages of problem solving presentation
 
Stages of problem solving presentation
Stages of problem solving presentationStages of problem solving presentation
Stages of problem solving presentation
 
Speed design studio version4.6
Speed design studio version4.6Speed design studio version4.6
Speed design studio version4.6
 
Basic Engineering Design (Part 1): Identify the Problem
Basic Engineering Design (Part 1):  Identify the ProblemBasic Engineering Design (Part 1):  Identify the Problem
Basic Engineering Design (Part 1): Identify the Problem
 
lesson-4.pptx
lesson-4.pptxlesson-4.pptx
lesson-4.pptx
 
Principles of interaction design and user testing
Principles of interaction design and user testingPrinciples of interaction design and user testing
Principles of interaction design and user testing
 
Take ithome
Take ithomeTake ithome
Take ithome
 
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
 
Design Thinking for Adoption - Devintersections-Fall2016.pptx
Design Thinking for Adoption - Devintersections-Fall2016.pptxDesign Thinking for Adoption - Devintersections-Fall2016.pptx
Design Thinking for Adoption - Devintersections-Fall2016.pptx
 
A Primer For Design Thinking For Business
A Primer For Design Thinking For BusinessA Primer For Design Thinking For Business
A Primer For Design Thinking For Business
 
Integrative Design Process
Integrative Design Process Integrative Design Process
Integrative Design Process
 
Presentation By Mr. David: HOD Design And Technology, Pathways Gurgaon
Presentation By Mr. David: HOD Design And Technology, Pathways GurgaonPresentation By Mr. David: HOD Design And Technology, Pathways Gurgaon
Presentation By Mr. David: HOD Design And Technology, Pathways Gurgaon
 
Design thinking -_with_ideo_lecture.ppt
Design thinking -_with_ideo_lecture.pptDesign thinking -_with_ideo_lecture.ppt
Design thinking -_with_ideo_lecture.ppt
 

Mais de Adi Bolboaca

Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Adi Bolboaca
 
Stop Task Switching
Stop Task SwitchingStop Task Switching
Stop Task SwitchingAdi Bolboaca
 
Evolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring HeuristicsEvolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring HeuristicsAdi Bolboaca
 
Behind Agile Practices
Behind Agile PracticesBehind Agile Practices
Behind Agile PracticesAdi Bolboaca
 
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015Adi Bolboaca
 
Coderetreat @AgileFinland Turku 2014 11 15
 Coderetreat @AgileFinland Turku 2014 11 15 Coderetreat @AgileFinland Turku 2014 11 15
Coderetreat @AgileFinland Turku 2014 11 15Adi Bolboaca
 
Coderetreat @AgileFinland Helsinki 2014 11 13
Coderetreat @AgileFinland Helsinki 2014 11 13Coderetreat @AgileFinland Helsinki 2014 11 13
Coderetreat @AgileFinland Helsinki 2014 11 13Adi Bolboaca
 
Coderetreat @AgileFinland Tampere 2014 11 12
Coderetreat @AgileFinland Tampere 2014 11 12Coderetreat @AgileFinland Tampere 2014 11 12
Coderetreat @AgileFinland Tampere 2014 11 12Adi Bolboaca
 
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Adi Bolboaca
 
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15Adi Bolboaca
 
TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24Adi Bolboaca
 
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013Adi Bolboaca
 
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21Adi Bolboaca
 
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13Adi Bolboaca
 
Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013Adi Bolboaca
 
Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Adi Bolboaca
 
Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16Adi Bolboaca
 
Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27Adi Bolboaca
 
Coderetreat @Turku 2012 10 20
Coderetreat @Turku 2012 10 20 Coderetreat @Turku 2012 10 20
Coderetreat @Turku 2012 10 20 Adi Bolboaca
 
Coderetreat @Sibiu 2012 08 18
Coderetreat @Sibiu 2012 08 18Coderetreat @Sibiu 2012 08 18
Coderetreat @Sibiu 2012 08 18Adi Bolboaca
 

Mais de Adi Bolboaca (20)

Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018
 
Stop Task Switching
Stop Task SwitchingStop Task Switching
Stop Task Switching
 
Evolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring HeuristicsEvolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring Heuristics
 
Behind Agile Practices
Behind Agile PracticesBehind Agile Practices
Behind Agile Practices
 
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
 
Coderetreat @AgileFinland Turku 2014 11 15
 Coderetreat @AgileFinland Turku 2014 11 15 Coderetreat @AgileFinland Turku 2014 11 15
Coderetreat @AgileFinland Turku 2014 11 15
 
Coderetreat @AgileFinland Helsinki 2014 11 13
Coderetreat @AgileFinland Helsinki 2014 11 13Coderetreat @AgileFinland Helsinki 2014 11 13
Coderetreat @AgileFinland Helsinki 2014 11 13
 
Coderetreat @AgileFinland Tampere 2014 11 12
Coderetreat @AgileFinland Tampere 2014 11 12Coderetreat @AgileFinland Tampere 2014 11 12
Coderetreat @AgileFinland Tampere 2014 11 12
 
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
 
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
 
TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24
 
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
 
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
 
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
 
Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013
 
Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06
 
Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16
 
Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27
 
Coderetreat @Turku 2012 10 20
Coderetreat @Turku 2012 10 20 Coderetreat @Turku 2012 10 20
Coderetreat @Turku 2012 10 20
 
Coderetreat @Sibiu 2012 08 18
Coderetreat @Sibiu 2012 08 18Coderetreat @Sibiu 2012 08 18
Coderetreat @Sibiu 2012 08 18
 

Último

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Último (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Evolutionary Design: Take One Decision at a Time

  • 1. Evolutionary Design: Take only one Decision at a time Adrian Bolboacă @adibolb adrian.bolboaca@mozaicworks. com
  • 2. Objectives ◊ Understand Evolutionary Design ideas ◊ Use Baby steps for Evolutionary Design ◊ Have a flow while evolving the design
  • 3. Evolutionary Design The art of growing a system by observing its natural traits and then normalizing and optimizing its growth
  • 4. Evolutionary Design Evolutionary design is about the transformations that take place when we add new behaviors / tests.
  • 5. Evolutionary Design Ideas ◊ The tests are pressure applied to existing design ◊ The production code is like clay that gets molded depending on the pressure applied to it ◊ When evolving the design of a system we observe growth patterns that simplify the resulting system ◊ Evolutionary Design is like helping your plants grow, knowing what measures to take so they will be fruitful
  • 6. Entry Point The initial batch of steps when starting a problem
  • 7. Design Flow In positive psychology, flow, also known as the zone, is the mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity For Design: ◊ We know next few steps ◊ We understand the direction ◊ We see the directions (options) not to take
  • 8. Take one decision: mechanics 1)Write one failing test 2)Make it pass in the simplest way 3)Write comments with all the possible next steps 4)Decide pros and cons and choose the best next step 5)Go back to 3 Remember: Only one design decision at a time
  • 9. Coding Time ◊ Problem: Write code Outside-In on the Bank Kata
  • 10. Coding Time ◊ Problem: Write code Bottom-Up on Poker Game
  • 11. Anti-Patterns ◊ Focus on implementation details and not on design concepts ◊ Consider that tests are the essential output of TDD, and not well structured design elements ◊ Consider you know exactly the resulting design, and don’t listen to the design smells ◊ Focus on the solution and not on the problem
  • 12. What’s Next? ◊ Experiment both Deductive and Inductive approaches during katas or coderetreats ◊ Try both Deductive and Inductive approaches in your production environment ◊ Watch my codecasts on TDD as if you Meant It & more blog.adrianbolboaca.ro/evolutionary-design ◊ Pair with many people and learn from them
  • 13. #RemotePairProgramming Join my #RemotePairProgramming Codecasts: contact me and pair during a recorded codecast with me
  • 14. Join Mozaic Works Software Design School
  • 15. Join Mozaic Works Software Design School ◊ Join the level you want: ҩ Fundamentals ҩ Paradigms ҩ Test Driven Design ҩ Evolutionary Design ҩ Improve Existing Design ҩ Optimize Software Design ◊ From the basics to the most advanced & avant-garde ◊ Want to join? adrian.bolbaca@mozaicworks.com