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

This is how we iOS at ShopKeep

Avatar for Stepan Hruda Stepan Hruda
September 10, 2015

This is how we iOS at ShopKeep

A behind the curtain look at the iOS development workflow at ShopKeep.

Avatar for Stepan Hruda

Stepan Hruda

September 10, 2015

More Decks by Stepan Hruda

Other Decks in Technology

Transcript

  1. We don’t know what it is, we don’t know what

    it can be, we don’t know what it will be. We know that it’s cool. -- The Social Network
  2. We don’t know what it is, we don’t know what

    it can be, we don’t know what it will be. We know that it’s cool. -- The Social Network
  3. · we know what it is and people pay us

    money · a bug can cost people way more money App Store review process isn't exactly helpful · we don't have "a mobile app", it's a flagship we do talk to a backend, but it's a separate product
  4. · roughly following Spotify's model squads, tribes, guilds, chapters ·

    daily standup, planning and retro every 2 weeks
  5. · prescreen is it reasonable to spend time on this

    candidate? ↓ · code sample anonymous, pull request review as all other code ↓ · 3 rounds of interviews anyone can veto
  6. internal hiring · you already know they are a cultural

    fit · developers, QA, data science, product all have hires from sales/customer care · 2 iOS devs originally hired for Rails
  7. PR review · IMO #1 source of keeping our code

    quality up · o!en multiple reviewers no explicit assignment · immediate x non-blocking x chore
  8. · CI on every PR, nothing gets merged without it

    5000+ unit test cases, 1500+ UI test cases (KIF) · I'd like to move to monorepo every separate repo should be a conscious decision · almost moved Core Data → YapDatabase it'll be a beautiful day when we actually do still not an optimal solution though
  9. · bus stop schedule 2015-07-17, 2015-08-28, 2015-10-09 release manager rotates

    between iOS engineers · current bus stop = beta, next bus stop = alpha nightly builds · frequent forward merges between bus stops
  10. · same Jenkins for CI, betas, releases no one builds

    any production builds on their machine we used Travis for about a year, but it "couldn't handle our scale" · slaves spinning up VMs – Mac Pros + Parallels iOS DevOps definitely a thing, would hire someone for this · HockeyApp > TestFlight so far migrations!
  11. · manual testing dedicated team (we share them, but iOS

    has a lot of priority) a lot of features hard/expensive to automate · independent Appium (rspec) test suite · o!en multiple public betas before a release dedicated beta program manager
  12. · to uncover deeper QA problems, you need senior iOS

    developers memory leaks, performance issues...
  13. · previously Mixpanel: gets expensive · Amazon Mobile Analytics →

    Looker open-source SDK, cheap, cross-reference with any other data
  14. · weekly lunch & learn · monthly Code Smash =

    5% time · chapters architecture, Ruby, security... · mentoring & 1-on-1s mentor may or may not be your manager · pairing encouraged · PR review "asynchronous pairing"