Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Stanfy MadCode Meetup#1: Making friends with ba...

vixentael
November 06, 2014

Stanfy MadCode Meetup#1: Making friends with backend developers

Full post
http://stanfy.com/blog/madcode-meetup1/

The first MadCode Meetup was dedicated to effective interactions between mobile and backend developers to find the ways of productive communications with the latter not spending their time on finding who made errors but rather building great products together.

Read more:
http://stanfy.com/blog/madcode-meetup1/

vixentael

November 06, 2014
Tweet

More Decks by vixentael

Other Decks in Programming

Transcript

  1. Making friends with backend developers Well, at least don't fight

    Making friends with backend developers. Stanfy MadCode Meetup, 2014. 2
  2. Own experience • Outsource • Own products • Working with

    remote backend team • Creating backends ourselves Making friends with backend developers. Stanfy MadCode Meetup, 2014. 3
  3. Situation Remote team: Mobile team <~> Backend team Making friends

    with backend developers. Stanfy MadCode Meetup, 2014. 4
  4. Situation Remote team: Mobile team <~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~

    ~~~~~~~~ ~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ > Backend team Making friends with backend developers. Stanfy MadCode Meetup, 2014. 5
  5. Situation Remote team: Mobile team <~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~

    ~~~~~~~~ ~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~ ocean ~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ > Backend team Making friends with backend developers. Stanfy MadCode Meetup, 2014. 6
  6. What we want from backend? • Use less requests •

    Send only needed data in suitable format • Low latency • Handle heavy computations Making friends with backend developers. Stanfy MadCode Meetup, 2014. 7
  7. What we do? • Hey, let's change this request •

    Hey, let's add this field • Hey, let's get data in that format • Hey, let's have public URL to pics • Hey, let's ... Making friends with backend developers. Stanfy MadCode Meetup, 2014. 8
  8. What we usually hear from backend devs? • No, I

    need yet another table to join • No, it's not simple to add that field • No, calculate it on your side • No, our library can't do that • No, I'll deploy these changes in next sprint Making friends with backend developers. Stanfy MadCode Meetup, 2014. 9
  9. Problems • Different goals • Misunderstanding • Lack of trust

    • Limited experience Making friends with backend developers. Stanfy MadCode Meetup, 2014. 10
  10. Approaches • Write documentation • Write tests • Write constructive

    emails • Explain on examples Making friends with backend developers. Stanfy MadCode Meetup, 2014. 13
  11. API documentation • Need time to write • Need time

    to update • Need time to search • Useless if outdated Making friends with backend developers. Stanfy MadCode Meetup, 2014. 14
  12. API documentation • 'Put everything in one place' (not in

    emails, not in head) • User friendly • Access anywhere at any time • Determined • Always updated Making friends with backend developers. Stanfy MadCode Meetup, 2014. 15
  13. Creating API documentation • Auto generated docs from code •

    API tests • Wiki • Google Doc • Emails/skype history/developer's head Making friends with backend developers. Stanfy MadCode Meetup, 2014. 16
  14. Documentation in Google Doc • Easy to create (access anywhere)

    • Easy to share • Easy to update (ACL) Making friends with backend developers. Stanfy MadCode Meetup, 2014. 17
  15. Documentation in Google Doc • Loooong & slow • Not

    super-structured (as wiki) Making friends with backend developers. Stanfy MadCode Meetup, 2014. 18
  16. Must have: easy navigation Table of changes • When •

    Who • What was changed (with links) Making friends with backend developers. Stanfy MadCode Meetup, 2014. 19
  17. Must have: easy navigation Table of changes • When •

    Who • What was changed (with links) Making friends with backend developers. Stanfy MadCode Meetup, 2014. 20
  18. Must have: easy navigation Contents • Quick to search •

    Easy to deep into Making friends with backend developers. Stanfy MadCode Meetup, 2014. 21
  19. Must have: fundamentals Envinronment description • Production server URL •

    Dev server URL(s) • Main accounts • Version Making friends with backend developers. Stanfy MadCode Meetup, 2014. 22
  20. Must have: fundamentals Data formats • JSON/xml • Response should

    be valid! • Encoding • Timestamp format • Boolean format • Float format Making friends with backend developers. Stanfy MadCode Meetup, 2014. 23
  21. Must have: fundamentals Request formats • GET • POST (body

    format) Making friends with backend developers. Stanfy MadCode Meetup, 2014. 24
  22. Must have: headers HTTP headers for Request • Accept content-type

    • Accept encoding • Cookie • Device • App version • Image scaling • Session handling Making friends with backend developers. Stanfy MadCode Meetup, 2014. 25
  23. Must have: HTTP codes HTTP codes • What are valid?

    • What app should do? Making friends with backend developers. Stanfy MadCode Meetup, 2014. 26
  24. Must have: response structure Response structure • Inner error code

    • Error message to user • Body Making friends with backend developers. Stanfy MadCode Meetup, 2014. 27
  25. Must have: communication with user Inner error codes + message

    • Ok • Session is expired • DB error • Synchonization needed • Just show message to user Making friends with backend developers. Stanfy MadCode Meetup, 2014. 28
  26. Must have in API documentation • Easy navigation and search:

    • Table of changes • Contents • Fundamentals • Envinronment description • Data formats • Request/response structure Making friends with backend developers. Stanfy MadCode Meetup, 2014. 29
  27. API tests • Shared with backend dev • Public results

    • 'Everything is broken' - blame Making friends with backend developers. Stanfy MadCode Meetup, 2014. 30
  28. API tests. Helium https://github.com/stanfy/helium • DSL description • Poke tests

    • Scenarios tests • Object generation Making friends with backend developers. Stanfy MadCode Meetup, 2014. 31
  29. Miscommunication Be definite • Discuss smth in emails/chat -> add

    to API doc • Add manager to email thread Making friends with backend developers. Stanfy MadCode Meetup, 2014. 32
  30. Miscommunication Provide full details • Add headers • Add timestamps

    • Add session IDs • Mark out details Making friends with backend developers. Stanfy MadCode Meetup, 2014. 33
  31. Miscommunication Explain • Backend developer is not iPhone/Android user •

    Have no idea how data will shown • Design driven vs DB-data driven Making friends with backend developers. Stanfy MadCode Meetup, 2014. 36
  32. Miscommunication Be polite • Thanks for quick changes • Thanks

    for deploy • Thanks for description Making friends with backend developers. Stanfy MadCode Meetup, 2014. 37
  33. Why we need this? • We deal with real users

    • We gather feedbacks Making friends with backend developers. Stanfy MadCode Meetup, 2014. 38