SlideShare a Scribd company logo
A Simpler Time
Ronnie Mitra
Director of API Design
CA API Academy
ronnie.mitra@ca.com
@mitraman
Simplicity.
A Simpler Time: A study of complexity in APIs
A Simpler Time: A study of complexity in APIs
Use picture of cellular automo
complexité
Complexity
What is Complexity?
• Composed of many parts
• Intricate, elaborate, interconnected
• Difficult to process, resource intensive
System Complexity
Interface Complexity
System Complexity
Systems Complexity: Emergence
The action of the whole is more
than the sum of the actions of the
parts
Complex Physical Systems
Complex Adaptive Systems
Performance
Credit-Assignment
Rule-Discovery
Agent Structure (Holland)
How do agents adapt?
Performance
Credit-Assignment
Rule-Discovery
Agent Structure (Holland)
“What will I do?”
The stock price is low
buy stock
Performance
Credit-Assignment
Rule-Discovery
Agent Structure (Holland)
the price has gone down,
I’ve lost money
“How well am I doing?”
Performance
Credit-Assignment
Rule-Discovery
Agent Structure (Holland)
“What else can I try?”
Next time, identify market trends before buying
Emergent and Adaptive Behaviour
• Agents become specialized
• Behaviour is de-centralized
• The system can adapt to change
Interface Complexity
Complexity in Design
Different Perspectives
Similar Conclusions
Cognitive Complexity: Norman
“Complexity by itself is neither
good nor bad: it is confusion
that is bad.”
Reduce
Organize
Time
Learn
Differences
Context
Emotion
Trust
The One
Cognitive Complexity: Maeda
“Simplicity is about
subtracting the obvious and
adding the meaningful”
Simple or Complex?
Complexity is a Perceived Quality
interface
simple
confusing
Making Interfaces Simpler
The designer’s job is to manage complexity:
• improve learnability
• improve usability
• reduce confusion
Managing Complexity
Where Does Interface Complexity Come From?
complexity is the price we pay for utility
Fred Brooks
The complexity of software is an essential property
not an accidental one. Hence descriptions of a
software entity that abstract away its complexity
often abstract away its essence.
No Silver Bullet – Essence and Accident in Software
Engineering
Larry Tesler
Tesler’s Law of the Conservation of Complexity
Every application has an inherent
amount of irreducible complexity.
The only question is: who will have
to deal with it […]?
“
”
OAuth 2.0
Complex?
OAuth 2.0 Complexity: A Fictional Measurement
OAuth 2.0
Complexity
(if we could
measure it)
Managing OAuth 2.0 Complexity: Who Pays the Price?
OAuth 2 Client
Implementation
OAuth 2 Server
Implementation
!!!
Client
Implementation
Server
Implementation
tooling
tooling
Managing OAuth 2.0 Complexity
Managing Complexity: Microservices
Monolith Application Microservices Application
μService
API
μService
μService
μService
μService
μService
API API
API API API
API
Managing Complexity: The Monolith
Monolith Application
API
Who pays the complexity price?
Code Maintainer
System
Maintainer
Managing Complexity: Microservices
Who pays the complexity price?
Code
Maintainer
System Maintainer
Microservices Application
μService
μService
μService
μService
API API
API API
Managing Complexity: Microservices
• Service becomes less confusing, but
system complexity increases
• Complexity cost is worthwhile
• Tools are introduced to hide (shift)
complexity
containerization
discovery
deployment
…
Managing Complexity: Microservices boundaries
μService
μService
μService
μService
μService
μService
client application
API API
API API API
API
Managing Complexity: Microservices
Who pays the complexity price?
Code
Maintainer
System Maintainer
Microservices Application
μService
μService
μService
μService
API API
API API
Client App
Developer
Managing Complexity: Client Applications
μService
μService
μService
μService
μService
μService
client application
API API
API API API
API
SDK
API
Complexity and the API Lifecycle
A Simpler Time: A study of complexity in APIs
API Lifecycle at Higher Resolution
API Software Life Cycle
API Documentation
Life CycleAPI Tooling Life Cycle
A Simpler Time: A study of complexity in APIs
• complexity enters the system
Inherited Complexity
world organization system interface
• complexity is managed by designers
• developers deal with application
complexity
Complexity in API Design: Pagination
response
data
page
page
page
page
page
Complexity in API Design: Pagination Strategies
no pagination offset and count fixed page size “smart” pagination
What are the complexity implications of pagination strategies?
• complexity is perceived
externally
• operators deal with operational
complexity
complexity is removed
API Consumption
humanmachine
deterministic
behaviour
adaptive
behaviour
RUNTIME NON-RUNTIME
Adaptive system
Increased reliability
System Complexity as a Feature
Performance
Credit-Assignment
Rule-Discovery
client application
API API
API API API
API
Extending the System Boundary
The simple version…
1. Accept complexity
2. Manage complexity for humans
3. Incorporate system complexity as a
feature
simple
simple
Image Credits
"Ribosome-Nascent chain complex". Licensed under CC BY 3.0 via Wikipedia - http://en.wikipedia.org/wiki/File:Ribosome-
Nascent_chain_complex.png#/media/File:Ribosome-Nascent_chain_complex.png
"Sao Paulo Stock Exchange" by Rafael Matsunaga - Flickr. Licensed under CC BY 2.0 via Wikimedia Commons -
http://commons.wikimedia.org/wiki/File:Sao_Paulo_Stock_Exchange.jpg#/media/File:Sao_Paulo_Stock_Exchange.jpg
"Appearance of sky for weather forecast, Dhaka, Bangladesh" by Mohammed Tawsif Salam - Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons -
http://commons.wikimedia.org/wiki/File:Appearance_of_sky_for_weather_forecast,_Dhaka,_Bangladesh.JPG#/media/File:Appearance_of_sky_for_weather_forecast
,_Dhaka,_Bangladesh.JPG
Snow Geese 03 by TexasEagle – Flickr. . Licensed under CC BY 2.0 -
http://www.flickr.com/photos/texaseagle/4206741477/sizes/o/
A Simpler Time
Ronnie Mitra
Director of API Design
CA API Academy
ronnie.mitra@ca.com
@mitraman

More Related Content

PPTX
Applying Systems Thinking to Software Architecture
PPTX
Grokking microservices in 5 minutes
PPTX
Integrating microservices in the cloud
PPTX
Growing an API Culture - APIdays LIVE AU 2020
PPTX
Salesforce as a PaaS - Architecture of Force.com
PPTX
Monolithic and Microservice architecture, Feature of Node JS 10, HTTP2
PDF
Visual Design with Data
PDF
Build Features, Not Apps
Applying Systems Thinking to Software Architecture
Grokking microservices in 5 minutes
Integrating microservices in the cloud
Growing an API Culture - APIdays LIVE AU 2020
Salesforce as a PaaS - Architecture of Force.com
Monolithic and Microservice architecture, Feature of Node JS 10, HTTP2
Visual Design with Data
Build Features, Not Apps

Similar to A Simpler Time: A study of complexity in APIs (20)

PPTX
Considerations For an API Strategy - Ronnie MItra API Architect Layer 7 Londo...
PDF
Service as-a-software
PPTX
On the shoulders of giants Learning About API Design by Looking Backwards
PPTX
API Strategy Introduction
PPS
Management of Complexity in System Design of Large IT Solutions
PPTX
Why an innovative mobile strategy needs a robust API
PDF
API Introduction - API Management Workshop Munich from Ronnie Mitra
PPTX
Api design part 1
PPTX
Why an Innovative Mobile Strategy Requires a Robust API
PPTX
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
ODP
Designing Good API & Its Importance
PPTX
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
PDF
API’s and Micro Services 0.5
PDF
Api Design Patterns Meap V07 Meap V07 Jj Geewax
PPTX
Transition from SOA to APIs for the App Economy - Bending the Spoon
PDF
Journey to APIs and Microservices: Best Practices
PPTX
Succeed with a Developer-Centric API Strategy - Ronnie Mitra, Principal API A...
PDF
apidays LIVE Paris 2021 - Test developer experience, not code by Kathrine Osa...
PDF
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
PDF
MicroServices, yet another architectural style?
Considerations For an API Strategy - Ronnie MItra API Architect Layer 7 Londo...
Service as-a-software
On the shoulders of giants Learning About API Design by Looking Backwards
API Strategy Introduction
Management of Complexity in System Design of Large IT Solutions
Why an innovative mobile strategy needs a robust API
API Introduction - API Management Workshop Munich from Ronnie Mitra
Api design part 1
Why an Innovative Mobile Strategy Requires a Robust API
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
Designing Good API & Its Importance
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API’s and Micro Services 0.5
Api Design Patterns Meap V07 Meap V07 Jj Geewax
Transition from SOA to APIs for the App Economy - Bending the Spoon
Journey to APIs and Microservices: Best Practices
Succeed with a Developer-Centric API Strategy - Ronnie Mitra, Principal API A...
apidays LIVE Paris 2021 - Test developer experience, not code by Kathrine Osa...
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
MicroServices, yet another architectural style?
Ad

More from ronniemitra (7)

PDF
People Platform Patterns
PDF
People Platform Patterns
PDF
How We Learn
PDF
Five API Styles
PPTX
Programming the People Platform
PPTX
Banking APIs: A Fine Balance
PPTX
Sketching Web APIs
People Platform Patterns
People Platform Patterns
How We Learn
Five API Styles
Programming the People Platform
Banking APIs: A Fine Balance
Sketching Web APIs
Ad

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
Teaching material agriculture food technology
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
cuic standard and advanced reporting.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
Electronic commerce courselecture one. Pdf
Network Security Unit 5.pdf for BCA BBA.
Building Integrated photovoltaic BIPV_UPV.pdf
Review of recent advances in non-invasive hemoglobin estimation
Teaching material agriculture food technology
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Chapter 3 Spatial Domain Image Processing.pdf
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
cuic standard and advanced reporting.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
20250228 LYD VKU AI Blended-Learning.pptx

A Simpler Time: A study of complexity in APIs

Editor's Notes

  • #8: I want to focus on two major types of complexity: system complexity, which captures some of the properties of intracacy and many parts that we’ve mentioned. Also what I’m calling “cognitive complexity”, the type of complexity related to human understanding. There are other types of complexity that we won’t discuss, for example I’m not going to talk about computational complexity – the study of the resources required to solve computational problems and the feasability of solving them. That is an interesting type of complexity, but not as releveant to the direction I want to take us today.
  • #9: As I’ve said, I’m definitely not an expert in complexity. Most of what I learned about the science of complexity has come from these two books – aimed at laymen like myself. If this subject is new to you and you find it interesting, I can recommend both of these titles: Complexity: A Very Short Introduction by John Holland And Complexity: A guided Tour by Melanie Mitchell
  • #10: Focus on emergent behaviour here as this is the essence of systems complexity Weather is an emergent system
  • #11: Goverened by laws (e.g. physics) Static/fixed agents Weather, von-neuman’s celleular automata
  • #12: Agents react/adapt Rare to find equillibrium (steady state)
  • #13: SHE: Shrink, Hide, Embody
  • #14: SHE: Shrink, Hide, Embody
  • #15: SHE: Shrink, Hide, Embody
  • #16: SHE: Shrink, Hide, Embody
  • #17: SHE: Shrink, Hide, Embody
  • #18: Systems complexity is fascinating, but I want to talk about something that is more interesting to me.. Cognitive complexity.
  • #19: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #20: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #21: SHE: Shrink, Hide, Embody
  • #27: Brooks is talking specifically about programming in this essay. Accidental complexity is the cruft. Complexity introduced because you are providing functions that are unneeded, or you haven’t been able to optimize the functions that are needed. The accidental complexity is the type of complexity Maeda talks about subtracting.
  • #28: Lawrence Gordon Tesler (born April 24, 1945) is a computer scientist who works in the field of human–computer interaction. Tesler has worked at Xerox PARC, Apple, Amazon, and Yahoo!. He is the creator of the copy/paste interaction He invented the law to sell the case for a framework and generic application layer within Apple. His argument was that it was better to push complexity down into the framework rather than making the user pay the price.
  • #33: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #34: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #35: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #36: System complexity can be addressed, it is much harder to address the cognitive complexity of understanding code. i.e. this is an easier problem to solve.
  • #37: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #38: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #39: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #41: A very product-centric view of the API lifeycle from the nordicapis team. This is also very macro – it is high level, if we go into details we find other lifecycles we need to worry about.
  • #42: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #43: A very product-centric view of the API lifeycle from the nordicapis team. This is also very macro – it is high level, if we go into details we find other lifecycles we need to worry about.
  • #44: A very product-centric view of the API lifeycle from the nordicapis team. This is also very macro – it is high level, if we go into details we find other lifecycles we need to worry about.
  • #45: How do committees invent – Mel Conway
  • #46: A very product-centric view of the API lifeycle from the nordicapis team. This is also very macro – it is high level, if we go into details we find other lifecycles we need to worry about.
  • #47: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #48: Intro to microservices Complexity in application: harder to learn, harder to develop, harder to change Complexity in management: harder to model, harder to measue, harder to enforce policy Embracing management complexity: Netflix model, celluar
  • #49: A very product-centric view of the API lifeycle from the nordicapis team. This is also very macro – it is high level, if we go into details we find other lifecycles we need to worry about.
  • #50: A very product-centric view of the API lifeycle from the nordicapis team. This is also very macro – it is high level, if we go into details we find other lifecycles we need to worry about.
  • #51: The frequency of the lifecycle is bound by how the products we create are consumed
  • #53: We could achieve emergence This would help with lifecycle frequency, less risk of changes