Sviluppo software: quali sono i ruoli chiave nel team?
Pubblicato: 2021-01-29Molte persone pensano che per creare un'app sia sufficiente assumere un singolo sviluppatore. Tuttavia, man mano che la complessità aumenta e il tempo di sviluppo aumenta, diventa chiaro che qualcuno deve svolgere altri ruoli, anche se non sono chiaramente definiti.
Lo sviluppo del software viene effettuato nell'ambito di progetti. I tempi, il risultato desiderato e il budget sono chiaramente delineati. Ogni progetto include anche risorse umane, ed è fondamentale selezionare correttamente i partecipanti perché questo influenza il budget richiesto. Quindi, proviamo a capire chi è coinvolto nello sviluppo del progetto e quali compiti ha.
- 10 ruoli chiave nel team di sviluppo software
- 1. Responsabile del progetto
- 2. Analista
- 3. Architetto
- 4. Sviluppatore principale (capo squadra)
- 5. Sviluppatore
- 6. Specialista QA/Tester
- 7. Progettista
- 8. Amministratore di sistema/Responsabile DevOps
- 9. Capo del dipartimento di sviluppo
- 10. Cliente/proprietario del prodotto
- Tipica combinazione di ruoli
- Insomma
10 ruoli chiave nel team di sviluppo software

"Quando si analizzano i ruoli del progetto, è necessario capire che un tipico dipendente di un'azienda può ricoprire più ruoli contemporaneamente e anche partecipare a diversi progetti con ruoli diversi". – come accennato da Sebastian Streiffert, chief marketing officer di Beetroot, in uno dei suoi recenti articoli.
Parleremo più avanti della combinazione di ruoli. Prestiamo ora attenzione ai principali ruoli e posizioni di un team di progetto di sviluppo software:
Consigliato per te: come stanno sopravvivendo le aziende di software e IT nella pandemia di COVID-19?
1. Responsabile del progetto

Questa persona imposta un piano di progetto e si assume la responsabilità della sua attuazione. Riceve parti del piano dallo staff, le riunisce e ne verifica la coerenza. PM ha il compito di redigere rapporti per i membri del team e consegnare il risultato in tempo e entro un certo budget. Inoltre, svolgono i seguenti compiti:
- Condurre una revisione regolare (settimanale) del piano con il cliente e il team di progetto;
- Adattare il piano in base alle richieste del cliente;
- Scrivere rapporti settimanali sul progetto;
- Informare il cliente e il personale sui problemi e cercare di risolverli entro un budget, ecc.
Fondamentalmente, il PM è responsabile del KPI del progetto. Secondo le statistiche, solo pochi progetti di sviluppo vengono completati in tempo con il KPI stabilito e nel budget iniziale. Se qualcosa va storto, il PM alla fine si assume la responsabilità del rinvio del rilascio del prodotto, dei bug degli aggiornamenti, ecc.

2. Analista

L'analista è responsabile della stesura e dell'aggiornamento dei requisiti. In particolare, è il principale negoziatore con il cliente sui requisiti del progetto. Questa persona scrive raccomandazioni per il progetto, le rivede con le parti interessate, gli architetti e i principali sviluppatori. Inoltre, un analista esamina i piani di test, spiega le difficoltà ai tester e può anche prendere parte al test del codice. Questa persona può anche partecipare alla revisione dello sviluppo di livello superiore.
Progetti complessi possono richiedere un gruppo di analisti e un leader, responsabile del team.
3. Architetto

Questa persona sviluppa l'architettura per il progetto. Per grandi progetti, un architetto dovrebbe essere un impiegato a tempo pieno. Questo membro del team è responsabile dei documenti di alto livello (HLD), dell'allineamento dell'architettura con i requisiti tecnici del cliente. Lui/lei struttura il progetto, distribuisce i compiti tra gli sviluppatori e li aiuta con problemi difficili.
4. Sviluppatore principale (capo squadra)

Nei piccoli progetti senza architetti dedicati, i principali sviluppatori sono responsabili di tutte le attività di sviluppo. Nominano gli sviluppatori, rivedono il piano e stabiliscono le scadenze per loro. Inoltre, svolgono i seguenti compiti:
- Accetta il lavoro degli sviluppatori ed esegui la revisione del codice;
- Unisci i rami nel repository e assicurati che solo il codice testato e pertinente entri nel ramo principale;
- Scrivere documenti di progetto;
- Formare i dipendenti e aiutarli con problemi difficili;
- Scrivi codice.

5. Sviluppatore

Questa persona scrive il codice per il progetto. Legge i requisiti, analizza aree complesse con un analista, accetta compiti di sviluppo da un responsabile del team o da un architetto e, se necessario, fornisce feedback. Le loro responsabilità dirette sono:
- Sviluppo di componenti di codice e unit test;
- Prove in esecuzione;
- Verifica se la funzionalità implementata soddisfa i requisiti;
- Ricevere biglietti dai tester e correggere gli errori;
- Partecipare a test in casi difficili.
Senza codice scritto e compilato, non ci sarà alcuna app. Ecco perché gli sviluppatori non possono essere esclusi, anche se alcune app vengono create in un semplice costruttore visivo, che è anche una sorta di programmazione.
Ti potrebbe piacere: Futuro dell'ingegneria del software | Tendenze, previsioni per il 2021 e oltre.
6. Specialista QA/Tester

Queste sono le persone che controllano se l'app funziona correttamente. Inoltre, correttamente non significa sempre facile da usare. Il tester può scrivere una nota di usabilità, ma la sua preoccupazione principale è assicurarsi che l'app funzioni secondo i requisiti e le specifiche. Possono testare le app sia manualmente che utilizzando gli autotest.

Come per gli analisti, i tester possono essere assegnati dal sottosistema del progetto o dai metodi di test. Se c'è più di un tester, uno di loro dovrebbe essere nominato caposquadra. Se non ci sono tester dedicati nello staff del progetto, le loro funzioni sono generalmente delegate agli sviluppatori. Allo stesso tempo, si ritiene che gli sviluppatori non possano testare correttamente i propri codici e quindi il test incrociato è un'opzione migliore.

7. Progettista

Questa è una persona che determina l'aspetto e il funzionamento dell'app. Il designer deve pensare alla posizione degli elementi, agli schemi di movimento, alle animazioni, ecc. Le app complesse possono richiedere più designer. Ad esempio, un designer può disegnare l'interfaccia, mentre l'altro può riflettere sull'intero concetto di interazione con l'utente. Alcune società di sviluppo software non hanno designer, quindi gli sviluppatori potrebbero assumere questo ruolo per progetti semplici. I compiti principali del progettista sono i seguenti:
- Sviluppo di ScreenFlow;
- Prototipazione dello schermo;
- Ottimizzazione dell'interazione dell'utente (fornire consigli);
- Consultare il team di sviluppo.
A volte un designer insieme ai programmatori è responsabile di alcuni errori nell'applicazione. Ad esempio, potrebbe essere abbastanza difficile implementare le idee progettuali del cliente, quindi aumenta la probabilità di commettere errori. Di conseguenza, tutti i fallimenti sono associati al lavoro del progettista.
8. Amministratore di sistema/Responsabile DevOps

Questo membro del team è responsabile della fornitura continua e del flusso di lavoro di integrazione continua, dell'organizzazione dell'interazione tra i sistemi, della distribuzione, dell'identificazione dei problemi durante il test. Partecipano alla pianificazione e al lavoro sulla migrazione e sincronizzazione dei dati. Inoltre, svolgono i seguenti compiti:
- Scrivere una guida per la distribuzione e l'amministrazione del sistema;
- Interagire con i clienti;
- Comporre e strutturare l'hardware del sistema;
- Installa VPN e gestisci i firewall;
- Distribuisci il sistema senza programmatori.

9. Capo del dipartimento di sviluppo

Questa persona partecipa alla formazione dei team di progetto. Sono responsabili delle qualifiche dei dipendenti, quindi il loro compito è organizzare la formazione, monitorare la crescita della carriera dei dipendenti. Inoltre, sono anche responsabili del comfort sul posto di lavoro.
10. Cliente/proprietario del prodotto

Questo è il membro principale del team che determina l'intero corso della creazione del prodotto. Questa persona decide cosa deve essere fatto e valuta se l'implementazione è in linea con il concept del prodotto oppure no. In particolare, un product owner responsabile svolge le seguenti attività:
- Definisce il concept del prodotto;
- Crea una strategia di marketing;
- Effettua l'analisi della concorrenza;
- Esegue il controllo dello stato di sviluppo;
- Scelta della strategia di prodotto e modalità di monetizzazione;
- Genera le idee di miglioramento delle prestazioni aziendali;
- Valuta la qualità del prodotto.
Quindi, l'obiettivo principale di questa persona è assicurarsi che il prodotto corrisponda agli obiettivi aziendali.
Tipica combinazione di ruoli

A volte, quando discutono dei risultati, i clienti affermano che gli sviluppatori hanno fatto qualcosa di sbagliato. Una situazione del genere può verificarsi se alcuni membri dello staff del progetto devono svolgere più ruoli contemporaneamente. Questo problema di solito sorge quando mancano le risorse finanziarie per assumere un gruppo di sviluppatori. A volte, la combinazione di ruoli può portare a risultati positivi. Ad esempio, sono possibili le seguenti opzioni:
- Analista + tester: suona bene, ma una persona del genere ti costerà una fortuna;
- Project manager + analista: tale opzione è accettabile in un piccolo progetto;
- Architetto + sviluppatore leader: questo va bene nei piccoli progetti;
- Project manager + sviluppatore leader: per progetti più piccoli con un team esperto di programmatori e tester, puoi provare anche questa opzione;
- Sviluppatore + designer – possibile in caso di un abile team di sviluppatori.
Nel frattempo, ci sono anche ruoli di squadra che non dovrebbero essere combinati in un progetto di sviluppo software, se possibile:
- Sviluppatore + tester – non consentito.
- Architetto + Analista: a prima vista sembra accettabile, ma nel complesso non è un'opzione. Questi due ruoli sono un po' antagonistici.
Come puoi vedere, mentre alcune posizioni possono essere unite, altre creeranno una miscela esplosiva che danneggerà il risultato finale. Cerca di evitare di combinare i ruoli o assicurati di investire abbastanza tempo nello sviluppo del progetto.
Potrebbero piacerti anche: Suggerimenti per lo sviluppo autonomo come sviluppatore di software remoto in COVID-19.
Insomma

Ora sai chi è chi nel team di sviluppo del progetto. Se pensi di sviluppare un'app per Android o iOS, saprai che tipo di persone devi trovare. Nel frattempo, i ruoli chiave possono variare in modo significativo a seconda del tipo di progetto. Se vuoi creare il software da zero, hai bisogno di un team diverso da quelli che implementano un sistema ERP o installano un'app di BI per il top management del cliente.
Se assumi il tuo team, devi mantenere uno staff completo di dipendenti, anche quando non sono coinvolti o non sono pienamente coinvolti nei tuoi progetti attuali. In realtà, la maggior parte dei progetti non richiede un progettista, un amministratore di sistema o un tester a tempo pieno. Pertanto, assumere un team di sviluppo dedicato o affidare questo lavoro all'outsourcing può essere una buona idea.
Quali ruoli di sviluppo software sono stati utili per il tuo progetto e per il tuo team? Condividi la tua esperienza con noi nei commenti.