Moving Toward a Modular Enterprise
James Higginbotham /@LaunchAny
APIs
Customers
Partners
BusinessDevelopers
http://www.theverge.com/2014/8/12/5991005/slack-is-killing-email-yes-really
We are now seeing the early
stages of a transition from users
going to the application, to
applications going to the user
When APIs Meet Jobs-to-be-done
Offers API
Inventory
API
Bookings
API
Identity API
Accounts
API
Rewards
API
Partners
Internal
Developers
Public App
Developers
Consumers
Third-party
Approved Apps
Transformation #1:
Capture Capabilities with APIs
API Capabilities: “I want to…”
List Avail
Inventory
Distributor
Add Product
to Order
Complete
Order
Cancel
Booking
Add Product
to Inventory
Update
Product Qty
Locate
Booking
Redeem
Booking
Point
Of Sale
Remove
Product
Customer
Clerk
Operator
Order Mgmt
List Avail
Inventory
Distributor
Add Product
to Order
Complete
Order
Cancel
Booking
Add Product
to Inventory
Update
Product Qty
Locate
Booking
Redeem
Booking
Operator
Point
Of Sale
Remove
Product
Customer
Inventory Mgmt
Fulfillment
Clerk
Order API
List Avail
Inventory
Distributor
Add Product
to Order
Complete
Order
Cancel
Booking
Add Product
to Inventory
Update
Product Qty
Locate
Booking
Redeem
Booking
Point
Of Sale
Remove
Product
Customer
Inventory API
Fulfillment API
Operator
Clerk
Availabilities
- product
- date(s) avail
- qty avail
availabilityChanged()
Orders
- bookings
- order total
created()
updated()
Products
- name
- avail schedule
created()
removed()
updated()
Bookings
- product
- date(s)
- status
redeemed()
cancelled()
Order API Inventory API
Fulfillment API
Transformation #2:
Become an API-Centric
Organization
Transformation #3:
Innovate with an
outside-in approach
Modern web APIs are the
ultimate “do-over”
Your API design should become
the definition of your new target
architecture
Web
Application
API
Internal
Application
Direct API
Consumer
Mobile
Application
Alexa
VoiceSkill
APIGatewayAPIGateway
Messaging
…
Microservice
…
API
…
Microservice
…
API
…
Microservice
…API
…
Microservice
…
API
Slack
Chatbot
Web+MobileApp
APIGateway
Transformation #4:
Focus on the
Developer Experience
APIs are a developer’s
user interface
Transformation #5:
Structure Teams For Delivery
Where are APIs leading us?
APIs are the new apps.
Either you serve the computer or it serves you.
Either you are working on spec to create a
commodity, or you are using new tools to
create disruptions and to establish yourself as
the linchpin, the one we can’t easily live
without.
- Seth Godin
http://sethgodin.typepad.com/seths_blog/2016/07/the-computer-the-network-and-the-economy.html
James Higginbotham
@launchany
http://TheApiDesignBook.com
Thank you

Moving Toward a Modular Enterprise - All About the API Conference 2016

Editor's Notes

  • #2 Nearing the end of the conference Talked a lot about designing, testing, and marketing APIs But why are they important? And where are APIs taking us? We will talk about this throughout this talk, including what it means to be a modular enterprise
  • #3 APIs connect everything that we do. They enable our enterprise to internally connect systems. They extend the reach of our enterprise to the web, mobile, IoT The value of an API is in the collaboration it creates between the end user and your product or service The arrows is where the collaboration is at Your API strategy must focus on this collaboration to deliver a great API
  • #4 Driving the focus toward APIs as the enablers of collaboration, rather than just data Messaging platforms such as Slack have been leading the way Slack not only helps teams to communicate via chat, they also provide an integration platform to provide access to important data at the right time
  • #5 In fact, a recent article makes the claim that some Slack users are spending nearly 10 hours in the app every day This is moving our workflow away from email and more to real-time collaboration APIs enable this collaboration
  • #6 If we look toward the Internet of Things, we are seeing APIs not only sharing data, but offering custom experiences Specifically, voice- driven devices are taking us to a similar place as messaging platforms Moving beyond typing and mouse clicks and into a new conversational user experience People are using their Amazon Echo and other voice-driven devices to perform complex workflows. More elaborate collaborations The devices engage in a conversation with us, applying our questions and following-up or delaying our involvement
  • #7 We are now seeing the early stages of a transition from users going to the application, to applications going to the user Mobile, IoT, voice and messaging platforms are driving the move to applications meeting the user via APIs
  • #8 Consider the things that happen around you on a day-to-day basis – your jobs to be done. The job-to-be-done often requires us to move around applications, most driven by API interactions with our data and business logic API collaboration really occurs when our APIs meet the job-to-be-done Platforms such as Slack and Alexa are often closer to where the job-to-be-done exists than the applications we use Why not decompose our enterprises into the building blocks that drive our daily collaborations?
  • #9 This is what I call the “modular enterprise” APIs shift companies from just writing code to digitizing business capabilities. Remember, APIs lower the barrier to do extraordinary things (e.g. machine learning) APIs used to be inward-facing, for assembling apps and SOA All of this has changed with the shift to modern web APIs Mobile app == product. The API is part of that product offering When companies open their capabilities for integration through APIs, amazing things can happen building blocks The value of an API is in the collaboration it creates between the end user and your product or service Your API strategy must focus on this opportunity for collaboration to deliver a great API This is the “modular enterprise” - the shift of strategy to an external view of APIs that enable collaborations between your business and internal, partner, and external developers. Let’s look at 5 key transformations that our business must go through to fully realize this opportunity to build a “modular enterprise”
  • #10 What is it that you do that helps others get things done? This may be at the business level - the products and services you offer This may also be at the technical level - how you enable these products and services to be delivered, including the data that you gather and create
  • #11 This is a screenshot from Zapier, a web-based automation tool It allows you to connect different kinds of APIs together, without writing any code You’ll notice that they don’t even talk about APIs. Instead, they focus on what you want to get done - the goal or outcome That is how we need to think about our APIs: what kind of outcome or collaboration is desired?
  • #12 When we take this kind of approach, we are then able to start mapping our capabilities to the needs of the market, translating them to API capabilities that we then deliver as API-based products to our partners, public developers, and internal developers So, how do we do that? Let me share briefly about the process I use with my clients
  • #13 The first step in the process is to identify all of the activities and desired outcomes This diagram shows an example of an ecommerce distributor site that acts as a broker between suppliers and customers We map out the activities, along with the actors that perform them
  • #14 As we fill out the map, we see logical groupings where common concepts gather We can then name these related activities In this example, we have Order Mgmt, Inventory Mgmt, and Fulfillment Use the boundaries to determine: - what has already been built in-house - what needs to be built in-house - what can be replaced by COTS, third-party APIs
  • #15 These groupings then become potential APIs that will offer the endpoints necessary to make these activities achievable The endpoints can be combined into a single or multiple API products as a result of this effort Focus on desired outcomes, composed of capabilities that are wrapped by APIs
  • #16 Results in resources Captures EVENTS
  • #17 The second transformation we must undergo is to become an API-centric organization Being API-centric means that you look for opportunities to wrap anything your organization has to do as an API endpoint to both drive automation Let’s look at some examples of how businesses have done this
  • #18 The best example of this is Amazon, which pushed for a heavy focus on automation through services Over time, they built APIs around their data center management, resulting in Amazon Web Services What started as a few services has now grown to a portfolio of services that cover all aspects of data center management
  • #19 Watson is changing the way we UNDERSTAND DATA LANGUAGE, SPEECH, VISION, and DATA INSIGHTS Another example is IBM Watson Watson takes the research done in artificial intelligence and offers it as an API for developers Using their APIs, developers can understand data, interpret speech, and apply computer vision to their software
  • #20 Capital One is changing the way we interact with banking and bank-level security They released 3 APIs publically during SXSW in March (2016) Each of the APIs tell a story of how developers can use their capabilities, including two-factor authentication, their rewards program, and prequalifying for credit offers that can help improve your conversion rates
  • #21 Additionally, Capital One is extending their business to the Amazon Echo, allowing their customers to check their balance and monitor recent charges This is all driven through APIs that capture their capabilities and externalizes them into a fresh experience for customers and developers
  • #22 As you have already seen, APIs are not reserved just for software companies Walgreens has taken their corner store and digitized them, essentially wrapping every store with an API
  • #23 The 3rd transformation is to move your organization to an outside-in, iterative approach to innovation
  • #24 APIs can be transformational to your software development processes as well By adopting an outside/in approach, we have the opportunity for the ultimate do-over
  • #25 Our APIs can instead define our target architecture for our business systems, hiding the details that exist today and the transformation that your systems will undergo as you re-architect specific areas of your business Brings HOPE to ADAPT EXISTING products can use this idea to drive toward desired change, applying what I’m about to explain moving forward
  • #26 As an example, assuming we have an existing system today that integrates with our data stores, > We can apply an API in front that hides all of the internal details. > Our external systems can then communicate direcly via the API, without worrying about how the internal systems work > If we design our API to use, but not specifically coupled to our backend systems, we can migrate to our desired target architecture
  • #27 Here is where you may be considering microservices, or perhaps have already started the journey Your APIs may be designed as microservices internally and externalized via API gateways to enforce your security and compliance to externally-facing systems In this diagram, we can see API gateways that deliver the functionality necessary for web and mobile apps, voice apps, and messaging platform integrations These gateways either pass requests directly to a backend microservice, or to composite services that manage calls across several microservice endpoints Let your APIs help you to drive your target architecture
  • #28 The fourth transformation is to focus on the developer experience of your APIs
  • #29 It is important to remember that APIs are the developer’s user interface This is what they interact with as they assemble their applications How easy you make this process will determine how fast they are able to get up-and-running
  • #30 Stripe is well-known in the development community for having a great developer experience They guide the developer through the process of understanding what they do, what capabilities they offer, onboarding, and making your first API call Typically, it can take 5-30 minutes to be up-and-running with their API in a sandbox environment
  • #31 Stripe is able to do this by delivering comprehensive documentation that is tailored toward guiding developers through this process Notice how they walk the developer step-by-step through the primary use case that developers come to Stripe to solve: register a credit card, associating cards to a new or existing customer, charge a credit card, manage plans, and dealing with recurring payments using subscriptions
  • #32 Once developers become comfortable with the core concepts of the Stripe, they then have comprehensive reference documentation that provides an overview, examples, and deep documentation on each of the API endpoints
  • #33 Stripe takes developer experience even further by ensuring that any changes to their API does not break existing API clients Instead, they maintain backwards compatibility. Currently they maintain approx. 65 active versions This is because they know that if they make a breaking change, they will impact the top line of many businesses
  • #34 The final transformation is to structure your teams for delivery Many organizations undergoing digital transformation are feeling the pain of their existing organizational structure Moving to an API-centric organization puts pressure on delivery in ways that organizations may not be prepared for
  • #35 I work with platform and product teams to coach them on including cross-functional delivery teams during the initial API design process This approach helps accelerate learning, as subject matter experts, architects, product, business, technical writers, QA, and developers are able to validate and execute on API delivery in tandem
  • #36 So, where does all of this transformation to an API-centric, modular enterprise taking us? If we consider today’s application architecture, we often associate data with an application This is why it is so difficult to decommission applications inside the enterprise They continue to be required as a result of the data and logic that they provide The services we built from our initial SOA initiatives have helped this some, but they often focus more on system integration rather than capturing business and technical capabilities
  • #37 I truly believe that APIs, when built around capabilities, will become the new apps As a result, applications themselves are simply a means to visualize and interact with them Applications will become more situational, perhaps used for months, weeks, or even days before being disposed of Businesses will continue to build products that deliver functionality in a generic way. These applications will require the kinds of user experience and UI design processes that we use today that attempt to find the right interface that works across a variety of customer personas However, I believe that we will start to see new applications built around specific personas or by individual citizen developers that quickly assemble applications that operate within their personal workflows These personalized apps will be driven by APIs that continue to manage the data and logic, no matter which variation of the application that is integrating with them
  • #38 I want to leave you with this quote from Seth Godin, which captures the essence of what I have been speaking about today <read slide> Apply these transformations and make your APIs the linchpin to something new and amazing