5.1 Un po' di storia
Quando negli anni '90 la Rivoluzione di Internet stava appena cominciando, nessuno sapeva come sviluppare correttamente servizi Internet. Tutte le loro feature diventavano immediatamente disponibili agli utenti, il che rendeva questo approccio molto diverso dallo sviluppo classico del software.
Il più grande motore di ricerca dell'epoca, Yahoo, decise di seguire una nuova strada e adottare l'approccio di Hollywood: i loro manager erano chiamati produttori :) Non sorprende che non abbiano avuto successo.
È interessante. Yahoo è il più grande perdente in termini di acquisizioni di altre aziende. Ai loro tempi, gli fu offerto di comprare sia Google che Facebook diverse volte. Alla fine della loro carriera, Microsoft tentò di acquistarli per 40 miliardi, ma rifiutarono ancora. Dopo alcuni anni, furono acquisiti per soli 3 miliardi. Negli anni '90, al culmine della loro popolarità, Yahoo era valutato a 200 miliardi di dollari, e se avessero comprato Google, il loro valore oggi potrebbe raggiungere diversi trilioni. Non essere come Yahoo.
Dai tempi della Rivoluzione di Internet sono stati testati decine di modi diversi per sviluppare software, e ora la situazione si è stabilizzata. Esistono ruoli standard con responsabilità standard, processi standard e software standard.
Durante il tuo percorso di apprendimento imparerai tutto ciò che devi sapere per lavorare in moderne aziende IT, con strumenti di sviluppo moderni.
5.2 Team di prodotto
Un team di sviluppo tipico è composto da:
-
Persone che decidono
quali funzionalità e feature il prodotto dovrebbe avere
- Product Owner
- Business Analyst
-
Persone che decidono
come sarà il prodotto
- UI Designer
- UX Designer
-
Sviluppatori,
che realizzano tutto questo
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
-
Persone,
che garantiscono il buon funzionamento del prodotto
- QA Automation
- DevOps
Il Product Owner gioca un ruolo chiave nello sviluppo del software, gestendo il prodotto e assicurandosi che il team di sviluppo si concentri sui compiti più importanti. Definisce la visione del prodotto, redige e prioritizza la lista delle attività (backlog), aiutando a garantire che ogni fase dello sviluppo sia il più possibile in linea con gli obiettivi aziendali e le esigenze degli utenti.
L'UX Designer si occupa di creare un'interfaccia utente comoda ed efficace, che include la ricerca delle esigenze degli utenti, lo sviluppo di prototipi e il test delle interfacce. Questo lavoro è mirato a migliorare l'interazione dell'utente con il prodotto, rendendolo il più possibile chiaro e facile da usare.
Gli specialisti DevOps ottimizzano i processi di sviluppo del software e la sua gestione operativa, in modo da accelerare e semplificare l'uscita delle aggiornamenti del prodotto. Il loro lavoro include l'automazione dei test, il deployment e il monitoraggio dei sistemi, nonché la configurazione dell'infrastruttura e l'assicurazione dell'integrazione continua e della distribuzione (CI/CD).
5.3 Team di sviluppo
Lo sviluppo è condotto direttamente dai programmatori. Possono essere grossolanamente divisi in 5 categorie:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
I ruoli e i loro contenuti possono cambiare a seconda della dimensione del team e della specificità del prodotto, ma la situazione è pressappoco questa:
Software Architect: è responsabile della progettazione di un'architettura complessa dei sistemi software. Architetta l'infrastruttura tecnica, definisce la struttura e i metodi di interazione dei vari componenti del prodotto software, garantendone la scalabilità, le prestazioni e la sicurezza.
Backend Developer: è specializzato nello sviluppo della parte server delle applicazioni. I compiti del Backend Developer includono la realizzazione della logica, l'integrazione di database e sistemi di gestione dei dati, l'elaborazione delle richieste degli utenti e il mantenimento dell'interazione con la parte frontend.
Frontend Developer: sviluppa l'interfaccia utente delle applicazioni web. Questo ruolo richiede conoscenze di HTML, CSS e JavaScript, nonché framework e librerie per creare interfacce interattive e reattive che garantiscono una buona interazione utente con il prodotto.
Mobile Developer: si occupa dello sviluppo di applicazioni per dispositivi mobili. Il Mobile Developer crea applicazioni per diversi sistemi operativi (ad esempio, iOS e Android), tenendo conto delle peculiarità della piattaforma, delle prestazioni dei dispositivi e dell'esperienza utente.
DBA (Database Administrator): è responsabile della gestione dei database, assicurandone la disponibilità, la sicurezza e l'ottimizzazione. Il DBA esegue compiti di configurazione, monitoraggio e manutenzione dei database, oltre a sviluppare strategie per il backup e il ripristino dei dati.
GO TO FULL VERSION