SlideShare ist ein Scribd-Unternehmen logo
1 von 93
Be open-minded, my friend
@bberrycarmen
Raquel M. Carmena
#scpna
@codurance_ES
Thanks !
Thanks!
http://navarracapital.es/pamplona-capital-del-desarrollo-de-software/
Thanks!
@codurance_ES
Thanks!
About me ...
Craftsman
or Scientist?
(1975) by Dijkstra
The Humble
Programmer
(1972) by Dijkstra
On the teaching of programming,
i.e. on the teaching of thinking
(1975) by Dijkstra
Why?
Pull requests?
Branching?
Estimations?
Documentation?
TDD?
Pair programming?
FP?
Why?
Cognitive distortions
and biases
Cognitive distortion
Polarized Thinking
or
‘Black and White’ Thinking
There is no middle ground.
Placing people or situations
in “either/or” categories,
with no shades of gray.
We come to a general
conclusion based on a single
incident or a single piece of
evidence. If something bad
happens only once, we
expect it to happen over and
over again.
Overgeneralization
Cognitive distortion
We take the negative details
and magnify them while
filtering out all positive
aspects of a situation.Filtering
Cognitive distortion
Confirmation bias
It refers to a type of
selective thinking whereby
one tends to notice and to
look for what confirms one's
beliefs, and to ignore, not
look for, or undervalue the
relevance of what
contradicts one's beliefs.
PULL REQUEST
It’s not a PULL REQUEST
This is a chat
Pull Request on another Pull Request
Pull request / Merge request
DRIVER NAVIGATOR
BRANCHING
Trunk Based development
trunkbaseddevelopment.com
trunkbaseddevelopment.com
● Many publications promote Trunk-Based Development as
we describe it here. Those include the best-selling
‘Continuous Delivery’ and ‘DevOps Handbook’. This
should not even be controversial anymore!
● The largest of development organizations, like Google (as
mentioned) and Facebook practice it at scale.
trunkbaseddevelopment.com
SCM - Software Configuration Management
1985 - A System for Version Control by Tichy
1986 - Software Configuration Management:
Coordination for Team Productivity by Babich
1998 - High Level Best Practices in Software
Configuration Management by Wingerd and Seiwald
1999 - Software Release Methodology by Michael Bays
1999 - Antipatterns and Patterns in Software
Configuration Management by Brown et al.
2002
The details
of the configuration management problem
change depending on
the types of systems that you are building,
the size of the teams,
and the environment that you work in.
What’s the best strategy?
OOP / FP
OOP FP
OOP FP
OOP FP
I do ’t a n F c i l P o r n Co f ce ,
be e I s l ’t ow t g a it
FP
● Pure functions
● Immutability
● Isolating effects
FP
● Higher functions
● Abstraction level
‘Twins: FP and OOP’ by Richard Warbuton
The future is hybrid:
pick the best features and ideas from both
functional and object-oriented approaches
in order to solve the problem at hand
DOCUMENTATION
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it
and helping others do it.
Through this work we have come to value:
That is, while there is value in the items on the right, we value the
items on the left more.
Working software over comprehensive documentation
Code comments
Code
comments
WHAT? HOW? WHY?
Project management
vs.
vs.
...
Boards
EVERYWHERE
Processes?
Mission?
Infrastructure?
TDD
RED
GREENREFACTOR
RED
GREENREFACTOR
Humility
PAIR
PROGRAMMING
DRIVER NAVIGATOR
All the time?
BOOKS
● About the author
● Preface
● Foreword
● Acknowledgements
ARCHITECTURE
Beyond architectures,
design patterns,
design principles, …
it’s a question
on taking care of the code
To conclude
You shouldn't be wedded
to any particular technology,
but have a broad enough
background
and experience base
to allow you to choose good solutions
in particular situations
We don't pretend to have all
(or even most) of the answers,
nor are all of our ideas
applicable in all situations
Have a questioning attitude
Continue travelling ...
#scpna
@codurance_ES
@bberrycarmen

Weitere ähnliche Inhalte

Ähnlich wie Be open-minded, my friend (June, 2018)

Arc Ready Q2 Blended Deck
Arc Ready Q2   Blended DeckArc Ready Q2   Blended Deck
Arc Ready Q2 Blended Deck
Philip Wheat
 
From the right process to a solid cultural change
From the right process to a solid cultural changeFrom the right process to a solid cultural change
From the right process to a solid cultural change
Francesco Zaia
 
Applying an intersectionality lens in data science
Applying an intersectionality lens in data scienceApplying an intersectionality lens in data science
Applying an intersectionality lens in data science
Data Con LA
 
28c3 version of "The engineering part of social engineering"
28c3 version of "The engineering part of social engineering"28c3 version of "The engineering part of social engineering"
28c3 version of "The engineering part of social engineering"
theAluc
 
DESIGNING MOBILE EXPERIENCES
DESIGNING MOBILE EXPERIENCESDESIGNING MOBILE EXPERIENCES
DESIGNING MOBILE EXPERIENCES
Alexander Anikin
 

Ähnlich wie Be open-minded, my friend (June, 2018) (20)

Designing For Stigma: A Framework
Designing For Stigma: A FrameworkDesigning For Stigma: A Framework
Designing For Stigma: A Framework
 
Persuasive e commerce workshop - Spryker
Persuasive e commerce workshop - SprykerPersuasive e commerce workshop - Spryker
Persuasive e commerce workshop - Spryker
 
Making sense of engagement
Making sense of engagementMaking sense of engagement
Making sense of engagement
 
Machine Learning for dummies!
Machine Learning for dummies!Machine Learning for dummies!
Machine Learning for dummies!
 
Arc Ready Q2 Blended Deck
Arc Ready Q2   Blended DeckArc Ready Q2   Blended Deck
Arc Ready Q2 Blended Deck
 
Blameless system design - annotated
Blameless system design  - annotatedBlameless system design  - annotated
Blameless system design - annotated
 
3A. Five Traits of Diffrence Makers.pdf
3A. Five Traits of Diffrence Makers.pdf3A. Five Traits of Diffrence Makers.pdf
3A. Five Traits of Diffrence Makers.pdf
 
From the right process to a solid cultural change
From the right process to a solid cultural changeFrom the right process to a solid cultural change
From the right process to a solid cultural change
 
Applying an intersectionality lens in data science
Applying an intersectionality lens in data scienceApplying an intersectionality lens in data science
Applying an intersectionality lens in data science
 
28c3 version of "The engineering part of social engineering"
28c3 version of "The engineering part of social engineering"28c3 version of "The engineering part of social engineering"
28c3 version of "The engineering part of social engineering"
 
Lessons learned from building practical deep learning systems
Lessons learned from building practical deep learning systemsLessons learned from building practical deep learning systems
Lessons learned from building practical deep learning systems
 
AI Driven Product Innovation
AI Driven Product InnovationAI Driven Product Innovation
AI Driven Product Innovation
 
AI-driven product innovation: from Recommender Systems to COVID-19
AI-driven product innovation: from Recommender Systems to COVID-19AI-driven product innovation: from Recommender Systems to COVID-19
AI-driven product innovation: from Recommender Systems to COVID-19
 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies later
 
DESIGNING MOBILE EXPERIENCES
DESIGNING MOBILE EXPERIENCESDESIGNING MOBILE EXPERIENCES
DESIGNING MOBILE EXPERIENCES
 
Brisbane City Council Future Thinking Presentation May 2009
Brisbane City Council Future Thinking Presentation May 2009Brisbane City Council Future Thinking Presentation May 2009
Brisbane City Council Future Thinking Presentation May 2009
 
Module 5: Decision Trees
Module 5: Decision TreesModule 5: Decision Trees
Module 5: Decision Trees
 
The Empathetic Engineer
The Empathetic EngineerThe Empathetic Engineer
The Empathetic Engineer
 
JDD2014: Game of Throneware, or how not to get killed when a developer become...
JDD2014: Game of Throneware, or how not to get killed when a developer become...JDD2014: Game of Throneware, or how not to get killed when a developer become...
JDD2014: Game of Throneware, or how not to get killed when a developer become...
 
Soft on People, Hard on Code: interpersonal approaches that promote high qual...
Soft on People, Hard on Code: interpersonal approaches that promote high qual...Soft on People, Hard on Code: interpersonal approaches that promote high qual...
Soft on People, Hard on Code: interpersonal approaches that promote high qual...
 

Mehr von Rachel M. Carmena

Mehr von Rachel M. Carmena (10)

2013 - Semana Informática - Seminario Cajón de Sastre
2013 - Semana Informática - Seminario Cajón de Sastre2013 - Semana Informática - Seminario Cajón de Sastre
2013 - Semana Informática - Seminario Cajón de Sastre
 
Talking about craftsmanship with "ensaimadas" and katas (May, 2018)
Talking about craftsmanship with "ensaimadas" and katas (May, 2018)Talking about craftsmanship with "ensaimadas" and katas (May, 2018)
Talking about craftsmanship with "ensaimadas" and katas (May, 2018)
 
The power of accessibility (November, 2018)
The power of accessibility (November, 2018)The power of accessibility (November, 2018)
The power of accessibility (November, 2018)
 
Git challenges
Git challengesGit challenges
Git challenges
 
What's the origin of REST architectural style?
What's the origin of REST architectural style?What's the origin of REST architectural style?
What's the origin of REST architectural style?
 
TDD Workshop (January, 2018)
TDD Workshop (January, 2018)TDD Workshop (January, 2018)
TDD Workshop (January, 2018)
 
Coding Dojo (November, 2017)
Coding Dojo (November, 2017)Coding Dojo (November, 2017)
Coding Dojo (November, 2017)
 
Talking about craftsmanship with ensaimadas and katas
Talking about craftsmanship with ensaimadas and katasTalking about craftsmanship with ensaimadas and katas
Talking about craftsmanship with ensaimadas and katas
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)
 
Just-in-time compiler (March, 2017)
Just-in-time compiler (March, 2017)Just-in-time compiler (March, 2017)
Just-in-time compiler (March, 2017)
 

Kürzlich hochgeladen

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 

Kürzlich hochgeladen (20)

Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
What is a Recruitment Management Software?
What is a Recruitment Management Software?What is a Recruitment Management Software?
What is a Recruitment Management Software?
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 

Be open-minded, my friend (June, 2018)