È 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:
- 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.
- 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.
- 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.
- 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.