SlideShare a Scribd company logo
c a k e s , s h o w e r s a n d e l e c t r i c i a n s
EMERGENT DESIGN
Rouan Wilsenach
@rouanw
thoughtworks.com
2
3
4
It is not enough for code
to work.
- Robert Martin
5
6
WHY DESIGN ?
7
8
9
10
11ANDY GREENBERG/WIRED
12Steve Jurvetson
13
Easy to learn Fast to changeFewer bugs
WHY EMERGENT ?
14
15https://www.flickr.com/photos/jshj/4619958228
16https://www.flickr.com/photos/chrisny2/4637837938
17
Build. Measure. Learn.
18
emerge
verb • become apparent
https://www.flickr.com/photos/schnappi/2321628609
19
not
become well-designed
https://www.flickr.com/photos/evaysucamara/5438832695
20
a change made in analysis
for $1 would cost thousands
to fix in production
- The change curve
21
a change made in analysis
for $1 would cost thousands
to fix in production
- The change curve
SIMPLICITY
What is good design?
22
23
Why is this so hard?
- Every developer, ever
24
a system made out of genuinely
simple parts, is going to be able to
affect the greatest change with
the least work
- Rich Hickey
25http://martinfowler.com/bliki/BeckDesignRules.html
AWAY FROM
!
THE CODE
26
27
Talk about it
28
Draw something
29
Know your challenges
30
Where are we going?
31
IN FRONT OF
!
THE CODE
32
33
refactoring
noun • a change made to the
internal structure of software to
make it easier to understand and
cheaper to modify without
changing its observable behaviour
http://martinfowler.com/bliki/DefinitionOfRefactoring.html
BEFORE
Preparatory refactoring
34
35
Make the change easy
(warning: this may be hard),
then make the easy change
- Kent Beck
36
You must kill all your
darlings
- William Faulkner
DURING
Continuous refactoring
37
38
Don’t forget the last step
39
Talk through it
AFTER
Take a step back
40
41
When writing code we
should always be
thinking of the reader
- Martin Fowler
42
Always leave the campground
cleaner than you found it.
- The boy scout rule, Robert Martin
43
Perfect is the
enemy of good.
- Voltaire
SOME TECHNIQUES
44
45
Code smells
https://www.flickr.com/photos/ericparker/11245157393
46
Side effects
4747https://www.flickr.com/photos/campra/7833151482
Refactor to patterns
48
Clean code is a hygiene factor
https://www.flickr.com/photos/tambako/2515141429
49
There are only two hard things in
Computer Science: cache invalidation
and naming things.
- Phil Karlton
50
Small things are easier to understand
51
SOLID
Single responsibility principle
Open/closed principle
…
RECAP
Again! Again!
52
53
Build. Measure. Learn.
Working code is not enough
change the change curve
54
Simplicity
55
In front of
the code
Away from
the code
SOME RESOURCES
Articles
• http://martinfowler.com/articles/designDead.html
• http://martinfowler.com/bliki/BeckDesignRules.html
• bit.ly/nf-ead-all (Neal Ford)
Videos
• http://www.infoq.com/presentations/Simple-Made-Easy (Rich Hickey)
• https://vimeo.com/16955608 (Neal Ford)
Books
• http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
(Uncle Bob)
• http://www.amazon.com/Extreme-Programming-Explained-Embrace-Edition/dp/0321278658
(Kent Beck)
News
• http://www.wired.com/2015/07/hackers-remotely-kill-jeep-highway/
• http://motherboard.vice.com/en_uk/read/how-is-critical-life-or-death-software-tested
56
a m e t a p h o r m a s h - u p
EMERGENT DESIGN
Rouan Wilsenach
@rouanw
thoughtworks.com

More Related Content

PDF
A Brief Guide to IT Project Management
PDF
Dashboards: Using data to find out what's really going on
PDF
ThoughtWorks Tech radar Jan 2014
PDF
Infrastructure as code
PDF
Be a polyglot programmer
PDF
QA in Production
PDF
How to write a blog post
PDF
Techniques for stress free software releases
A Brief Guide to IT Project Management
Dashboards: Using data to find out what's really going on
ThoughtWorks Tech radar Jan 2014
Infrastructure as code
Be a polyglot programmer
QA in Production
How to write a blog post
Techniques for stress free software releases

Viewers also liked (13)

PDF
Story and Emergent Design
PDF
REST - Padroes e Melhores Praticas
PDF
Tech lead tips
PPT
DDD > Experiências
PPT
Web Services Rest
PPTX
DDD – Domain Driven Design
PPTX
Programando com prazer com DDD
PDF
Workshop DDD
PPT
Domain Driven Design (DDD) - DevIsland, BH
PPTX
DDD - Domain Driven Design
PDF
DevOps Culture
PDF
Neal Ford Emergent Design And Evolutionary Architecture
PPTX
Refactoring, Emergent Design & Evolutionary Architecture
Story and Emergent Design
REST - Padroes e Melhores Praticas
Tech lead tips
DDD > Experiências
Web Services Rest
DDD – Domain Driven Design
Programando com prazer com DDD
Workshop DDD
Domain Driven Design (DDD) - DevIsland, BH
DDD - Domain Driven Design
DevOps Culture
Neal Ford Emergent Design And Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary Architecture
Ad

Similar to Emergent design - PHP Jo'burg 2015 (20)

PDF
AOP in NET Practical Aspect Oriented Programming Matthew D. Groves
PDF
Responsive Design for Complex Websites (IXDA Munich)
PDF
Making the Web Fireproof: A Building Code for Websites
PDF
121105MADE IN MY BACKYARD
PDF
Hacking 101
PDF
Hacking & everything you need to survice a hackday - Yahoo! Agency Hack Day N...
PDF
Introduction à l’intégration continue avec Jenkins
PDF
Hacking, Making, & Creating - at the library! Technology Innovations & Custom...
PDF
History of Human-Computer Interaction
PDF
Introduction to Continuous Integration with Jenkins
PDF
The Seven Wastes of Software Development
PDF
Struts 2 In Action 1st Edition Don Brown Chad Michael Davis Scott Stanlick
PDF
Programming Microcontrollers In C 2nd Ed Ted Vansickle
PDF
Windows Store App Development C And Xaml 1st Edition Pete Brown
PDF
How I failed to present on using DVCS to control archival metadata
PDF
Introduzione alle metodologie di sviluppo agile
PDF
RailsConf 2008
PDF
Stime e preventivi in un contesto di sviluppo agile
PPT
Catastrophic Engineering Failure
PDF
React in Action 1st Edition Mark Tielens Thomas
AOP in NET Practical Aspect Oriented Programming Matthew D. Groves
Responsive Design for Complex Websites (IXDA Munich)
Making the Web Fireproof: A Building Code for Websites
121105MADE IN MY BACKYARD
Hacking 101
Hacking & everything you need to survice a hackday - Yahoo! Agency Hack Day N...
Introduction à l’intégration continue avec Jenkins
Hacking, Making, & Creating - at the library! Technology Innovations & Custom...
History of Human-Computer Interaction
Introduction to Continuous Integration with Jenkins
The Seven Wastes of Software Development
Struts 2 In Action 1st Edition Don Brown Chad Michael Davis Scott Stanlick
Programming Microcontrollers In C 2nd Ed Ted Vansickle
Windows Store App Development C And Xaml 1st Edition Pete Brown
How I failed to present on using DVCS to control archival metadata
Introduzione alle metodologie di sviluppo agile
RailsConf 2008
Stime e preventivi in un contesto di sviluppo agile
Catastrophic Engineering Failure
React in Action 1st Edition Mark Tielens Thomas
Ad

More from rouanw (20)

PDF
Ship Show Ask at Lean Agile Edinburgh 2025
PDF
Ship Show Ask - A modern branching strategy at Lean Agile Scotland 2024
PDF
NDC Security 2023
PDF
Is this okay!? DevSecCon ⚡ 2022
PDF
Fail better with QA in Production
PDF
Qa in production singular 2019
PDF
How to review a pull request
PDF
Rouan's design principles
PDF
The curious case of the production incident
PDF
QA in Production: The tests we never wrote and the production monitoring we u...
PDF
Organised chaos: real-world JavaScript microservices
PDF
Contributing to open source is easier than you think
PDF
Continuous Integration
PDF
May 2013 ThoughtWorks Tech radar
PDF
Mobile publishing bringing the book to SA teens
PDF
Why should we automate tests?
PDF
How to make your css not suck
PPTX
An introduction to pair programming
PDF
Let's release it - an intro to Continuous Delivery
PDF
Four attributes of an agile business
Ship Show Ask at Lean Agile Edinburgh 2025
Ship Show Ask - A modern branching strategy at Lean Agile Scotland 2024
NDC Security 2023
Is this okay!? DevSecCon ⚡ 2022
Fail better with QA in Production
Qa in production singular 2019
How to review a pull request
Rouan's design principles
The curious case of the production incident
QA in Production: The tests we never wrote and the production monitoring we u...
Organised chaos: real-world JavaScript microservices
Contributing to open source is easier than you think
Continuous Integration
May 2013 ThoughtWorks Tech radar
Mobile publishing bringing the book to SA teens
Why should we automate tests?
How to make your css not suck
An introduction to pair programming
Let's release it - an intro to Continuous Delivery
Four attributes of an agile business

Recently uploaded (20)

PDF
Nekopoi APK 2025 free lastest update
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
AI in Product Development-omnex systems
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPT
Introduction Database Management System for Course Database
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
ai tools demonstartion for schools and inter college
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Online Work Permit System for Fast Permit Processing
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Transform Your Business with a Software ERP System
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Odoo Companies in India – Driving Business Transformation.pdf
Nekopoi APK 2025 free lastest update
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Digital Strategies for Manufacturing Companies
AI in Product Development-omnex systems
CHAPTER 2 - PM Management and IT Context
VVF-Customer-Presentation2025-Ver1.9.pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Introduction Database Management System for Course Database
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
ai tools demonstartion for schools and inter college
Operating system designcfffgfgggggggvggggggggg
Upgrade and Innovation Strategies for SAP ERP Customers
Online Work Permit System for Fast Permit Processing
PTS Company Brochure 2025 (1).pdf.......
Transform Your Business with a Software ERP System
How to Choose the Right IT Partner for Your Business in Malaysia
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Odoo Companies in India – Driving Business Transformation.pdf

Emergent design - PHP Jo'burg 2015