Come gestiamo progetti agili come team distribuito esteso dei clienti

Pubblicato: 2018-12-14

Un recente rapporto di Computereconomics ha rilevato che nel periodo 2018/19 il processo di sviluppo dell'applicazione è emerso come quello che ha visto la massima opportunità di esternalizzazione, con il 56% delle organizzazioni in tutto il mondo che esternalizza i propri requisiti di sviluppo.

Il motivo alla base di questa accresciuta domanda di esternalizzazione delle esigenze di sviluppo di app mobili è stato lo stesso di sempre: costi inferiori rispetto a quelli che dovrebbero essere sborsati se si impiegassero sviluppatori del proprio paese, consentendo una maggiore concentrazione sull'attività principale e una migliore qualità del servizio.

Tuttavia, anche con l'outsourcing che occupa un posto centrale nel settore dello sviluppo di applicazioni, abbiamo riscontrato che ci sono alcune preoccupazioni comuni che i clienti mostrano quando intendono esternalizzare il loro progetto di sviluppo software al di fuori della loro nazione geografica.

In questo articolo, esamineremo come Appinventiv lavora con i clienti offshore utilizzando il ciclo di sviluppo agile distribuito consentendo un processo di lavoro più connesso con un modello di rischio e remunerazione allineato su tutti.

Ma prima di passare alla parte in cui raccontiamo come operiamo come team distribuito dei nostri clienti e lavoriamo così perfettamente da diventare il loro team tecnologico interno esteso, è importante sapere cosa significa anche Distributed Agile Team .

Cosa intendiamo per Team Agile distribuito  

Un team distribuito è un concetto utilizzato per spiegare l'evento in cui due o più team operano in più posizioni geografiche invece di uno spazio ufficio o anche due spazi ufficio in una città.
Il team agile distribuito si affida alle tecnologie digitali per interagire senza problemi e lavorare insieme verso lo stesso obiettivo: consegna tempestiva del progetto.

Perché le aziende investono in un team distribuito per lo sviluppo di app mobili?

Ci sono una serie di ragioni che spingono le aziende a investire in team distribuiti, ragioni che vanno da:

  1. La scarsità di sviluppatori qualificati nella loro nazione
  2. La necessità di testare il mercato prima che venga effettuato un investimento per costruire il team
  3. Per usufruire del vantaggio del team flessibile che può essere aumentato al momento del ridimensionamento dell'app e sciolto al termine della necessità.

Con la definizione e la necessità ora soddisfatte, diamo ora un'occhiata a come il team di Appinventiv lavora come un team distribuito dei nostri clienti. Ma prima di saltare lì, diamo un'occhiata rapidamente a come appare la nostra tipica struttura del team agile distribuito :

Appinventiv Approccio allo Sviluppo Agile Distribuito  

Molte volte otteniamo un progetto in cui l'esigenza ci impone di lavorare in stretta connessione con gli FTE dei clienti. In tali casi, diventa molto importante non lasciare che la distanza in migliaia di miglia si intersechi tra il lavoro e che siamo in grado di apportare modifiche e agire sul processo di sviluppo in tempo reale.

Il modo in cui garantiamo consegne tempestive senza alcun ritardo di comunicazione e incomprensioni è una domanda la cui risposta risiede nella Metodologia Agile Distribuita .

Adatta sia alle aziende su piccola scala che a quelle su larga scala, seguire le best practice agili distribuite è molto utile quando dobbiamo lavorare a fianco di un team che si trova in un'altra posizione geografica con un fuso orario assolutamente diverso.

Diamo un'occhiata al metodo di sviluppo agile distribuito che applichiamo nel nostro processo di sviluppo di app mobili.

Dopo aver presentato tutti i membri del team tra loro e aver collaborato al software di gestione del progetto, inizia il lavoro vero e proprio.

Formuliamo il processo di metodologia giornaliera agile Scrum . Sebbene nel suo senso tradizionale, Scrum richieda una riunione in piedi faccia a faccia della durata di 15 minuti in cui ogni partecipante condivide lo stato dei propri compiti e informa il team dei compiti che assumerà in seguito, è quasi impossibile seguire lo stesso processo quando metà della squadra è seduto in un'altra nazione geografica in un altro fuso orario.

Quello che facciamo per mantenere viva l'essenza dell'interazione faccia a faccia nella mischia, è tenere una videochiamata in un momento determinato, che è adatto a tutti i membri del team che lavorano al progetto. Con l'aiuto della condivisione dello schermo, il nostro Agile Scrum Master gestisce lo sprint backlog virtuale con l'aiuto di strumenti come Trello o Jira, consentendo a ogni membro del team di fornire un aggiornamento su dove è diretto il progetto.

Quello che abbiamo sperimentato è che è molto importante dare a tutti i membri del team l'accesso a una piattaforma di tracciamento delle attività che sia facilmente accessibile e aggiornabile. Sottolineiamo inoltre l'utilizzo di una piattaforma di comunicazione come Skype o Slack per consentire a tutti di condividere aggiornamenti o porre i propri dubbi tra i due periodi di Scrum Time.

Un altro approccio che seguiamo per il processo agile e scrum quotidiano è che per ogni Scrum diverso, nominiamo uno Scrum Master. Quindi, ogni singolo team lavora come un team Scrum separato con uno Scrum Master e un Product Owner – Un processo noto anche come Scrum of Scrum.

In questo, tutti i rappresentanti di Scrum forniscono una risposta alle seguenti domande in Scrum:

  • Il lavoro che il team ha completato dall'ultimo Scrum of Scrums
  • Il team di lavoro sta pianificando di fare prima del prossimo meeting di Scrum of Scrums
  • L'attuale bloccante che la squadra sta affrontando
  • Il bloccante che può portare a un altro team Scrum.

Il metodo consente a tutte le persone principali che lavorano al progetto di interagire direttamente tra loro, cosa che si traduce sempre in dedizione dalla fase di avvio al periodo di lancio. Ciò garantisce una comunicazione aperta, chiara e trasparente tra tutti i team, in cui a tutti viene data voce.
Il processo a parte Scrum of Scrum è lo stesso che seguiamo con la tipica metodologia Agile.
Ma il semplice fatto che la distanza tra il nostro team e il team dei nostri clienti sia miglia di distanza e tuttavia dobbiamo lavorare nel modo più fluido possibile, ha portato una serie di insegnamenti che abbiamo guidato dall'adozione di Distributed Agile. Diamo un'occhiata a quali sono questi apprendimenti -

Gli insegnamenti che abbiamo tratto lavorando sul processo di sviluppo agile distribuito

1. La creazione di un team distribuito riguarda la costruzione di una cultura e non un processo

Ciò che definisce il successo di un progetto che lavora con l' approccio agile per i team distribuiti non dipende da quanto siano qualificati i membri del team, ma da quanto sono in grado di lavorare insieme, dal senso di appartenenza con cui lavorano e, in definitiva, da come strettamente allineati con l'obiettivo del progetto, qualcosa che viene fornito con la cultura e non con una formazione del processo.

2. Solo i progetti SMART riescono

Quando un progetto deve essere completato da un team che non si trova nemmeno nello stesso paese e tanto meno in ufficio, è molto importante che gli obiettivi che hai impostato per il progetto seguano SMART: Specifico, Misurabile, Realizzabile, Realistico e Tempo -incorniciato, concetto al t.

3. Non sono disponibili strumenti di collaborazione online alternativi

Non importa quanto ti costi, dovrai fare affidamento su strumenti di collaborazione online che sono in tempo reale e hanno ritardi minimi o nulli. In termini di finalizzazione delle piattaforme di comunicazione e gestione dei progetti online, non puoi comunque ridurre il tempo. Dovrai assicurarti che siano tecnicamente in grado di gestire le tue esigenze.

Ora che abbiamo visto gli insegnamenti che abbiamo tratto dalla nostra vasta esperienza lavorativa come team distribuito, è tempo di esaminare alcune delle sfide che abbiamo incontrato durante il processo e come le abbiamo risolte per diventare un'app agile distribuita affidabile Società di sviluppo .

Sfide con l'approccio allo sviluppo agile distribuito e come le risolviamo

1. Differenza nella cultura

Solitamente l'approccio allo sviluppo di software agile distribuito richiede di lavorare con team provenienti da background culturali diversi. Questa differenza provoca attrito a causa di valori e figure retoriche diversi.
La nostra soluzione: nei primi giorni lavoriamo a stretto contatto con il team del cliente in modo da abituarci al loro tra le righe e i contesti.

2. Una differenza nei fusi orari

Il punto cruciale della metodologia agile distribuita sono i team che lavorano in diverse nazioni geografiche. In una situazione come questa, il verificarsi di un gap di comunicazione che emerge a causa della differenza di fuso orario è molto comune.
La nostra soluzione: seguiamo il concetto di agile per un team distribuito fino in fondo. Fissiamo un momento in cui le squadre di tutte le nazioni sono presenti e attive. Per ottenere la massima concentrazione e attenzione, chiediamo ai nostri compagni di squadra di cambiare i loro orari d'ufficio il giorno della mischia, in modo che dormano bene e siano attenti.

3. Mancanza di un'idea comune di "quadro d'insieme"

A causa di una differenza di posizione geografica, struttura di lavoro e politiche, può esserci una discrepanza nell'idea del quadro generale, l'obiettivo finale dell'app mobile. Questa differenza potrebbe causare una mancanza di interesse da parte di alcuni membri del team e un maggiore interesse da parte di altri.
La nostra soluzione: un incontro di visione all'inizio dell'inizio del progetto e un promemoria in ogni Scrum, in modo che tutti lavorino verso lo stesso obiettivo.

4. Un'assenza di titolarità del codice

L'assenza di proprietà collettiva del codice significa che nessuno possiede il codice, è di proprietà dell'intera squadra e quindi quando qualcosa va storto, inizia il gioco delle colpe.
La nostra soluzione: applichiamo un sistema di controllo della versione per verificare chi sta lavorando su un codice e quando e l'effetto di esso. In questo modo, c'è completa trasparenza e onestà nell'immagine.

Quindi, questa è la storia di come noi di Appinventiv siamo diventati un team distribuito di clienti che appartengono a tutto il mondo.
Vuoi discutere di come aumentare il livello del tuo sviluppo software agile distribuito? Mettiti in contatto con i nostri strateghi delle app mobili.