SlideShare a Scribd company logo
Using Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to
Build Great Software at YML
The Silicon Valley iOS Developers’ Meetup — June 11, 2018
01 Motivating Defensive Pessimism
02 UX Examples
03 Developer’s Guide to Better UX
Agenda
Motivating
Defensive
Pessimism
http://bit.ly/yml-defensive-pessimism
What is Beauty?
Photo by Danyu Wang on Unsplash
Photo by Václav Pluhař on Unsplash
2016 Ferarri 488 GTB
Can Software Be
Beautiful?
Some Possible Characteristics of “Beautiful” Software
• Anticipatory
• Aesthetically-pleasing
• Focused
• Frictionless
• Intuitive
• Innovative
• It Just Works
• Makes the difficult easy
• Omniscient
“Simple can be harder than complex.
You have to work hard to get your
thinking clean to make it simple. But it’s
worth it in the end because once you get
there, you can move mountains.”
The Happy Path
• Things people would mention to others when
describing an app
• What our users will experience the
vast majority of the time (hopefully)
• Sometimes the dominant focus for designers
• Just the tip of the iceberg
Happy Path
What do we call this?
https://twitter.com/ronjeffries/status/586902281125232640
Sad Path
!Happy Path
Exception Path
Edge Cases
We-Didn’t-Think-It-
Would-Do-That Path
The Path the User
Ends Up Taking
It’s Reality. Our Software Must Support Reality.
The Reality of Developing Software In the Wild
Photo by Nik Shuliahin on Unsplash
Using Defensive Pessimism to Build Great Software at YML
Yes. We Have to Worry About These Things.
• Some events require error handling and recovery:
• Network requests may fail
• Device may run out of memory or storage capacity
• Some events are failures from which we may not be able to recover programmatically:
• Hardware failures
• Changes to external dependencies
Robust-By-Design Software
• Considers the existence of these types of scenarios from the beginning
• Does not simply “bolt them on” later
• Provides a fluid, although possibly degraded, experience despite their presence
Benefits of Robust-By-Design Software
• More likely to:
• Be of the necessary quality
• Deliver a rock-solid user experience
• Easier to maintain and test
• The code will be better constructed (built from interconnected components)
• Less likely that other developers will cause software to regress
• Less likely to crash or behave in an unexpected manner in the course of operation
• More secure
User Experience Benefits of Robust-by-Design Software
• Things will be more fluid
• Errors, when they undoubtedly occur, will be handled smoothly
• App will not unexpectedly jump between screens or display unexpected states
• No blank screens
• No spinners ad infinitum
How do we Create Robust-by-Design Software?
• The more we practice this approach:
• The more scenarios will be known to us
• The better we will become at thinking about new scenarios
• No expectation or requirement that we think of every possible thing which can go wrong
• New scenarios may be handled by existing error handling
• New support will be easier to incorporate
• Think about as many of the various scenarios as we can
• This is a skill that software developers must hone
We Must Practice
Defensive Pessimism
Defensive Pessimism
• Cognitive strategy whose practitioners:
• Work through all the things which could go wrong
• Plan accordingly
• As a result, approach situations more fully prepared
• Benefit from that extra preparation
Our software (and the
people using it) will benefit
if we create software
which, from the beginning,
is more fully prepared for
what can go wrong
© 2018 YML. All rights reserved.
UX Examples
A Story
What does this have to
do with mobile apps?
Reliability impacts UX
Biggest Source of Unreliability?
The Network
Network calls always succeed.
The Assumption:
Networks are Inherently Unreliable
Success is indeterminate due to:
• Throughput variability
• Non-zero latency
• Topologies changes
Network-dependent apps are inherently unreliable.
All UX issues are mobile quality issues until proven otherwise.
UX Implications
For the best UX:
• Keep users informed to keep them engaged
• Transparency of behavior instills trust
• Cancellable actions to provide options, other than the
home button
Architectural Implications
• User’s actions need to be:
• Encapsulated as application behavior
• Executed timely on behalf of the user
• Cancellable by the user
• Mapped to one or more “business logic” activities
• Command Design Pattern (e.g., ProcedureKit)
© 2018 YML. All rights reserved.
Developer’s Guide
to Better UX
Maslow’s Hierarchy of Needs
Wi-Fi
Maslow as a User
Data / Content
Functionality
Interaction Design
Graphics
UX
UX is a Compromise
Business Goals
UX
UX is not a one person job
How can developers contribute to UX?
01 When stuff takes time, keep the user engaged.
Avoid the spinner
Using Defensive Pessimism to Build Great Software at YML
02 Predict
Most apps
upload hereWe start uploading here
03 Responsiveness
Fake it ’til you make it
Using Defensive Pessimism to Build Great Software at YML
Like Action
Contact
Server
Do Nothing
Regular model
Update UI
Like Action
Contact
Server
Do Nothing
Update UI
Revert UI
Optimistic model
Defensive Pessimistic
Software
Optimistic UX
“This is all your app is: a collection of tiny details.
Getting the details right is the difference between something that
delights, and something users tolerate.”
- Jeff Atwood, CodingHorror | StackOverflow
Using Defensive Pessimism to Build Great Software at YML

More Related Content

PDF
iPhone X and iOS 11: An Overview
PPTX
iPhone X - The Features, Specifications and Pricing
PPTX
Confused - Updating your iPhone to iOS 13 ??
PDF
iOS Development - A Beginner Guide
PPTX
Introduction to iOS Apps Development
PPTX
04 wp7 pivot and panorama
PPT
The Fine Print of iOS Development
PDF
iPhone Introduction
iPhone X and iOS 11: An Overview
iPhone X - The Features, Specifications and Pricing
Confused - Updating your iPhone to iOS 13 ??
iOS Development - A Beginner Guide
Introduction to iOS Apps Development
04 wp7 pivot and panorama
The Fine Print of iOS Development
iPhone Introduction

What's hot (20)

PPTX
How & where to start iOS development?
PPTX
Iphone 5S review
PPT
Spectacular features of i phone 6 with compatible ios 8
PDF
Glance at iOS 11
PPTX
2013 Devices -- Take the Guesswork out of New Mobile Devices & Platforms for ...
PPTX
SUPERPHONES
PPTX
Mobile operating systems
PDF
iOS Ecosystem @ Fiera del Radioamatore Pordenone
PPT
iOS Introduction For Very Beginners
PPTX
BOLO Mobile Super Forum
PDF
iBeacons for Everyone, from iOS to Android - James Montemagno | FalafelCON 2014
PPTX
Hayden -- Mobile Super Forum
PPS
Designing Killer Apps for Mobile Devices ModevUX May 9 2013 mclean VA - @iRajLal
ZIP
Best Practice iPhone SDK App Design
PDF
The Making of Tesla Smartwatch Apps
PPT
iBeacons for Everyone, From iOS to Android
PPTX
Building a multi touch enabled windows 7 point of sale system
PPTX
iPhone
PPTX
First Steps in iOS Development
PDF
History of iOS
How & where to start iOS development?
Iphone 5S review
Spectacular features of i phone 6 with compatible ios 8
Glance at iOS 11
2013 Devices -- Take the Guesswork out of New Mobile Devices & Platforms for ...
SUPERPHONES
Mobile operating systems
iOS Ecosystem @ Fiera del Radioamatore Pordenone
iOS Introduction For Very Beginners
BOLO Mobile Super Forum
iBeacons for Everyone, from iOS to Android - James Montemagno | FalafelCON 2014
Hayden -- Mobile Super Forum
Designing Killer Apps for Mobile Devices ModevUX May 9 2013 mclean VA - @iRajLal
Best Practice iPhone SDK App Design
The Making of Tesla Smartwatch Apps
iBeacons for Everyone, From iOS to Android
Building a multi touch enabled windows 7 point of sale system
iPhone
First Steps in iOS Development
History of iOS
Ad

Similar to Using Defensive Pessimism to Build Great Software at YML (20)

PDF
Ux4 indiedevs
PDF
A question of craftsmanship
PDF
UX what it's NOT, and also what it is
PPTX
Software Engineering - UNIT1- Part1.pptx
PPTX
Originate - Think In Hours Not Sprints
PDF
Software projects can go well... ask me how
PDF
When Things Go Bump in the Night
PDF
Why Is Managing Software So Hard?
PPT
Software Development in 21st Century
PPT
Introduction to software engineering ppt
PDF
How To Win At Software - Advice for New Engineers - by Gabe Johnson
PPT
Slides chapter 1
PPT
Slides chapter 1
PDF
Back To Basics Hyper Free Principles For Software Developers
PDF
Why do mobile projects (still) fail - September 2014 edition
PPT
Slides chapter 1
PDF
Preparing for the WebGeek DevCup
PPT
Arch factory - Agile Design: Best Practices
PDF
Foundations of Software Testing Lecture 4
PPT
Chapter 1 Introduction to software Engineering.ppt
Ux4 indiedevs
A question of craftsmanship
UX what it's NOT, and also what it is
Software Engineering - UNIT1- Part1.pptx
Originate - Think In Hours Not Sprints
Software projects can go well... ask me how
When Things Go Bump in the Night
Why Is Managing Software So Hard?
Software Development in 21st Century
Introduction to software engineering ppt
How To Win At Software - Advice for New Engineers - by Gabe Johnson
Slides chapter 1
Slides chapter 1
Back To Basics Hyper Free Principles For Software Developers
Why do mobile projects (still) fail - September 2014 edition
Slides chapter 1
Preparing for the WebGeek DevCup
Arch factory - Agile Design: Best Practices
Foundations of Software Testing Lecture 4
Chapter 1 Introduction to software Engineering.ppt
Ad

Recently uploaded (20)

PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PDF
AutoCAD Professional Crack 2025 With License Key
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
Nekopoi APK 2025 free lastest update
Navsoft: AI-Powered Business Solutions & Custom Software Development
Why Generative AI is the Future of Content, Code & Creativity?
Wondershare Filmora 15 Crack With Activation Key [2025
Weekly report ppt - harsh dattuprasad patel.pptx
Advanced SystemCare Ultimate Crack + Portable (2025)
Patient Appointment Booking in Odoo with online payment
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CHAPTER 2 - PM Management and IT Context
Design an Analysis of Algorithms I-SECS-1021-03
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
AutoCAD Professional Crack 2025 With License Key
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Design an Analysis of Algorithms II-SECS-1021-03
Download FL Studio Crack Latest version 2025 ?
Nekopoi APK 2025 free lastest update

Using Defensive Pessimism to Build Great Software at YML

Editor's Notes

  • #13: In fact, from very early on, we led innovation in mobile. Steve Jobs was so impressed he wanted to help out when we were applying the nascent touch functionality to bring Montessorrey style teaching to the hands of children across the country. And we've been on a similar first-mover edge in terms of the latest technology and design principles throughout our history ... whether that's in web, IoT, AI, VR, AR and conversational UI ... to create powerful user experiences.
  • #37: How many developers in the hall, show of hands
  • #38: Bottom line - A human being, as long as basic needs are not met, they will not focus on the 3 upper layers. It is important before anything else you need food, water, warmth, rest and then security.
  • #39: Data/Content - Unless we have something to show, rest doesn’t matter Functionality - We need to filter the data, decide which data to show when Interaction - How to show the data, functionality can be realized in 100s of ways. Navigation Graphics - Make it look good. If we have faulty data - poor ux Bad functionality - poor UX No navigation - poor UX Ugly visuals - poor UX
  • #40: UX is not a bubble. UX is in the tension field between a lot of other interests in an organization. User have needs & wants for a s/w, but that might not align with the business goals. Then we need to see what is technologically possible, which might not overlap. UX is a compromise between needs of the user, goals of the company, feasibility of tech
  • #44: Although the intention behind using the spinner is fairly right, it doesn’t keep the user engaged. General rule of thumb - 0.1 sec delay - user wont notice 1 sec delay - user will notice but without losing their train of thought 10 sec delay - user will abandon the app. Load the content progressively as it arrives.
  • #45: No content?
  • #52: Optimism with a foundation of pessimism