SlideShare ist ein Scribd-Unternehmen logo
1 von 29
How to Think Smarter
about Software
Development
Nilanjan Bhattacharya
Counterfactuals
What scientific concept
would improve our
cognitive toolkit?Edge.org is a website where some of the most renowned
intellectuals discuss ideas and express opinions.
Every year, the Edge, asks a question which is answered
by a large number of leaders in various scientific fields.
The question in 2011 was - What scientific concept would
improve everybody‘s cognitive toolkit?
There were 166 responses from eminent thinkers.
All the responses are available online as well as in a
printed book
In this presentation I have listed the concepts which are
most relevant to software development.
Presentation format
I have included a link to the concepts, followed by
brief commentary on the relevance to software
development.
You must read each link before my commentary.
I recommend you take printouts of the web pages
and highlight relevant portions.
Some of these articles are heavy reading. If you wish
you can read one or more every day.
When reading the links, try to put aside any
preconceptions you might have about software
development.
Wicked Problems
Wicked Problems
Creating software can be challenging.
Software development is definitely a wicked
problem.
Developers and testers are good at solving
difficult problems.
Wicked problems require a different mindset. I
like to think that a smart developer has already
tried to solve a wicked problem. This makes
testing even more wicked.
The Name Game
The Name Game
The best example of the ‘Name Game’ is the word
‘test’ (related to software).
There is no one in the world (including grandma) who
would admit to not knowing the meaning of the word
‘test’.
In reality the word ‘test’ is highly misunderstood (in
the context of software).
It is important to understand what ‘test’ really means.
Another word which is a victim of the ‘Name Game’ is
‘agile’.
Experimentation
Experimentation
As in real life, when you are trying to determine what works
(or may not work), you need to experiment.
The agile movement has created practices which make
software increments available in a few days.
There is no reason not to start experimenting immediately
and all the time.
We would be better off if we realized that ‘user stories’ (as
used in agile) are experiments.
Many incorrectly view experiments as synonymous with
‘frivolous’ as opposed to deliberate. Later concepts dispel
that idea.
Gedankenexperiment
Gedankenexperiment
In the case of software, unlike physics, you can
conduct physical experiments (on the software).
However, the gedankenexperiment is a great
concept to stimulate thinking and can be an
alternative or precursor to physical experiments.
It‘s another alternative to the heinous word ‘test’.
The Double-blind control
experiment
Double-blind control
experiments
It‘s worth understanding double-blind control
experiments from Wikipedia
A control experiment is much more specific and
rigorous compared to the previous two concepts
Many online companies conduct A/B testing which is
a controlled experiment
It’s more powerful to understand software
development as a series of experiments
Instead of solely relying on customers you can use
customer support, developers, testers or other
proxies
Cummulative Error
Cummulative Error
Software development itself is an elaborate
game of ‘postman’
With agile practices, the importance of verbal
communication is emphasized as opposed to
‘messages’ inscribed on paper.
Many engineers still struggle with this cognitive
fallacy
“The illusion of Platonic information is
confounding because it can easily defeat our
natural skeptical impulses”
The virtues of negative
results
The virtues of negative
results
Agile retrospectives result in learning from failure
We can go a step further and intentionally make
software fail in order to understand flaws in
design
You can show something is
definitely dangerous, but
not definitely safe
You can show something is
definitely dangerous….
Since you cannot prove that the software being
developed will cause no harm (to users), you
continue to find ways in which it can cause harm
(defects).
Tester redeemed
Uncertainty
Uncertainty
Uncertainty is a virtue when dealing with
complex systems, as long as it is quantified
With complex systems there is limited value in
pursuing precision as a goal in itself.
It is more valuable to qualify uncertainty.
When testing software you can qualify
uncertainty by describing what has been done
and how you measure coverage
The uselessness of
certainty
The uselessness of
certainty
We don’t need ‘scientifically proven’
We need enough information which will allow us
to make decisions and act.
Instead of Tayloresque management adopted a
personal, direct approach based on valuing
people and their skills and personal needs
In traditional testing, quality and management,
the word ‘scientific’ still shows up as the
preferred approach
The uselessness of
certainty
‘Scientific’ implies well documented and detailed,
and engineers who follow instructions
Even though we don’t demand following
instructions, the bigger point is that there is no
value in certainty
Even if the software doesn’t crash when
connected to eight servers, you could be proven
wrong when the environment changes
The key challenge in software development is to
correctly qualify your level of uncertainty.
Science’s methods aren’t
just for science
Science’s methods aren’t
just for science
Science is not about hard truths
‘Science is a way of thinking, of making better
approximations of how things are.’
Software testers can use scientific methods such
as A/B testing
Of course, this isn’t about ensuring that
customers see value – it’s more about
quantifying the uncertainty about risks to that
value
Science’s methods aren’t
just for science
Scientific methods don‘t need to include
conducting experiments.
They could be activities like a ‘journal club’ or
applying different ways of thinking such as
vertical, horizontal, or learning to take meaningful
notes when observing software behavior.
Q.E.D. Moments
Q.E.D. Moments
You need to experience the divine moment of
proving a logical or mathematical problem
When developing and testing software, i.e.,
determining value and what might go wrong, you
can conduct investigations to validate your
hypothesis.

Weitere ähnliche Inhalte

Was ist angesagt?

Exploratory Testing in an Agile Context
Exploratory Testing in an Agile ContextExploratory Testing in an Agile Context
Exploratory Testing in an Agile ContextElisabeth Hendrickson
 
Shrini Kulkarni - Software Metrics - So Simple, Yet So Dangerous
Shrini Kulkarni -  Software Metrics - So Simple, Yet So Dangerous Shrini Kulkarni -  Software Metrics - So Simple, Yet So Dangerous
Shrini Kulkarni - Software Metrics - So Simple, Yet So Dangerous TEST Huddle
 
Santa Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and ExperiencedSanta Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and ExperiencedMaaret Pyhäjärvi
 
Software testing _mod_9
Software testing _mod_9Software testing _mod_9
Software testing _mod_9hellosashi
 
Software engineering 22 error detection and debugging
Software engineering 22 error detection and debuggingSoftware engineering 22 error detection and debugging
Software engineering 22 error detection and debuggingVaibhav Khanna
 
Introduction to Exploratory Testing
Introduction to Exploratory TestingIntroduction to Exploratory Testing
Introduction to Exploratory TestingCodrin Pruteanu
 
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010TEST Huddle
 
Imrul: Context Driven Testing
Imrul: Context Driven TestingImrul: Context Driven Testing
Imrul: Context Driven TestingSQABD
 
Julian Harty - Alternatives To Testing - EuroSTAR 2010
Julian Harty - Alternatives To Testing - EuroSTAR 2010Julian Harty - Alternatives To Testing - EuroSTAR 2010
Julian Harty - Alternatives To Testing - EuroSTAR 2010TEST Huddle
 
Bug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutionsBug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutionsRIA RUI Society
 
Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014Nahim Nasser
 

Was ist angesagt? (20)

Exploratory Testing in an Agile Context
Exploratory Testing in an Agile ContextExploratory Testing in an Agile Context
Exploratory Testing in an Agile Context
 
Shrini Kulkarni - Software Metrics - So Simple, Yet So Dangerous
Shrini Kulkarni -  Software Metrics - So Simple, Yet So Dangerous Shrini Kulkarni -  Software Metrics - So Simple, Yet So Dangerous
Shrini Kulkarni - Software Metrics - So Simple, Yet So Dangerous
 
Santa Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and ExperiencedSanta Barbara Agile: Exploratory Testing Explained and Experienced
Santa Barbara Agile: Exploratory Testing Explained and Experienced
 
Software testing _mod_9
Software testing _mod_9Software testing _mod_9
Software testing _mod_9
 
Exploratory Testing in Practice
Exploratory Testing in PracticeExploratory Testing in Practice
Exploratory Testing in Practice
 
Software engineering 22 error detection and debugging
Software engineering 22 error detection and debuggingSoftware engineering 22 error detection and debugging
Software engineering 22 error detection and debugging
 
Testing for everyone
Testing for everyoneTesting for everyone
Testing for everyone
 
[Hoang nguyen] The Psychology in Software Testing
[Hoang nguyen] The Psychology in Software Testing[Hoang nguyen] The Psychology in Software Testing
[Hoang nguyen] The Psychology in Software Testing
 
Exploratory testing workshop
Exploratory testing workshopExploratory testing workshop
Exploratory testing workshop
 
Let's test
Let's testLet's test
Let's test
 
Introduction to Exploratory Testing
Introduction to Exploratory TestingIntroduction to Exploratory Testing
Introduction to Exploratory Testing
 
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
 
[Paul Holland] Trends in Software Testing
[Paul Holland] Trends in Software Testing[Paul Holland] Trends in Software Testing
[Paul Holland] Trends in Software Testing
 
Imrul: Context Driven Testing
Imrul: Context Driven TestingImrul: Context Driven Testing
Imrul: Context Driven Testing
 
The Design and Evaluation of Beahvior Change Tech
The Design and Evaluation of Beahvior Change TechThe Design and Evaluation of Beahvior Change Tech
The Design and Evaluation of Beahvior Change Tech
 
Julian Harty - Alternatives To Testing - EuroSTAR 2010
Julian Harty - Alternatives To Testing - EuroSTAR 2010Julian Harty - Alternatives To Testing - EuroSTAR 2010
Julian Harty - Alternatives To Testing - EuroSTAR 2010
 
Bug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutionsBug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutions
 
A Taste of Exploratory Testing
A Taste of Exploratory TestingA Taste of Exploratory Testing
A Taste of Exploratory Testing
 
SAM
SAMSAM
SAM
 
Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014
 

Ähnlich wie How to think smarter about software development

Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problemJohan Hoberg
 
Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...FiSTB
 
Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfSaraj Hameed Sidiqi
 
Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012Lynne Polischuik
 
Design for complexity
Design for complexityDesign for complexity
Design for complexityLextant
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software TestingTony Ennis
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundationalessandro100
 
Systematic inventive thinking and game testing
Systematic inventive thinking and game testingSystematic inventive thinking and game testing
Systematic inventive thinking and game testingJohan Hoberg
 
Lecture4 requirement engineering
Lecture4 requirement engineeringLecture4 requirement engineering
Lecture4 requirement engineeringShahid Riaz
 
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013TEST Huddle
 
How to do usability testing and eye tracking
How to do usability testing and eye trackingHow to do usability testing and eye tracking
How to do usability testing and eye trackingObjective Experience
 
Usability--What is it?
Usability--What is it?Usability--What is it?
Usability--What is it?Ann Krause
 
Software Testing As a Career Path
Software Testing As a Career PathSoftware Testing As a Career Path
Software Testing As a Career PathRock Interview
 
You aren't your target market. - UX Research Basics
You aren't your target market. - UX Research BasicsYou aren't your target market. - UX Research Basics
You aren't your target market. - UX Research BasicsAngela Obias
 
Democratizing Online Controlled Experiments at Booking.com
Democratizing Online Controlled Experiments at Booking.comDemocratizing Online Controlled Experiments at Booking.com
Democratizing Online Controlled Experiments at Booking.comLukas Vermeer
 
Intro to user experience design
Intro to user experience designIntro to user experience design
Intro to user experience designyaluna
 
Democratizing Online Controlled Experiments at Booking.com - Lukas Vermeer
Democratizing Online Controlled Experiments at Booking.com - Lukas VermeerDemocratizing Online Controlled Experiments at Booking.com - Lukas Vermeer
Democratizing Online Controlled Experiments at Booking.com - Lukas VermeerSavage Marketing
 

Ähnlich wie How to think smarter about software development (20)

Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problem
 
Testing trapeze-2014-april
Testing trapeze-2014-aprilTesting trapeze-2014-april
Testing trapeze-2014-april
 
Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...Huib Schoots Testing in modern times - a story about Quality and Value - Test...
Huib Schoots Testing in modern times - a story about Quality and Value - Test...
 
Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdf
 
Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012Understanding User Experience Workshop - Interlink Conference 2012
Understanding User Experience Workshop - Interlink Conference 2012
 
Design for complexity
Design for complexityDesign for complexity
Design for complexity
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software Testing
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundation
 
Systematic inventive thinking and game testing
Systematic inventive thinking and game testingSystematic inventive thinking and game testing
Systematic inventive thinking and game testing
 
QA is Broken, Fix it!
QA is Broken, Fix it!QA is Broken, Fix it!
QA is Broken, Fix it!
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Lecture4 requirement engineering
Lecture4 requirement engineeringLecture4 requirement engineering
Lecture4 requirement engineering
 
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
 
How to do usability testing and eye tracking
How to do usability testing and eye trackingHow to do usability testing and eye tracking
How to do usability testing and eye tracking
 
Usability--What is it?
Usability--What is it?Usability--What is it?
Usability--What is it?
 
Software Testing As a Career Path
Software Testing As a Career PathSoftware Testing As a Career Path
Software Testing As a Career Path
 
You aren't your target market. - UX Research Basics
You aren't your target market. - UX Research BasicsYou aren't your target market. - UX Research Basics
You aren't your target market. - UX Research Basics
 
Democratizing Online Controlled Experiments at Booking.com
Democratizing Online Controlled Experiments at Booking.comDemocratizing Online Controlled Experiments at Booking.com
Democratizing Online Controlled Experiments at Booking.com
 
Intro to user experience design
Intro to user experience designIntro to user experience design
Intro to user experience design
 
Democratizing Online Controlled Experiments at Booking.com - Lukas Vermeer
Democratizing Online Controlled Experiments at Booking.com - Lukas VermeerDemocratizing Online Controlled Experiments at Booking.com - Lukas Vermeer
Democratizing Online Controlled Experiments at Booking.com - Lukas Vermeer
 

Kürzlich hochgeladen

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Kürzlich hochgeladen (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

How to think smarter about software development

  • 1. How to Think Smarter about Software Development Nilanjan Bhattacharya Counterfactuals
  • 2. What scientific concept would improve our cognitive toolkit?Edge.org is a website where some of the most renowned intellectuals discuss ideas and express opinions. Every year, the Edge, asks a question which is answered by a large number of leaders in various scientific fields. The question in 2011 was - What scientific concept would improve everybody‘s cognitive toolkit? There were 166 responses from eminent thinkers. All the responses are available online as well as in a printed book In this presentation I have listed the concepts which are most relevant to software development.
  • 3. Presentation format I have included a link to the concepts, followed by brief commentary on the relevance to software development. You must read each link before my commentary. I recommend you take printouts of the web pages and highlight relevant portions. Some of these articles are heavy reading. If you wish you can read one or more every day. When reading the links, try to put aside any preconceptions you might have about software development.
  • 5. Wicked Problems Creating software can be challenging. Software development is definitely a wicked problem. Developers and testers are good at solving difficult problems. Wicked problems require a different mindset. I like to think that a smart developer has already tried to solve a wicked problem. This makes testing even more wicked.
  • 7. The Name Game The best example of the ‘Name Game’ is the word ‘test’ (related to software). There is no one in the world (including grandma) who would admit to not knowing the meaning of the word ‘test’. In reality the word ‘test’ is highly misunderstood (in the context of software). It is important to understand what ‘test’ really means. Another word which is a victim of the ‘Name Game’ is ‘agile’.
  • 9. Experimentation As in real life, when you are trying to determine what works (or may not work), you need to experiment. The agile movement has created practices which make software increments available in a few days. There is no reason not to start experimenting immediately and all the time. We would be better off if we realized that ‘user stories’ (as used in agile) are experiments. Many incorrectly view experiments as synonymous with ‘frivolous’ as opposed to deliberate. Later concepts dispel that idea.
  • 11. Gedankenexperiment In the case of software, unlike physics, you can conduct physical experiments (on the software). However, the gedankenexperiment is a great concept to stimulate thinking and can be an alternative or precursor to physical experiments. It‘s another alternative to the heinous word ‘test’.
  • 13. Double-blind control experiments It‘s worth understanding double-blind control experiments from Wikipedia A control experiment is much more specific and rigorous compared to the previous two concepts Many online companies conduct A/B testing which is a controlled experiment It’s more powerful to understand software development as a series of experiments Instead of solely relying on customers you can use customer support, developers, testers or other proxies
  • 15. Cummulative Error Software development itself is an elaborate game of ‘postman’ With agile practices, the importance of verbal communication is emphasized as opposed to ‘messages’ inscribed on paper. Many engineers still struggle with this cognitive fallacy “The illusion of Platonic information is confounding because it can easily defeat our natural skeptical impulses”
  • 16. The virtues of negative results
  • 17. The virtues of negative results Agile retrospectives result in learning from failure We can go a step further and intentionally make software fail in order to understand flaws in design
  • 18. You can show something is definitely dangerous, but not definitely safe
  • 19. You can show something is definitely dangerous…. Since you cannot prove that the software being developed will cause no harm (to users), you continue to find ways in which it can cause harm (defects). Tester redeemed
  • 21. Uncertainty Uncertainty is a virtue when dealing with complex systems, as long as it is quantified With complex systems there is limited value in pursuing precision as a goal in itself. It is more valuable to qualify uncertainty. When testing software you can qualify uncertainty by describing what has been done and how you measure coverage
  • 23. The uselessness of certainty We don’t need ‘scientifically proven’ We need enough information which will allow us to make decisions and act. Instead of Tayloresque management adopted a personal, direct approach based on valuing people and their skills and personal needs In traditional testing, quality and management, the word ‘scientific’ still shows up as the preferred approach
  • 24. The uselessness of certainty ‘Scientific’ implies well documented and detailed, and engineers who follow instructions Even though we don’t demand following instructions, the bigger point is that there is no value in certainty Even if the software doesn’t crash when connected to eight servers, you could be proven wrong when the environment changes The key challenge in software development is to correctly qualify your level of uncertainty.
  • 26. Science’s methods aren’t just for science Science is not about hard truths ‘Science is a way of thinking, of making better approximations of how things are.’ Software testers can use scientific methods such as A/B testing Of course, this isn’t about ensuring that customers see value – it’s more about quantifying the uncertainty about risks to that value
  • 27. Science’s methods aren’t just for science Scientific methods don‘t need to include conducting experiments. They could be activities like a ‘journal club’ or applying different ways of thinking such as vertical, horizontal, or learning to take meaningful notes when observing software behavior.
  • 29. Q.E.D. Moments You need to experience the divine moment of proving a logical or mathematical problem When developing and testing software, i.e., determining value and what might go wrong, you can conduct investigations to validate your hypothesis.