api-centric development in non-api company

26
API-centric development in non-API company Konstantin Yakushev · 10th of October 2017

Upload: nordic-apis

Post on 23-Jan-2018

250 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: API-Centric Development in Non-API Company

API-centric development in non-API company

Konstantin Yakushev · 10th of October 2017

Page 2: API-Centric Development in Non-API Company

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

Page 3: API-Centric Development in Non-API Company

• 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

Page 4: API-Centric Development in Non-API Company

• 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

Page 5: API-Centric Development in Non-API Company
Page 6: API-Centric Development in Non-API Company

API-centric development

Page 7: API-Centric Development in Non-API Company

• 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

Page 8: API-Centric Development in Non-API Company

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

Page 9: API-Centric Development in Non-API Company

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

reviews

Page 10: API-Centric Development in Non-API Company

The bureaucratic flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

reviews

Page 11: API-Centric Development in Non-API Company

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

Page 12: API-Centric Development in Non-API Company

Patch flow

— Hey, there’s an easy fix

Server dev

Page 13: API-Centric Development in Non-API Company

Patch flow

API design

— Hey, there’s a typo

Page 14: API-Centric Development in Non-API Company

Attention to detail

01 02

Swiftness of change

us

Page 15: API-Centric Development in Non-API Company

Excruciating bureaucracy

01 02

Careless agile

us

Page 16: API-Centric Development in Non-API Company

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

1 1+2 2+4

2+4

1+2

1+2

Page 17: API-Centric Development in Non-API Company

Patch flow

1+1

Server dev

Page 18: API-Centric Development in Non-API Company

Flow

Product reqs

API designServer

dev Android dev

Web dev

iOS dev

4 ppl

~ 20 ppl

Page 19: API-Centric Development in Non-API Company

Fast API design

Page 20: API-Centric Development in Non-API Company

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

Page 21: API-Centric Development in Non-API Company

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.

Page 22: API-Centric Development in Non-API Company

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.

Page 23: API-Centric Development in Non-API Company

• 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

Page 24: API-Centric Development in Non-API Company

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

Page 25: API-Centric Development in Non-API Company

[email protected] https://www.linkedin.com/in/kyakushev

Konstantin YakushevMobile Architect

Page 26: API-Centric Development in Non-API Company

Cheers! Konstantin Yakushev

@kojopro