api-centric development in non-api company
TRANSCRIPT
![Page 1: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/1.jpg)
API-centric development in non-API company
Konstantin Yakushev · 10th of October 2017
![Page 2: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/2.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/3.jpg)
• 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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/4.jpg)
• 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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/5.jpg)
![Page 6: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/6.jpg)
API-centric development
![Page 7: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/7.jpg)
• 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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/8.jpg)
Flow
Product reqs
API designServer
dev Android dev
Web dev
iOS dev
![Page 9: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/9.jpg)
Flow
Product reqs
API designServer
dev Android dev
Web dev
iOS dev
reviews
![Page 10: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/10.jpg)
The bureaucratic flow
Product reqs
API designServer
dev Android dev
Web dev
iOS dev
reviews
![Page 11: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/11.jpg)
Flow
Product reqs
API designServer
dev Android dev
Web dev
iOS dev
![Page 12: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/12.jpg)
Patch flow
— Hey, there’s an easy fix
Server dev
![Page 13: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/13.jpg)
Patch flow
API design
— Hey, there’s a typo
![Page 14: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/14.jpg)
Attention to detail
01 02
Swiftness of change
us
![Page 15: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/15.jpg)
Excruciating bureaucracy
01 02
Careless agile
us
![Page 16: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/16.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/17.jpg)
Patch flow
1+1
Server dev
![Page 18: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/18.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/19.jpg)
Fast API design
![Page 20: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/20.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/21.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/22.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/23.jpg)
• 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](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/24.jpg)
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 26: API-Centric Development in Non-API Company](https://reader030.vdocument.in/reader030/viewer/2022021507/5a673c007f8b9a453d8b544d/html5/thumbnails/26.jpg)
Cheers! Konstantin Yakushev
@kojopro