stnafy madcode meetup: making friends with backend developers
TRANSCRIPT
![Page 1: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/1.jpg)
Making friends with backend developers
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 1
![Page 2: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/2.jpg)
Making friends with backend developers
Well, at least don't fight
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 2
![Page 3: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/3.jpg)
Own experience
• Outsource
• Own products
• Working with remote backend team
• Creating backends ourselves
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 3
![Page 4: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/4.jpg)
SituationRemote team:
Mobile team <~> Backend team
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 4
![Page 5: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/5.jpg)
SituationRemote team:
Mobile team <~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ > Backend team
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 5
![Page 6: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/6.jpg)
SituationRemote team:
Mobile team <~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~ ocean ~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ > Backend team
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 6
![Page 7: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/7.jpg)
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
![Page 8: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/8.jpg)
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
![Page 9: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/9.jpg)
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
![Page 10: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/10.jpg)
Problems
• Different goals
• Misunderstanding
• Lack of trust
• Limited experience
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 10
![Page 11: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/11.jpg)
Solutions?
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 11
![Page 12: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/12.jpg)
No solution
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 12
![Page 13: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/13.jpg)
Approaches
• Write documentation
• Write tests
• Write constructive emails
• Explain on examples
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 13
![Page 14: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/14.jpg)
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
![Page 15: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/15.jpg)
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
![Page 16: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/16.jpg)
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
![Page 17: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/17.jpg)
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
![Page 18: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/18.jpg)
Documentation in Google Doc• Loooong & slow
• Not super-structured (as wiki)
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 18
![Page 19: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/19.jpg)
Must have: easy navigationTable of changes
• When
• Who
• What was changed (with links)
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 19
![Page 20: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/20.jpg)
Must have: easy navigationTable of changes
• When
• Who
• What was changed (with links)
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 20
![Page 21: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/21.jpg)
Must have: easy navigationContents
• Quick to search
• Easy to deep into
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 21
![Page 22: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/22.jpg)
Must have: fundamentalsEnvinronment description
• Production server URL
• Dev server URL(s)
• Main accounts
• Version
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 22
![Page 23: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/23.jpg)
Must have: fundamentalsData formats
• JSON/xml
• Response should be valid!
• Encoding
• Timestamp format
• Boolean format
• Float format
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 23
![Page 24: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/24.jpg)
Must have: fundamentalsRequest formats
• GET
• POST (body format)
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 24
![Page 25: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/25.jpg)
Must have: headersHTTP 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
![Page 26: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/26.jpg)
Must have: HTTP codesHTTP codes
• What are valid?
• What app should do?
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 26
![Page 27: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/27.jpg)
Must have: response structureResponse structure
• Inner error code
• Error message to user
• Body
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 27
![Page 28: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/28.jpg)
Must have: communication with userInner 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
![Page 29: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/29.jpg)
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
![Page 30: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/30.jpg)
API tests
• Shared with backend dev
• Public results
• 'Everything is broken' - blame
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 30
![Page 31: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/31.jpg)
API tests. Heliumhttps://github.com/stanfy/helium
• DSL description
• Poke tests
• Scenarios tests
• Object generation
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 31
![Page 32: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/32.jpg)
MiscommunicationBe 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
![Page 33: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/33.jpg)
MiscommunicationProvide full details
• Add headers
• Add timestamps
• Add session IDs
• Mark out details
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 33
![Page 34: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/34.jpg)
Explain
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 34
![Page 35: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/35.jpg)
Explain
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 35
![Page 36: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/36.jpg)
MiscommunicationExplain
• 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
![Page 37: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/37.jpg)
MiscommunicationBe polite
• Thanks for quick changes
• Thanks for deploy
• Thanks for description
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 37
![Page 38: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/38.jpg)
Why we need this?• We deal with real users• We gather feedbacks
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 38
![Page 39: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/39.jpg)
Last slide
Heliumhttps://github.com/stanfy/helium
Google dochttp://bit.ly/1s69iVP
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 39
![Page 40: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/40.jpg)
Questions
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 40
![Page 41: Stnafy Madcode Meetup: Making Friends with Backend Developers](https://reader033.vdocuments.us/reader033/viewer/2022060118/5589d978d8b42a3a1d8b45e7/html5/thumbnails/41.jpg)
Making friends with backend developers. Stanfy MadCode Meetup, 2014. 41