Slide 1

Slide 1 text

BEYOND CRAFT CYRILLE MARTRAIRE arolla.fr @arollafr REVISITING OUR RELATIONSHIP WITH SOFTWARE CRAFT

Slide 2

Slide 2 text

:FBS 40'58"3& $3"'5

Slide 3

Slide 3 text

Wow. That’s very old, isn’t it?

Slide 4

Slide 4 text

http://www.meetup.com/paris-software-craftsmanship/ PARIS SOFTWARE CRAFTERS COMMUNITY Since 2011. 4600+ members

Slide 5

Slide 5 text

That’s a lot of people, isn’t it?

Slide 6

Slide 6 text

‘CRAFT’ IN THE NAME OF THE BEST CONFS

Slide 7

Slide 7 text

@AROLLAFR CRAFT?

Slide 8

Slide 8 text

@AROLLAFR DO WE STILL NEED TO CARE?

Slide 9

Slide 9 text

Let’s explore that together!

Slide 10

Slide 10 text

arolla.fr @arollafr

Slide 11

Slide 11 text

arolla.fr @arollafr TDD BDD DDD 100% CRAFT SINCE 2009

Slide 12

Slide 12 text

arolla.fr @arollafr crafting architecture

Slide 13

Slide 13 text

@cyriux

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

@AROLLAFR CRAFT?

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Software Development, 1999

Slide 18

Slide 18 text

Enterprise Java Beans Vendor-driven complexity

Slide 19

Slide 19 text

”Complexity is cool” DAO Factory (Factory)

Slide 20

Slide 20 text

Planning rulz!

Slide 21

Slide 21 text

Detailed Design Specs

Slide 22

Slide 22 text

UML/MDA! ”Coding is a dirty job”

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

”I wanna become project manager after 2 years” Rando m Junior Developer

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Ward Cunningham

Slide 31

Slide 31 text

Kent Beck

Slide 32

Slide 32 text

What if we worked differently?

Slide 33

Slide 33 text

PATTERNS + WIKI + XP + CRC Cards (…)

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

AGILE MANIFESTO

Slide 36

Slide 36 text

in reaction to abuses

Slide 37

Slide 37 text

WHEW! (saved my life)

Slide 38

Slide 38 text

Agile is now The New Norm

Slide 39

Slide 39 text

Now you’re a Scrum Master!

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Ooops!!! we’ve done it again!

Slide 44

Slide 44 text

http://fr.slideshare.net/MozaicWorks/sandro-manucos-software-craftmanship-pdf

Slide 45

Slide 45 text

"Code does not matter" Scrum gone bad

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

Software Craftsmanship Manifesto

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

Engineering practices matter!

Slide 50

Slide 50 text

in reaction to non-sense

Slide 51

Slide 51 text

software craft

Slide 52

Slide 52 text

REACTION a

Slide 53

Slide 53 text

REACTION a to a REACTION

Slide 54

Slide 54 text

Software Craftsmanship

Slide 55

Slide 55 text

Software Craftsmanship

Slide 56

Slide 56 text

Software Craft

Slide 57

Slide 57 text

@CYRIUX Craft RAISING THE BAR WORKING CODE IS NOT ENOUGH

Slide 58

Slide 58 text

Build the right thing. Build it right.

Slide 59

Slide 59 text

PROGRAMMING BY COINCIDENCE

Slide 60

Slide 60 text

CRAFT = Desirable benefits

Slide 61

Slide 61 text

@CYRIUX BENEFITS TIME TO MARKET RELEASE FREQUENCY DEFECTS BY RELEASE TIME TO RECOVER EASIER EVOLUTIONS & MAINTENANCE REDUCED COST OVER TIME MORE VALUES DELIVERED DIGITAL FRUGALITY

Slide 62

Slide 62 text

CRAFT = selected PRACTICES

Slide 63

Slide 63 text

@CYRIUX PRACTICES SELECTING THE BEST TECHNIQUES AVAILABLE NOW

Slide 64

Slide 64 text

TDD BDD DDD Legacy Continuous Delivery Software Craftsmanship FP -style Clean Code since 2009 DevOps

Slide 65

Slide 65 text

The best techniques available often look like heresy

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

Test only once it’s Done Start with tests

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

Test = Just enough Speci fi cation Code = Just enough Code Refactor = Just enough Design TDD

Slide 71

Slide 71 text

TDD - MATURITY SCALE NO TEST TEST-AFTER TEST-FIRST TDD

Slide 72

Slide 72 text

Pair-Programming

Slide 73

Slide 73 text

No content

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

Driver-Navigator

Slide 76

Slide 76 text

"Full Team, Full Throttle "

Slide 77

Slide 77 text

TDD BDD DDD Legacy Continuous Delivery Software Craftsmanship FP -style Clean Code DevOps

Slide 78

Slide 78 text

http://nw.wea.org.uk/blogs/extending_learning_coversations.php •Face to face IRL (travel ) •Telephon e •Cha t •Email Langage métier Conversations

Slide 79

Slide 79 text

The 3 amigos

Slide 80

Slide 80 text

BDD Collaboration. Early. Continuously.

Slide 81

Slide 81 text

@CYRIUX devops Ops Dev

Slide 82

Slide 82 text

DevOps. Collaboration. Early.

Slide 83

Slide 83 text

DevOps. Automation.

Slide 84

Slide 84 text

DevOps. Automation. Automated tests. A lot.

Slide 85

Slide 85 text

TDD BDD DDD Legacy Continuous Delivery Software Craftsmanship FP -style Clean Code

Slide 86

Slide 86 text

Wanna change the code? Code says No.

Slide 87

Slide 87 text

Legacy Code Legacy Teams

Slide 88

Slide 88 text

TDD BDD DDD Legacy Continuous Delivery Software Craftsmanship FP -style Clean Code

Slide 89

Slide 89 text

Modular architectures

Slide 90

Slide 90 text

@cyriux Fraud Détection Payment Gift Cards n mpany ting Review Shopping Cart Bounded Contexts

Slide 91

Slide 91 text

Progressive Legacy Modernization

Slide 92

Slide 92 text

BIG BANG

Slide 93

Slide 93 text

@cyriux Fraud Détection Payment Gift Cards n mpany ting Review Shopping Cart REWRITE EXTERNALIZE KEEP AS-IS KEEP EXTRACT EXTRACT AS LIB

Slide 94

Slide 94 text

TDD BDD DDD Legacy Continuous Delivery Software Craftsmanship FP -style Clean Code DevOps

Slide 95

Slide 95 text

SCRUM + CRAFT = poor-man XP

Slide 96

Slide 96 text

CRAFT = ADAPT TO MODERN TECHS

Slide 97

Slide 97 text

@CYRIUX C, C++

Slide 98

Slide 98 text

@CYRIUX C, C++ SMALLTALK, JAVA

Slide 99

Slide 99 text

@CYRIUX RIGID & SLOW C++, ASM MALLEABLE & FAST JAVA, C#, JS, PYTHON

Slide 100

Slide 100 text

@CYRIUX RIGID & SLOW C++, ASM MALLEABLE & FAST JAVA, C#, JS, PYTHON Plan, execute Specs, code, test Separate tasks Start - Finish Iterate Specs+code+test Collaborate Continuous

Slide 101

Slide 101 text

No content

Slide 102

Slide 102 text

Scrum ⋍ + Software Craft XP

Slide 103

Slide 103 text

+ something more…

Slide 104

Slide 104 text

”Learn to say NO”

Slide 105

Slide 105 text

105

Slide 106

Slide 106 text

106

Slide 107

Slide 107 text

107 ”NO”

Slide 108

Slide 108 text

CRAFT = PROFESSIONALISM

Slide 109

Slide 109 text

No content

Slide 110

Slide 110 text

No content

Slide 111

Slide 111 text

No content

Slide 112

Slide 112 text

No content

Slide 113

Slide 113 text

Hygiene & Safety = Test + Refactor

Slide 114

Slide 114 text

No content

Slide 115

Slide 115 text

Always changing Technologies

Slide 116

Slide 116 text

116

Slide 117

Slide 117 text

Shall we always re-learn everything?

Slide 118

Slide 118 text

NO

Slide 119

Slide 119 text

&WFSHSFFO "UUJUVEFT

Slide 120

Slide 120 text

THE SYSTEM = THE SOFTWARE + THE PEOPLE

Slide 121

Slide 121 text

Socio-Technical Architecture, Team Topologies

Slide 122

Slide 122 text

Baby Steps

Slide 123

Slide 123 text

micro-Size

Slide 124

Slide 124 text

micro -(service)

Slide 125

Slide 125 text

Taste for simplicity

Slide 126

Slide 126 text

The more standard the better fogus @fogus

Slide 127

Slide 127 text

Naming things is hard & important

Slide 128

Slide 128 text

Frugal dependencies

Slide 129

Slide 129 text

No content

Slide 130

Slide 130 text

If something hurts, do it all the time!

Slide 131

Slide 131 text

No content

Slide 132

Slide 132 text

Deployment is dangerous Deploy all the time

Slide 133

Slide 133 text

Continuous Delivery

Slide 134

Slide 134 text

No content

Slide 135

Slide 135 text

1PSUBCMF "UUJUVEFT

Slide 136

Slide 136 text

$SBGUJOH BMMUIF UIJOHT

Slide 137

Slide 137 text

Infra as Code.

Slide 138

Slide 138 text

Infra as Code. CRAFT

Slide 139

Slide 139 text

CRAFTING Data Products

Slide 140

Slide 140 text

(code, data)

Slide 141

Slide 141 text

(code, data) CRAFT General Purpose software development

Slide 142

Slide 142 text

(code, data) CRAFT CRAFT Data Engineering software development

Slide 143

Slide 143 text

Testing data?

Slide 144

Slide 144 text

Software developers have long known that automated testing is essential for managing complex codebases. Great Expectations brings the same discipline, confidence, and acceleration to data science and data engineering teams. UNIT TESTS FOR DATA: DEEQU, GREAT EXPECTATIONS

Slide 145

Slide 145 text

CRAFTING ML Solutions

Slide 146

Slide 146 text

Old Fashioned Code Machine Learning

Slide 147

Slide 147 text

”It’s new and totally different, we don’t need your old practices”

Slide 148

Slide 148 text

https://research.google/pubs/pub43146/

Slide 149

Slide 149 text

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… …familiar stuff indeed!

Slide 150

Slide 150 text

CRAFT = Industry Impact

Slide 151

Slide 151 text

$SBGUPXO BCVTFT

Slide 152

Slide 152 text

Dogmatism.

Slide 153

Slide 153 text

DRY: Don’t Repeat Yourself But: DRY means Coupling

Slide 154

Slide 154 text

No Duplication in the small No Coupling in the large

Slide 155

Slide 155 text

EVERYTHING IS CONTEXTUAL

Slide 156

Slide 156 text

there’s no practice BEST

Slide 157

Slide 157 text

Learn a practice, and learn WHEN to use it or not

Slide 158

Slide 158 text

BE CAT-MATIC NOT DOG-MATIC

Slide 159

Slide 159 text

Elitism.

Slide 160

Slide 160 text

Teach / Coach / Help everyone!

Slide 161

Slide 161 text

Toxic leaders.

Slide 162

Slide 162 text

Quit / Fire.

Slide 163

Slide 163 text

Ethics of executing other people’s business ideas.

Slide 164

Slide 164 text

Entrepreneurship: why not?

Slide 165

Slide 165 text

Stuck in time.

Slide 166

Slide 166 text

What about innovations?

Slide 167

Slide 167 text

"Oh it’s just the same old thing" With a new name.

Slide 168

Slide 168 text

Cloud "Oh it’s just hosting"

Slide 169

Slide 169 text

@CYRIUX @CYRIUX No more. Highly managed cloud is about new opportunities: speed, elasticity, fast innovation, cost structure… This is achieved through a new architectural style. "Cloud is just hosting"

Slide 170

Slide 170 text

serverless

Slide 171

Slide 171 text

80% same old thing. 20% different. Still a game-changer overall.

Slide 172

Slide 172 text

"DUJWFMZ EJHXIBU`T SFBMMZ OPWFM

Slide 173

Slide 173 text

Remember how automated memory management changed our lives?

Slide 174

Slide 174 text

Event-Driven Architecture: "Oh it’s just async messaging"

Slide 175

Slide 175 text

Event Bus / Observer pattern Ticke t Booked Bookin g Service Bookin g Confirmed Inventor y Service Bookin g Cancelled Capacit y Updated Ticketin g Service CHANGE IN ONLY 1 PLACE

Slide 176

Slide 176 text

Event Bus / Observer pattern Ticke t Booked Bookin g Service Bookin g Confirmed Inventor y Service Bookin g Cancelled Capacit y Updated Ticketin g Service Notificatio n Service CHANGE IN ONLY 1 PLACE

Slide 177

Slide 177 text

01&/$-04& 13*/$*1-& 1MVH VOQMVHTFSWJDFT CHANGES IN ONLY 1 PLACE

Slide 178

Slide 178 text

Actively dig what’s really novel

Slide 179

Slide 179 text

No code / low code? "Oh it’ll never work!"

Slide 180

Slide 180 text

No content

Slide 181

Slide 181 text

No content

Slide 182

Slide 182 text

chaos engineering "Oh WTF?!"

Slide 183

Slide 183 text

Testing in production https://www.infoq.com/presentations/testing-production-2018/

Slide 184

Slide 184 text

No content

Slide 185

Slide 185 text

Progress HERESY through

Slide 186

Slide 186 text

”The line between innovation and stupidity is a thin line.” OH on Twitter by @bertails

Slide 187

Slide 187 text

LLM’s (ChatGPT, Copilot)

Slide 188

Slide 188 text

*U`TBCPVU $0.1-&9*5: SFBMMZ

Slide 189

Slide 189 text

COMPLEXITY THINKING = OUR NEW OPERATING SYSTEM

Slide 190

Slide 190 text

SAFE-TO-FAIL PROBES DIRECTION & COHERENCE GRANULARITY AMPLIFICATION & DAMPENING WHAT DIDN’T WORK BUT COULD WORK NOW? … Cynefin

Slide 191

Slide 191 text

20 YEARS AGO!

Slide 192

Slide 192 text

Wardley Mapping Residuality Theory

Slide 193

Slide 193 text

3&$"1

Slide 194

Slide 194 text

KNOW THE HISTORY TO UNDERSTAND THINGS IN CONTEXT

Slide 195

Slide 195 text

SOFTWARE CRAFT AS NECESSARY IN A CONTEXT

Slide 196

Slide 196 text

SOFTWARE CRAFT STILL WORTH LEARNING (AMONG OTHER THINGS)

Slide 197

Slide 197 text

DON’T GET STUCK IN 2009

Slide 198

Slide 198 text

EXPECT TO BE SURPRISED BY GENUINE NOVELTY

Slide 199

Slide 199 text

"DUJWFMZEJH XIBU`TSFBMMZ OPWFM*/UIF OFXTUVGG

Slide 200

Slide 200 text

‘CRAFT’ WILL END UP MEANING DIFFERENT THINGS TO DIFFERENT PEOPLE

Slide 201

Slide 201 text

WHAT WILL WE FOCUS ON AFTER WE NO LONGER FOCUS ON CRAFT?

Slide 202

Slide 202 text

THE REAL PURPOSE OF NEWCRAFTS?

Slide 203

Slide 203 text

No content

Slide 204

Slide 204 text

Thanks! Cyrille MARTRAIRE @cyriux

Slide 205

Slide 205 text

References • Sandro Mancuso ”Agile Hangover” : https://www.infoq.com/articles/mancuso-software-craftsman/ • McKinsey Developer Velocity Index: https://www.mckinsey.com/industries/technology-media-and- telecommunications/our-insights/developer-velocity-at-work-key-lessons-from-industry-digital-leaders#/ • 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 • 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 • Université Devoxx 2018 sur l’architecture (YouTube, FR): https://www.youtube.com/watch?v=1igv2rHGKfo