Sunny Tech 2019 - Craft Forever
10ansDéjà
!
SOFTWARE
CRAFT
ALORS
C EST QUOI
FINALEMENT LE
CRAFT ?
@cyriux
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Software Development, 1999
Software Technologies, 1999
Software Innovations, 1999
Enterprise
Java Beans
Vendor-driven complexity
Distributed Objects
Sunny Tech 2019 - Craft Forever
”Complexity is cool”
DAO Factory (Factory)
Planning rulz!
Detailed Design
Specs
UML/MDA!
”Coding is a dirty job”
UML/MDA!
”Hopefully one day we
won’t have to code
anymore”
Sunny Tech 2019 - Craft Forever
”I wanna
become project
manager after
2 years”
Random
Junior
Developer
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Christopher Alexander
Architectural Patterns
Ward Cunningham
Kent Beck
What about patterns
for software?
Sunny Tech 2019 - Craft Forever
What if we worked
differently?
PATTERNS + WIKI
+ XP + CRC Cards (…)
Sunny Tech 2019 - Craft Forever
AGILE MANIFESTO
WHEW!
(saved my life)
Passionate
developer
PARIS
Since 1999
@cyriux
Cyrille Martraire
Paris Software Crafters
Community since 2011
http://www.meetup.com/paris-software-craftsmanship/
Sunny Tech 2019 - Craft Forever
TDD
BDD
DDD
Legacy
Sunny Tech 2019 - Craft Forever
Agile is now
The New Norm
in reaction to non-sense
Abused stuff
Non-sense… at the time!
Abused stuff
AGILE Diversity (late 90’s)
I’m an XP fan
eXtreme
Programming
Scrum won
Scrum won
Hey Project
Manager!
Now you’re a
Scrum Master!
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Ooops!!!
we’ve done it
again!
A New
Dogma :(
Scrum gone
bad
Focus on
Project
Scrum gone bad
Code does not
matter
Scrum gone bad
http://fr.slideshare.net/MozaicWorks/sandro-manucos-software-craftmanship-pdf
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Uncle Bob Martin
Uncle Bob Martin
Software Craftsmanship
Software Craftsmanship Manifesto
Sunny Tech 2019 - Craft Forever
Engineering practices
matter!
in reaction to non-sense
Non-sense… at the time!
software craft
REACTION
a
REACTION
a
to a
REACTION
REACTION
a
to a
REACTIONto a
MINDthe
HISTORY
like art
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
COOL!
I’m an XP fan
XP HERESY
”XP is like a ring of poisonous
snakes, daisy-chained together. All
it takes is for one of them to wriggle
loose, and you've got a very angry,
poisonous snake heading your way.”
Matt Stephens.
http://www.softwarereality.com/lifecycle/xp/case_against_xp.jsp
Engineering practices
Successful teams
combine
Scrum + XP
Scrum
⋍
+
Software Craftsmanship
XPpoor man
”Software
Craftsmanship”
”Software
Craftsmanship”
”Software Craft”
Software Craft
"Raising the bar"
"Working code
is not enough"
Software Craft
Build the right thing.
Build it right.
Programming
by
Coincidence
Sunny Tech 2019 - Craft Forever
Programming
by
Coincidence
Selecting the best
techniques available
*now*
TDD
BDD
DDD
Legacy
Continuous
Delivery
Software
Craftsmanship
FP-style
Clean
Code
since 2009
The best techniques
available often look
like heresy
Sunny Tech 2019 - Craft Forever
Test only once it’s Done
Start with tests
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Test = Just enough Specification
Code = Just enough Code
Refactor = Just enough Design
TDD
Maturity Scale
1. No Test
2. Test-After
3. Test-First
4. TDD
Pair-Programming
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Driver-Navigator
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
TDD
BDD
DDD
Legacy
Continuous
Delivery
Software
Craftsmanship
FP-style
Clean
Code
http://nw.wea.org.uk/blogs/extending_learning_coversations.php
•Face to face IRL
(travel)
•Telephone
•Chat
•Email
Langage
métier
Conversations
The 3 amigos
TDD
BDD
DDD
Legacy
Continuous
Delivery
Software
Craftsmanship
FP-style
Clean
Code
Wanna change the code?
Code says No.
Sunny Tech 2019 - Craft Forever
Scrum
⋍
+
Software Craft
XP
+ something more…
”Learn to say NO”
118
119
120
”NO”
PROFESSIONALISM
Sunny Tech 2019 - Craft Forever
So…
Disruption
after
disruption
Always
changing
Technologies
126
Sunny Tech 2019 - Craft Forever
Shall we always
re-learn
everything?
NO
Evergreen
ATTITUDES
”The system”
=
the software
+the people
Taste for
simplicity
The more standard the better
fogus
@fogus
Naming
things is hard
& important
Frugal
dependencies
Sunny Tech 2019 - Craft Forever
137
KISS
Strategic Design
Bounded Context
Context Mapping
Domain Events
YAGNI
Low Coupling
High Cohesion
Hexagonal Architecture
Event Sourcing
FP + OO style
Immutable
Side-Effect-Free
Patterns
Monoids
Bubble Context & Legacy
SOLID
Impact Mapping
Elephant Carpaccio
Walking Skeleton
Conway’s Law
People as primary factor of success
Living Documentation
3 amigos Property-based Testing
Type-Driven Development
Patterns
MVC
If something
hurts, do it all
the time!
Sunny Tech 2019 - Craft Forever
Deployment is
dangerous
Deploy all the time
Continuous Delivery
Sunny Tech 2019 - Craft Forever
DRY: Don’t Repeat Yourself
But: DRY means Coupling
No Duplication
in the small
No Coupling
in the large
there’s no
practice
BEST
Only practices in a
context
Sunny Tech 2019 - Craft Forever
Learn a practice,
and learn
WHEN
to use it or not
Everything is
Contextual
Don’t be
DOGMATIC
Be
CATMATIC
Don’t be
DOGMATIC
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
TDD
BDD
DDD
Legacy
Continuous
Delivery
Software
Craftsmanship
FP-style
Clean
Code
since 2009
Extending
Toolbox
the
What
innovations
since 2009?
”More of the
good things”
Project
Product
Functional Core
Imperative Shell
”NoSomething”
#NoEstimates
#BeyondBudgeting
#NoProject
#HumanNotResource
#NoOps #NoSQL
”Functional
Programming is
the new thing”
early 50’s
Property-based
Testing
early 2000
Distributed
Architecture
168
”Les innovations, c’est
un truc de jeunes.”
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
"Full Team,
Full Throttle "
Pair-Programming
Mob-Programming
Modern

XP
http://benjiweber.co.uk/blog/2015/04/17/modern-extreme-programming/
Extreme
Extreme
Programming
SOA
SOA
Microservices
powered by
DDD
Old Fashioned Code
Machine Learning
”It’s new and totally
different, we don’t
need your old
practices”
Sunny Tech 2019 - Craft Forever
Machine Learning: The High Interest Credit Card of
Technical Debt
”Using the framework of technical debt,
• boundary erosion,
• entanglement,
• hidden feedback loops,
• undeclared consumers,
• data dependencies,
• changes in the external world,
• and a variety of system-level anti-patterns”
unfamiliar
technology…
Machine Learning: The High Interest Credit Card of
Technical Debt
”Using the framework of technical debt,
• boundary erosion,
• entanglement,
• hidden feedback loops,
• undeclared consumers,
• data dependencies,
• changes in the external world,
• and a variety of system-level anti-patterns”
…familiar
stuff
indeed!
Old Fashioned Code
Big Data
”It’s new and totally
different, we don’t
need your old
practices”
Bounded
Contexts still
rulz!
Even in your
Big Data!
”It’s new and totally
different, we don’t
need your old
practices”
DIGITAL
Transformations
From Domain-Driven
To Domain-Augmented
SOFTWARE-
NATIVE
BUSINESSES
reuse your
DDD
investment
Sunny Tech 2019 - Craft Forever
Any
real
innovations?
Sunny Tech 2019 - Craft Forever
Reactive etc.
micro -(service)
@cyriux
serverless
PaaS
chaos
engineering
Testing in
productionhttps://www.infoq.com/presentations/testing-production-2018/
Sunny Tech 2019 - Craft Forever
Progress
HERESY
through
”The line between
innovation and stupidity
is a thin line.”
OH on Twitter by @bertails
How to
provoke
innovation?
WEIRD
be
Deliberate
weird
practice
Sunny Tech 2019 - Craft Forever
Silent Pair-Programming
Photograph:Alamy
Evil Twin Pair-Programming
Don’t feed the
monster
Only tolerate
changes ”for the
last time”
What if we NEVER
deployed the legacy
again?
Object Calisthenics Constraints
Functional Calisthenics
https://codurance.com/2017/10/12/
functional-calisthenics/
Cloud PaaS
Calisthenics?
https://dev.to/simon_sugob/the-
twelve-factor-appa-successful-
microservices-guideline-3a1h
Minimum 2 instances of everything
Brutal interruption-proof
12h max uptime
… Thx @aloyer
Cloud PaaS Calisthenics?
Traditional Craft Attitude
x
New technology/concern
=
Innovation
Traditional Craft Attitude
x
New technology/concern
=
Innovation
Expect to be surprised
Try new things, and
amplify what works
WEIRD ideas for a
lunch break, a
coding dojo, or a
full iteration!
Send new WEIRD ideas
@WEIRDDEV
in Closing
@cyriux
Pre-order now,
Delivery June 9
BUY MY BOOK!
Sunny Tech 2019 - Craft Forever
Everyone will code
(even without knowing)
Software Craft will not
end well
(because success)
Professionalism.
Also
Mentoring others.
You can must critique
agile, software craft…
but remember their
context at the time
REACTION
what will be the next
REACTION
to the current
?
Thanks!
Cyrille MARTRAIRE @cyriux
@cyriux
References
• Sandro Mancuso et ”la gueule de bois agile” : https://www.infoq.com/articles/mancuso-software-craftsman/
• Université Devoxx 2018 sur l’architecture (YouTube): https://www.youtube.com/watch?v=1igv2rHGKfo
• Mob Programming (Woody Zuill): https://mobprogramming.org/
• Testing in Production (Charity Major): https://www.infoq.com/presentations/testing-production-2018/
• Functional Core Imperative Shell: https://www.destroyallsoftware.com/screencasts/catalog/functional-core-
imperative-shell
• Object Calisthenics: https://dzone.com/articles/object-calisthenics
• Functional Calisthenics: https://codurance.com/2017/10/12/functional-calisthenics/
• 12 Factor App: https://dev.to/simon_sugob/the-twelve-factor-appa-successful-microservices-guideline-3a1h
• Property-Based Testing: https://blog.jessitron.com/2013/04/25/property-based-testing-what-is-it
• Machine Learning: The High Interest Credit Card of Technical Debt: https://ai.google/research/pubs/pub43146
• Weird ideas to try in your team: @weirddev (Twitter)
• My book: Living Documentation: http://www.informit.com/livingdoc
Sunny Tech 2019 - Craft Forever

More Related Content

PDF
CTI-Renacimiento
PDF
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
PDF
From dev to ops and beyond - getting it done
PDF
Clean code is not the goal - working software is
PDF
Architecture Evolution as Company Scales - VoxxedDays Athens 2022
PDF
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
PPTX
Alessandro Ferrari - Smart City, Mixed Reality, Self-Driving Cars & Neural Co...
PPTX
Introduction to Azure DocumentDB
CTI-Renacimiento
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
From dev to ops and beyond - getting it done
Clean code is not the goal - working software is
Architecture Evolution as Company Scales - VoxxedDays Athens 2022
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Alessandro Ferrari - Smart City, Mixed Reality, Self-Driving Cars & Neural Co...
Introduction to Azure DocumentDB

Similar to Sunny Tech 2019 - Craft Forever (20)

PPTX
Bahrain ch9 introduction to docker 5th birthday
PDF
SXSW - The Changing World of Software Delivery: Web, Mobile,and IoT
PDF
Cloud development and career path
PDF
All the cool kids....
PDF
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
PDF
Herding cats in the Cloud
PPTX
On microservices and monoliths
PDF
The Evolution of Software for a Startup
PDF
Evolving to Cloud-Native - Nate Schutta 1/2
PPTX
.NET Architecture for Enterprises
PDF
Evolving to Cloud-Native - Nate Schutta (1/2)
PDF
Why Data, Code and Mobile converge in the Open Cloud
PDF
Deploying deep learning models with Docker and Kubernetes
PDF
NOVA IMS Microsoft on Innovation
PDF
Java Day Brochure
PDF
Druid Adoption Tips and Tricks
PDF
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
PDF
Coder sans peur du changement avec la meme pas mal hexagonal architecture
PDF
Build Low-Latency Rust Applications on ScyllaDB
PDF
Open Racing
Bahrain ch9 introduction to docker 5th birthday
SXSW - The Changing World of Software Delivery: Web, Mobile,and IoT
Cloud development and career path
All the cool kids....
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Herding cats in the Cloud
On microservices and monoliths
The Evolution of Software for a Startup
Evolving to Cloud-Native - Nate Schutta 1/2
.NET Architecture for Enterprises
Evolving to Cloud-Native - Nate Schutta (1/2)
Why Data, Code and Mobile converge in the Open Cloud
Deploying deep learning models with Docker and Kubernetes
NOVA IMS Microsoft on Innovation
Java Day Brochure
Druid Adoption Tips and Tricks
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
Coder sans peur du changement avec la meme pas mal hexagonal architecture
Build Low-Latency Rust Applications on ScyllaDB
Open Racing
Ad

More from Cyrille Martraire (19)

PDF
Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)
PDF
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...
PDF
Bounded Context - DDD Europe Foundation Track
PDF
Domain Modeling towards First Principles
PDF
DDD beyond the infamous repository pattern - GeeCon Prague 2018
PDF
DDD for real
PDF
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...
PDF
Refactor your Specs - 2017 Edition
PDF
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...
PDF
DDD patterns that were not in the book
PDF
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
PDF
Legacy Code: Evolve or Rewrite?
PDF
Ur Domain Haz Monoids DDDx NYC 2014
PDF
Ur Domain Haz Monoids
PDF
Refactor your specs! Øredev 2013
PDF
DDD session BrownBagLunch (FR)
PDF
I T.A.K.E. talk: "When DDD meets FP, good things happen"
PDF
Domain-Driven Design in legacy application
PDF
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...
Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...
Bounded Context - DDD Europe Foundation Track
Domain Modeling towards First Principles
DDD beyond the infamous repository pattern - GeeCon Prague 2018
DDD for real
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...
Refactor your Specs - 2017 Edition
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...
DDD patterns that were not in the book
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Legacy Code: Evolve or Rewrite?
Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids
Refactor your specs! Øredev 2013
DDD session BrownBagLunch (FR)
I T.A.K.E. talk: "When DDD meets FP, good things happen"
Domain-Driven Design in legacy application
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...
Ad

Recently uploaded (20)

PDF
What Makes a Great Data Visualization Consulting Service.pdf
PDF
SOFTWARE ENGINEERING Software Engineering (3rd Edition) by K.K. Aggarwal & Yo...
PPTX
ERP Manufacturing Modules & Consulting Solutions : Contetra Pvt Ltd
PDF
Sanket Mhaiskar Resume - Senior Software Engineer (Backend, AI)
PPT
3.Software Design for software engineering
PDF
Engineering Document Management System (EDMS)
PPTX
Human-Computer Interaction for Lecture 2
PDF
Streamlining Project Management in Microsoft Project, Planner, and Teams with...
PDF
MiniTool Power Data Recovery 12.6 Crack + Portable (Latest Version 2025)
PPTX
ROI Analysis for Newspaper Industry with Odoo ERP
PPTX
HackYourBrain__UtrechtJUG__11092025.pptx
PPTX
DevOpsDays Halifax 2025 - Building 10x Organizations Using Modern Productivit...
PPTX
ROI from Efficient Content & Campaign Management in the Digital Media Industry
PPTX
Lesson-3-Operation-System-Support.pptx-I
PDF
Practical Indispensable Project Management Tips for Delivering Successful Exp...
PPTX
Chapter 1 - Transaction Processing and Mgt.pptx
PPTX
Viber For Windows 25.7.1 Crack + Serial Keygen
PDF
Website Design & Development_ Professional Web Design Services.pdf
PDF
AI-Powered Fuzz Testing: The Future of QA
PPTX
Chapter_05_System Modeling for software engineering
What Makes a Great Data Visualization Consulting Service.pdf
SOFTWARE ENGINEERING Software Engineering (3rd Edition) by K.K. Aggarwal & Yo...
ERP Manufacturing Modules & Consulting Solutions : Contetra Pvt Ltd
Sanket Mhaiskar Resume - Senior Software Engineer (Backend, AI)
3.Software Design for software engineering
Engineering Document Management System (EDMS)
Human-Computer Interaction for Lecture 2
Streamlining Project Management in Microsoft Project, Planner, and Teams with...
MiniTool Power Data Recovery 12.6 Crack + Portable (Latest Version 2025)
ROI Analysis for Newspaper Industry with Odoo ERP
HackYourBrain__UtrechtJUG__11092025.pptx
DevOpsDays Halifax 2025 - Building 10x Organizations Using Modern Productivit...
ROI from Efficient Content & Campaign Management in the Digital Media Industry
Lesson-3-Operation-System-Support.pptx-I
Practical Indispensable Project Management Tips for Delivering Successful Exp...
Chapter 1 - Transaction Processing and Mgt.pptx
Viber For Windows 25.7.1 Crack + Serial Keygen
Website Design & Development_ Professional Web Design Services.pdf
AI-Powered Fuzz Testing: The Future of QA
Chapter_05_System Modeling for software engineering

Sunny Tech 2019 - Craft Forever