SlideShare a Scribd company logo
1 of 50
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
API-first Redesign of a Legacy Application
Nordic APIs - Platform Summit 2018
Chris Busse
CTO, APIvista
Richmond, Virginia
chris.busse@apivista.com
@busse | busse.io
Linkedin.com/in/chrisbusse
We’re hiring!
Richmond, Virginia, US
Raleigh, North Carolina, US
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
What is “API-first Design”?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
•“Design-first” API Approach
•”Contract-first” API Design
•“API-first” Product Design
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
1979
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Lemonade Stand Workshop,
a retrospective
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
What is a REST API?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
“Resource manipulation through
representations”
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
(Switch to the Lemonade Stand Demo)
https://classicreload.com/lemonade-stand.html
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
What are the rules of the game?
(aka, the “business logic”)
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Rules Given to the Player…
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
“Do we have enough information
to redesign this legacy app, API-
first?”
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
(Re-) Design
•Resources
•URL / URI
•Ontology
•Payloads
•Request / Responses
•Taxonomies
/customers
/customers/accounts
/customers/accounts/{number}/transactions
/…
/customers/{number}
{
firstName
lastName
emailAddress
...
}
1 2
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
http://lemonade-stand/???
Design
API Resources
/customers
/customers/accounts
/customers/accounts/{number}/transactions
/…
1
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
“Who wants to share?”
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
“I’ve been an Enterprise Software
Architect for 20 years….”
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Open API Spec 2.0 | editor.swagger.io
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
http://lemonade-stand/???
Define
Payloads
/customers/{number}
{
firstName
lastName
emailAddress
...
}
2
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Open API Spec 2.0 | editor.swagger.io
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
“Are we sure we’re
on the right track?”
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Open API Spec 2.0 | editor.swagger.io
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
What did we learn about
approaching API-first Design?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
We felt the User Journey and
Experience first-hand
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Empathy
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Design Validation:
Resilience to Change
“Add a cookie – not the browser kind!”
•You are going to sell cookies in the game now – what
changes in your API design?
•Which approach (items as resources, or turns) is
easier to handle this kind of change?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Database First or UI/UX First?
DBsDBs
DBs APIs UI/UX
Which should the API give precedence to in its design?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
User Journeys take many
branching paths
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Do you really need that right now?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
YAGNI
(“You aren’t going to need it”)
YAGNIN
(“You aren’t going to need it now”)
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
So who decides?
The customer does, by intent.
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Appropriate Abstractions
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
(aka “the Mulesoft way”)
Source: https://www.slideshare.net/HarishKumar544/three-layer-api-design-architecture
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Thinking in Abstractions are
how you create resource
representations and
make REST not CRUD
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Are you just refinancing your
technical debt?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
What if we want to make this a real
API Product?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
UX | DXUser Experience Developer Experience
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Creating DX: Three Kinds of API Development
Database
Server
Framework
View (UI)
(Ex: MEAN stack development)
1: Self 2: Team 3: External
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Creating DX: Three Kinds of API Development
Database
Server
Framework
View (UI)
(Ex: MEAN stack development)
1: Self 2: Team 3: External
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Creating DX: Three Kinds of API Development
Database
Server
Framework
View (UI)
(Ex: MEAN stack development)
1: Self 2: Team 3: External
APIs
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Creating DX: Three Kinds of API Development
Database
Server
Framework
View (UI)
(Ex: MEAN stack development)
1: Self 2: Team 3: External
APIs
APIs
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Creating DX: Three Kinds of API Development
Database
Server
Framework
View (UI)
(Ex: MEAN stack development)
3: External
APIs
The lower in the software
stack you deliver APIs,
and the farther away the
consuming developer is,
the more empathy for
Developer Experience you
need to have
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
The question to ask candidates:
Have you built APIs for other
developers outside of your own
organization?
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
“There is no business problem that can’t
be solved by good recruiting”
- Karen Booth Adams
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
In summary…
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
API Developers should actively seek
to gain empath for the end-users of
the systems implementing their APIs,
and design accordingly
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Let the real needs of the users
heavily inform backlog
prioritization
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Abstractions can bring freedom, but
understand the trade-offs you’re
making when further burying
technical debt
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
Lean in and hire great
developers…
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
One of the best ways to help build
empathy for customers is to bring
more diversity into your dev and
product teams.
| API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
API-first Redesign of a Legacy Application
Nordic APIs - Platform Summit 2018
Chris Busse
CTO, APIvista
Richmond, Virginia
chris.busse@apivista.com
@busse | busse.io
Linkedin.com/in/chrisbusse
10 REM <<< LEMONADE STAND >>>
15 REM
20 REM FROM AN ORIGINAL PROGRAM
30 REM BY BOB JAMISON, OF THE
40 REM MINNESOTA EDUCATIONAL
50 REM COMPUTING CONSORTIUM
60 REM * * *
70 REM MODIFIED FOR THE APPLE
80 REM FEBRUARY, 1979
90 REM BY CHARLIE KELLNE

More Related Content

What's hot

SOA in the API World - Facades, Transactions, Stateless Services
SOA in the API World - Facades, Transactions, Stateless Services SOA in the API World - Facades, Transactions, Stateless Services
SOA in the API World - Facades, Transactions, Stateless Services
Apigee | Google Cloud
 

What's hot (18)

API Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.ioAPI Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.io
 
Your API is your Product - Arun Ravindran, Unisys
Your API is your Product - Arun Ravindran, UnisysYour API is your Product - Arun Ravindran, Unisys
Your API is your Product - Arun Ravindran, Unisys
 
Developing mobile apps with HCPms
Developing mobile apps with HCPmsDeveloping mobile apps with HCPms
Developing mobile apps with HCPms
 
SOA in the API World - Facades, Transactions, Stateless Services
SOA in the API World - Facades, Transactions, Stateless Services SOA in the API World - Facades, Transactions, Stateless Services
SOA in the API World - Facades, Transactions, Stateless Services
 
SOA India 2009 | SOA and Web Business Platforms
SOA India 2009 | SOA and Web Business PlatformsSOA India 2009 | SOA and Web Business Platforms
SOA India 2009 | SOA and Web Business Platforms
 
Api-First service design
Api-First service designApi-First service design
Api-First service design
 
SQL Server Reporting Services 2016 Features
SQL Server Reporting Services 2016 FeaturesSQL Server Reporting Services 2016 Features
SQL Server Reporting Services 2016 Features
 
API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration
 
KPIs CDOs Should Know & Love (webcast)
KPIs CDOs Should Know & Love (webcast)KPIs CDOs Should Know & Love (webcast)
KPIs CDOs Should Know & Love (webcast)
 
Evolution of API Management in the BBC
Evolution of API Management in the BBCEvolution of API Management in the BBC
Evolution of API Management in the BBC
 
Craft and Execute your Enterprise API Strategy with SAP Cloud Platform
Craft and Execute your Enterprise API Strategy with SAP Cloud PlatformCraft and Execute your Enterprise API Strategy with SAP Cloud Platform
Craft and Execute your Enterprise API Strategy with SAP Cloud Platform
 
Replace Your Outdated Web Application with Web AppBuilder and Operations Dash...
Replace Your Outdated Web Application with Web AppBuilder and Operations Dash...Replace Your Outdated Web Application with Web AppBuilder and Operations Dash...
Replace Your Outdated Web Application with Web AppBuilder and Operations Dash...
 
Realizing SOA and API Convergence
Realizing SOA and API ConvergenceRealizing SOA and API Convergence
Realizing SOA and API Convergence
 
API workshop by AWS and 3scale
API workshop by AWS and 3scaleAPI workshop by AWS and 3scale
API workshop by AWS and 3scale
 
Developer Services: Making Developers Successful
Developer Services: Making Developers SuccessfulDeveloper Services: Making Developers Successful
Developer Services: Making Developers Successful
 
apidays LIVE Paris - Exploring an API with Blocks by Larry Kluger
apidays LIVE Paris - Exploring an API with Blocks by Larry Klugerapidays LIVE Paris - Exploring an API with Blocks by Larry Kluger
apidays LIVE Paris - Exploring an API with Blocks by Larry Kluger
 
Austin API Summit 2019 Lean and Business-oriented APIs
Austin API Summit 2019 Lean and Business-oriented APIsAustin API Summit 2019 Lean and Business-oriented APIs
Austin API Summit 2019 Lean and Business-oriented APIs
 
SAP API Business Hub
SAP API Business HubSAP API Business Hub
SAP API Business Hub
 

Similar to API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018

Similar to API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018 (20)

API-First Redesign of a Legacy Application
API-First Redesign of a Legacy ApplicationAPI-First Redesign of a Legacy Application
API-First Redesign of a Legacy Application
 
LF_APIStrat17_Contract-first API Development: A Case Study in Parallel API Pu...
LF_APIStrat17_Contract-first API Development: A Case Study in Parallel API Pu...LF_APIStrat17_Contract-first API Development: A Case Study in Parallel API Pu...
LF_APIStrat17_Contract-first API Development: A Case Study in Parallel API Pu...
 
2022 apidays LIVE Helsinki & North_How good are your APIs? Really?
2022 apidays LIVE Helsinki & North_How good are your APIs? Really?2022 apidays LIVE Helsinki & North_How good are your APIs? Really?
2022 apidays LIVE Helsinki & North_How good are your APIs? Really?
 
INTERFACE, by apidays - Design for your API customers with APIOps Cycles by ...
INTERFACE, by apidays  - Design for your API customers with APIOps Cycles by ...INTERFACE, by apidays  - Design for your API customers with APIOps Cycles by ...
INTERFACE, by apidays - Design for your API customers with APIOps Cycles by ...
 
APIOps Cycles - build business and tech together
APIOps Cycles - build business and tech togetherAPIOps Cycles - build business and tech together
APIOps Cycles - build business and tech together
 
IBM Connections Middleware – Connecting Blue/Green and PINK
IBM Connections Middleware – Connecting Blue/Green and PINKIBM Connections Middleware – Connecting Blue/Green and PINK
IBM Connections Middleware – Connecting Blue/Green and PINK
 
API First - Best Practices for consistent API management
API First - Best Practices for consistent API managementAPI First - Best Practices for consistent API management
API First - Best Practices for consistent API management
 
INTERFACE, by apidays - How to grow your API Consumers.pptx
INTERFACE, by apidays - How to grow your API Consumers.pptxINTERFACE, by apidays - How to grow your API Consumers.pptx
INTERFACE, by apidays - How to grow your API Consumers.pptx
 
Esri WebGIS Platform
Esri WebGIS PlatformEsri WebGIS Platform
Esri WebGIS Platform
 
Austin API Summit 2019 - APIs, Microservices, and Serverless: The Shape of Th...
Austin API Summit 2019 - APIs, Microservices, and Serverless: The Shape of Th...Austin API Summit 2019 - APIs, Microservices, and Serverless: The Shape of Th...
Austin API Summit 2019 - APIs, Microservices, and Serverless: The Shape of Th...
 
Microsoft Business Platform for real time applications
Microsoft Business Platform for real time applicationsMicrosoft Business Platform for real time applications
Microsoft Business Platform for real time applications
 
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyEstablish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
 
Why APIs need their own development method - Open and Lean method to develop ...
Why APIs need their own development method - Open and Lean method to develop ...Why APIs need their own development method - Open and Lean method to develop ...
Why APIs need their own development method - Open and Lean method to develop ...
 
How APIs Are Driving the New Commerce Landscape
How APIs Are Driving the New Commerce LandscapeHow APIs Are Driving the New Commerce Landscape
How APIs Are Driving the New Commerce Landscape
 
API Management Workshop (at Startupbootcamp Berlin)
API Management Workshop (at Startupbootcamp Berlin)API Management Workshop (at Startupbootcamp Berlin)
API Management Workshop (at Startupbootcamp Berlin)
 
Lean Method for Building Good APIs for Business – APIOps Cycles
Lean Method for Building Good APIs for Business – APIOps CyclesLean Method for Building Good APIs for Business – APIOps Cycles
Lean Method for Building Good APIs for Business – APIOps Cycles
 
IBM Connections 6 Component Pack
IBM Connections 6 Component PackIBM Connections 6 Component Pack
IBM Connections 6 Component Pack
 
APIDays Paris - APIOps Cycles - Open and lean method for API Development
APIDays Paris - APIOps Cycles - Open and lean method for API Development APIDays Paris - APIOps Cycles - Open and lean method for API Development
APIDays Paris - APIOps Cycles - Open and lean method for API Development
 
Transitioning Applications to the Web App Builder
Transitioning Applications to the Web App BuilderTransitioning Applications to the Web App Builder
Transitioning Applications to the Web App Builder
 
APIdays Helsinki 2019 - How to Design and Publish API Products that Your Cust...
APIdays Helsinki 2019 - How to Design and Publish API Products that Your Cust...APIdays Helsinki 2019 - How to Design and Publish API Products that Your Cust...
APIdays Helsinki 2019 - How to Design and Publish API Products that Your Cust...
 

Recently uploaded

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 

API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018

  • 1. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse API-first Redesign of a Legacy Application Nordic APIs - Platform Summit 2018 Chris Busse CTO, APIvista Richmond, Virginia chris.busse@apivista.com @busse | busse.io Linkedin.com/in/chrisbusse We’re hiring! Richmond, Virginia, US Raleigh, North Carolina, US
  • 2. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse What is “API-first Design”?
  • 3. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse •“Design-first” API Approach •”Contract-first” API Design •“API-first” Product Design
  • 4. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse 1979
  • 5. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse
  • 6. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Lemonade Stand Workshop, a retrospective
  • 7. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse What is a REST API?
  • 8. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse “Resource manipulation through representations”
  • 9. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse (Switch to the Lemonade Stand Demo) https://classicreload.com/lemonade-stand.html
  • 10. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse What are the rules of the game? (aka, the “business logic”)
  • 11. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Rules Given to the Player…
  • 12. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse “Do we have enough information to redesign this legacy app, API- first?”
  • 13. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse (Re-) Design •Resources •URL / URI •Ontology •Payloads •Request / Responses •Taxonomies /customers /customers/accounts /customers/accounts/{number}/transactions /… /customers/{number} { firstName lastName emailAddress ... } 1 2
  • 14. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse http://lemonade-stand/??? Design API Resources /customers /customers/accounts /customers/accounts/{number}/transactions /… 1
  • 15. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse “Who wants to share?”
  • 16. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse “I’ve been an Enterprise Software Architect for 20 years….”
  • 17. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Open API Spec 2.0 | editor.swagger.io
  • 18. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse http://lemonade-stand/??? Define Payloads /customers/{number} { firstName lastName emailAddress ... } 2
  • 19. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Open API Spec 2.0 | editor.swagger.io
  • 20. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse “Are we sure we’re on the right track?”
  • 21. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Open API Spec 2.0 | editor.swagger.io
  • 22. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse What did we learn about approaching API-first Design?
  • 23. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse We felt the User Journey and Experience first-hand
  • 24. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Empathy
  • 25. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Design Validation: Resilience to Change “Add a cookie – not the browser kind!” •You are going to sell cookies in the game now – what changes in your API design? •Which approach (items as resources, or turns) is easier to handle this kind of change?
  • 26. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Database First or UI/UX First? DBsDBs DBs APIs UI/UX Which should the API give precedence to in its design?
  • 27. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse User Journeys take many branching paths
  • 28. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Do you really need that right now?
  • 29. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse YAGNI (“You aren’t going to need it”) YAGNIN (“You aren’t going to need it now”)
  • 30. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse So who decides? The customer does, by intent.
  • 31. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Appropriate Abstractions
  • 32. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse (aka “the Mulesoft way”) Source: https://www.slideshare.net/HarishKumar544/three-layer-api-design-architecture
  • 33. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Thinking in Abstractions are how you create resource representations and make REST not CRUD
  • 34. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Are you just refinancing your technical debt?
  • 35. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse What if we want to make this a real API Product?
  • 36. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse UX | DXUser Experience Developer Experience
  • 37. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Creating DX: Three Kinds of API Development Database Server Framework View (UI) (Ex: MEAN stack development) 1: Self 2: Team 3: External
  • 38. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Creating DX: Three Kinds of API Development Database Server Framework View (UI) (Ex: MEAN stack development) 1: Self 2: Team 3: External
  • 39. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Creating DX: Three Kinds of API Development Database Server Framework View (UI) (Ex: MEAN stack development) 1: Self 2: Team 3: External APIs
  • 40. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Creating DX: Three Kinds of API Development Database Server Framework View (UI) (Ex: MEAN stack development) 1: Self 2: Team 3: External APIs APIs
  • 41. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Creating DX: Three Kinds of API Development Database Server Framework View (UI) (Ex: MEAN stack development) 3: External APIs The lower in the software stack you deliver APIs, and the farther away the consuming developer is, the more empathy for Developer Experience you need to have
  • 42. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse The question to ask candidates: Have you built APIs for other developers outside of your own organization?
  • 43. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse “There is no business problem that can’t be solved by good recruiting” - Karen Booth Adams
  • 44. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse In summary…
  • 45. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse API Developers should actively seek to gain empath for the end-users of the systems implementing their APIs, and design accordingly
  • 46. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Let the real needs of the users heavily inform backlog prioritization
  • 47. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Abstractions can bring freedom, but understand the trade-offs you’re making when further burying technical debt
  • 48. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse Lean in and hire great developers…
  • 49. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse One of the best ways to help build empathy for customers is to bring more diversity into your dev and product teams.
  • 50. | API-first Redesign of a Legacy Application – Nordic APIs Platform Summit 2018 – Chris Busse - @busse API-first Redesign of a Legacy Application Nordic APIs - Platform Summit 2018 Chris Busse CTO, APIvista Richmond, Virginia chris.busse@apivista.com @busse | busse.io Linkedin.com/in/chrisbusse 10 REM <<< LEMONADE STAND >>> 15 REM 20 REM FROM AN ORIGINAL PROGRAM 30 REM BY BOB JAMISON, OF THE 40 REM MINNESOTA EDUCATIONAL 50 REM COMPUTING CONSORTIUM 60 REM * * * 70 REM MODIFIED FOR THE APPLE 80 REM FEBRUARY, 1979 90 REM BY CHARLIE KELLNE

Editor's Notes

  1. - This talk is based off of some primary research and observations - including interviewing 6-10 developers a month over the past year as we’ve been building the team at APIvista - an 90-minute API-first / Legacy App redesign workshop I’ve held several times that has functioned as a survey of sorts about how people approach API design
  2. But first, a question…
  3. - This talk is based off of some primary research and observations - including interviewing 6-10 developers a month over the past year as we’ve been building the team at APIvista - an 90-minute API-first / Legacy App redesign workshop I’ve held several times that has functioned as a survey of sorts about how people approach API design
  4. 39 – 40 Celsius with oppressive humidity…
  5. History of the game What is a lemonade stand
  6. But first, a question…
  7. “In REST you have to go through the exercise of understanding a user’s needs before the API implementation” - Z
  8. In the workshop I have everyone do ten rounds to see who makes the most money … $17 is A LOT
  9. Starts with a simple premise… Notice I didn’t say User!
  10. This isn’t calling it out explicitly, but we’re talking about a lightweight API product management & governance activity here
  11. I usually give 5 minutes for this part … then I will ask for volunteers to share….
  12. I usually give 10 minutes for this part
  13. But first, a question…
  14. This is good product management - get out of the building - find out things only the users know
  15. This is good product management - get out of the building - find out things only the users know
  16. Of course, this is in contention with YAGNI / YAGNIN
  17. There are a lot of tools that will generate “REST” APIs from tables, but that’s really just JSON CRUD over HTTP – it is not resource manipulation Otherwise you’ll find yourself falling into the trap of Conway’s Law, in a bad way
  18. Objective v. Subjective
  19. What I mean is, you go ask the customer They could be internal, or external
  20. But first, a question…
  21. So as a test, if you aren’t doing abstractions, if you aren’t orchestrating or transforming something between your API and data layer, you need to look closer
  22. Through years of inaction, technical debt is created In this situation, it can be easy to think of the need to fix this as YAGNIN, but it is really that you needed it a long time ago if things have gotten to this point!
  23. But first, a question…
  24. All of this is in service of Developer experience If backlog story completion is the goal of your devs, you have a problem and won’t fix the empathy issue
  25. As a part of my job, I am constantly talking to developers in our pipeline looking for new talent to join our company. From that I have come to realize there are three So I want to talk through some of the things that the third type of API developer might take into consideration when redesigning a legacy application. And for this talk, our application is a game, which I’ll discuss more in a moment
  26. This is who needs API Product Management
  27. I had said I’d give one question to ask developers … if a developer has done this, even if they weren’t working in a “Product” mindset, they should have the empathy for the consuming developer that’s needed.
  28. But first, a question…
  29. But first, a question…
  30. But first, a question…
  31. But first, a question…
  32. But first, a question…
  33. Even if the people you bring in aren’t a representative demographic of the customer, you will benefit immensely from a culture of many perspectives