Un’azienda dovrebbe strutturare lo sviluppo mobile con un unico team mobile o con team separati per iOS e Android?

È solo caso per caso. Come sviluppatore mobile ha lavorato per aziende tecnologiche per diversi anni, vorrei condividere la mia esperienza su come l'industria forma il team mobile:

  1. Per una piccola app, o un'app nella sua fase iniziale, consiglierei un unico team con ingegneri sia Android che iOS. Questo si basa su due motivi: primo, dobbiamo assicurarci che Android e iOS siano sulla stessa pagina e condividano quante più conoscenze possibili; quindi un team unificato sarebbe vantaggioso per la comunicazione e l'efficienza del lavoro. In secondo luogo, è utile per gli ingegneri conoscere un quadro completo, ed è anche per una leadership da gestire. In questo modo gli ingegneri iOS potrebbero essere di supporto per il lato Android e viceversa. Questo è molto comune per una startup nelle valli di silicio come Coursera.
  2. Per un'app ibrida che utilizza la tecnologia cross platform, non c'è altra scelta che un team mobile unificato. Questo è dovuto al fatto che non c'è differenza tra le versioni iOS e Android. Invece, ogni membro del team sta lavorando su un solo codice base unificato (sarà compilato in due prodotti che condividono quasi esattamente le stesse caratteristiche su iOS/Android) con la stessa tecnologia. L'esempio molto classico è il team di gestione degli annunci di Facebook.
  3. Per un'app di medie dimensioni, ad esempio Zillow, si raccomanda di avere team iOS e Android separati. Questo è dovuto al fatto che ogni piattaforma ha le sue caratteristiche e requisiti unici; quindi due team potrebbero concentrarsi sulla propria parte e assicurarsi di non essere distratti dall'altro team. Tuttavia, di solito due team lavorano a stretto contatto nella stessa organizzazione per garantire la comunicazione e condividere l'esperienza.
  4. Per un'app che vanta grandi dimensioni e funzioni complicate, gli sviluppatori/PM di iOS e Android sono distribuiti tra i team in base alle caratteristiche. Vediamo l'app Uber come esempio - ha team responsabili dei nuovi passeggeri all'imbarco, delle funzioni Uber X e pool, dell'ottimizzazione dell'algoritmo del percorso, della sicurezza della corsa, del pagamento e della transazione, ecc. Tutti questi team hanno ingegneri iOS/Android che lavorano su parti correlate. Tuttavia, c'è sempre un team di architettura mobile che ha solo sviluppatori iOS/Android per gestire le questioni infrastrutturali di base dell'app.

In generale, dipende da quale livello di esperienza utente si vuole fornire: più nativa/complicata è la vostra app, più team separati ci saranno.