api-centric development in non-api company

Post on 23-Jan-2018

250 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

API-centric development in non-API company

Konstantin Yakushev · 10th of October 2017

KonstantinYakushev

Mobile Architect in Badoo since 2015.

Speak at every Platform Summit.

Looking for something interesting outside of

the hype.

Hello, my name is

@kojopro

• Using methods for creating APIs for creating non-API product

• Separating API and coding responsibilities (how and why)

• Why API is bureaucracy and how is it good

What you’ll learn

• How do we combine careless agile with excruciating bureaucracy

• How many Badoo employees it takes to change a lightbulb

• What our engineers do to avoid thinking

What you’ll learn

API-centric development

• Dedicated API designers

• API done before development

• Docs ready before development

• Historical knowledge concentrated in the form of API documentation and managed by API architects

API-centricdevelopment

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

reviews

The bureaucratic flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

reviews

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

Patch flow

— Hey, there’s an easy fix

Server dev

Patch flow

API design

— Hey, there’s a typo

Attention to detail

01 02

Swiftness of change

us

Excruciating bureaucracy

01 02

Careless agile

us

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

1 1+2 2+4

2+4

1+2

1+2

Patch flow

1+1

Server dev

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

4 ppl

~ 20 ppl

Fast API design

Protobuf RPC-based binary protobuf API.

Has its own language for

specifying messages. Owr own

“framework”.

Autogeneration Protobuf specifications are

compiled into backend and

frontend classes with integrated

documentation.

Sphinx doc Documentation in human-

targeted prose is written in

restructured text and compiled

by sphinx with custom plugins.

Tech stack

Documentation template

1. History Who and when added this particular document

under what jira ticket based on what.

2. Indicating support See versioning talk last year. We need some

way to tell the backend that this new feature

is supported on this app.

Documentation template

3. Requesting data How does the request to the server look like

(highlights)

4. Response sample Shows the screenshot and response

correlated with it. Note that it’s specifically

not formal.

• backend developer half involved

• a particular backend developer becomes responsible

• writes more documentation and less code

• look for people interested in this in the company

• designate an API designer

• optionally expand the team

Adding a separate API person

1Have a separate team that

manages intra-team stuff and

communications.

Try to grow that team in-house

based on you existing

developers.

Do the important large stuff the

bureaucratic way and less

important stuff the agile way

2 3

Takeaways

kojo@kojo.ru https://www.linkedin.com/in/kyakushev

Konstantin YakushevMobile Architect

Cheers! Konstantin Yakushev

@kojopro

top related