39
DELUSION DRIVEN DEVELOPMENT AND WHY YOU SHOULDN'T DO IT Created by / Felipe Fernández @felipefzdz

Delusion driven development

Embed Size (px)

Citation preview

Page 1: Delusion driven development

DELUSION DRIVENDEVELOPMENT

AND WHY YOU SHOULDN'T DO ITCreated by / Felipe Fernández @felipefzdz

Page 2: Delusion driven development

ABOUT MEFELIPE FERNÁNDEZ

Work as Software Craftsman for Currently with Blog: http://codurance.com/blog/author/felipe-fernandezTwitter:

CoduranceCrowdmix

@felipefzdz

Page 3: Delusion driven development

DEFINING DELUSION“An idiosyncratic belief or impression

maintained despite being contradicted byreality or rational argument, typically as a

symptom of mental disorder.”

Page 4: Delusion driven development

ABOUT THE TALK1. Operations2. Testing3. Design

Page 5: Delusion driven development

1. OPERATIONS

Page 6: Delusion driven development

OPERATIONS

I’LL HAVE A LOOK WHENEVER IS NEEDED

Page 7: Delusion driven development

OPERATIONS: I’LL HAVE A LOOK WHENEVER IS NEEDED

DIAGNOSIS IN DISTRIBUTED ENVIRONMENTSWhen your tests are not enoughYou need to query the state of your system

Page 8: Delusion driven development

OPERATIONS: I’LL HAVE A LOOK WHENEVER IS NEEDED

DIAGNOSIS METHODOLOGIESDebuggingQuerying datastoresLogging

Page 9: Delusion driven development

OPERATIONS: I’LL HAVE A LOOK WHENEVER IS NEEDED

DISTRIBUTED DIAGNOSIS METHODOLOGIESDebugging -> LOLQuerying datastores -> FragmentationLogging -> Madness

Page 10: Delusion driven development

OPERATIONS

I’LL HAVE A LOOK WHENEVER IS NEEDEDPlease don't, it could be really hard and you want to be

prepared

Page 11: Delusion driven development

OPERATIONS

I NEED TO REMOVE THAT DUPLICATION NOW

Page 12: Delusion driven development

OPERATIONS: I NEED TO REMOVE THAT DUPLICATION NOW

GENERALISING DEPLOYMENT PIPELINESDIY deployment pipelinesMicroservices context

Page 13: Delusion driven development

OPERATIONS: I NEED TO REMOVE THAT DUPLICATION NOW

GENERALIZATION ASSUMPTIONSVersioningCheckingContinuous integration

Page 14: Delusion driven development

OPERATIONS

I NEED TO REMOVE THAT DUPLICATION NOWDo it when you're stable enough

Page 15: Delusion driven development

OPERATIONS

I GUESS THAT IS READY

Page 16: Delusion driven development

OPERATIONS: I GUESS THAT IS READY

CREATING REAL WALKING SKELETONSThat includes provisioning and deployingSmoke test as driver

Page 17: Delusion driven development

OPERATIONS: I GUESS THAT IS READY

GOOS PHILOSOPHYAddress your non-functional challenges asapAntidote against technical debt

Page 18: Delusion driven development

OPERATIONS

I GUESS THAT IS READYDon't guess, double check

Page 19: Delusion driven development

2. TESTING

Page 20: Delusion driven development

TESTING

THE PARTS ARE WORKING, SO THE WHOLE

Page 21: Delusion driven development

TESTING: THE PARTS ARE WORKING, SO THE WHOLE

DISTRIBUTED TESTINGDon't give up on unit testing

But that's not enough

Page 22: Delusion driven development

TESTING: THE PARTS ARE WORKING, SO THE WHOLE

CONTRACT TESTINGStart designing your APIs with respect

The customer is always right

Page 23: Delusion driven development

TESTING: THE PARTS ARE WORKING, SO THE WHOLE

SMOKE TESTINGWe need more than a red test

Centralised logging and correlation ids

Page 24: Delusion driven development

TESTING

THE PARTS ARE WORKING, SO THE WHOLEDon't understimate the complexity of distributed systems

Page 25: Delusion driven development

TESTING

TESTING IS ALWAYS GOOD

Page 26: Delusion driven development

TESTING: TESTING IS ALWAYS GOOD

TESTING TRADE-OFFSMicro unit testsSlow testsHard to read/write tests

Page 27: Delusion driven development

TESTING: TESTING IS ALWAYS GOOD

TRADE-OFFS ARE JUST TRADE OFFSMicro unit testsSlow testsHard to read/write tests

Page 28: Delusion driven development

TESTING

TESTING IS ALWAYS GOODAs long as you understand the trade-offs

Page 29: Delusion driven development

3. DESIGN

Page 30: Delusion driven development

DESIGN

LANGUAGE APPROXIMATIONS ARE OK

Page 31: Delusion driven development

DESIGN: LANGUAGE APPROXIMATIONS ARE OK

BOUNDED CONTEXTSCore DDD concept

Impact mapping or even Event Storming can help you toidentify them

Page 32: Delusion driven development

DESIGN: LANGUAGE APPROXIMATIONS ARE OK

HEXAGONAL ARCHITECTURE

Page 33: Delusion driven development

DESIGN

LANGUAGE APPROXIMATIONS ARE OKOften I think that our profession is closer to literature than

maths

Page 34: Delusion driven development

DESIGN

BUSINESS NEEDS ARE STABLE

Page 35: Delusion driven development

DESIGN: BUSINESS NEEDS ARE STABLE

CQRS

Page 36: Delusion driven development

DESIGN: BUSINESS NEEDS ARE STABLE

CQRSExtremely perfomant

Adds overhead

Page 37: Delusion driven development

DESIGN

BUSINESS NEEDS ARE STABLEThat's not true. Design with that in mind.

Page 38: Delusion driven development

THANK YOU

Page 39: Delusion driven development

ANY QUESTIONS?