Ogni settimana riceviamo numerose richieste di funzionalità. Facciamo del nostro meglio per prendere in considerazione il feedback che riceviamo dai nostri clienti quando realizziamo nuove cose.
Anche se è facile vedere le nuove funzionalità, queste non riflettono immediatamente gran parte del nostro importante lavoro di sviluppo. Così, il nostro gufo del marketing Priscila ha intervistato uno dei nostri sviluppatori back-end, Joey, sull'importanza della manutenzione e su come gli sviluppatori si alternano tra diversi tipi di lavoro.
Priscila: Grazie per esserti unito a me per questa intervista, Joey! Spero che riusciremo a spiegare ai nostri clienti e lettori in cosa consiste il lavoro di manutenzione che svolgiamo per Easy LMS e perché è necessario. Potresti iniziare spiegando che tipo di lavoro facciamo per la manutenzione di Easy LMS?
Joey: È un piacere. Cercherò di spiegare le cose senza andare troppo sul tecnico. Abbiamo due tipi di lavori di manutenzione. Il primo consiste nel risolvere i bug che appaiono nel sistema e che vengono segnalati dai clienti. L'altro è la correzione di cose che troviamo noi stessi e che richiedono miglioramenti, quindi lavoriamo per migliorarle.
Priscila: Giusto. Quindi, potresti spiegare come funziona? Lavora su richiesta o pianifica in anticipo i miglioramenti da apportare?
Joey: Beh, di solito lavoriamo in cicli pianificati di tre settimane. La richiesta di lavoro proviene dal Product Owner, che tiene un elenco di miglioramenti raccolti in base al feedback dei clienti, delle persone dell'azienda e delle idee che ci vengono in mente da soli.
In precedenza, lavoravamo a progetti di sviluppo di funzionalità regolari in cui si sovrapponevano tutti i tipi di miglioramenti e di manutenzione. Questo significava che venivamo interrotti dalla correzione dei bug e dovevamo allontanarci dalle nuove funzionalità che stavamo costruendo.
Di recente abbiamo provato qualcosa di nuovo. Abbiamo aggiunto un ciclo di miglioramento al nostro ciclo di sviluppo delle funzionalità. Quindi, ora abbiamo due team di sviluppo che lavorano a Easy LMS: uno che si occupa dello sviluppo regolare delle funzionalità e l'altro che si occupa dei miglioramenti. Questi team si scambiano i compiti ogni tre settimane.
Il team dedicato ai miglioramenti lavora su un elenco di miglioramenti, compresi i bug, scegliendo l'elemento a più alta priorità da quell'elenco. Poi, una volta completata la storia [di sviluppo], valutiamo quale sia il prossimo elemento ad alta priorità. In questo modo, lavoriamo attraverso l'elenco durante il ciclo di tre settimane.
Penso che tutti siano soddisfatti di come sta andando. Stiamo cercando di trovare il perfetto equilibrio tra la correzione dei bug e il miglioramento delle cose non correlate ai bug.
Priscila: Ok. Sembra proprio un modo migliore di lavorare! Perché lavorare sulla manutenzione è importante quanto costruire nuove funzionalità?
Joey: Beh, è come una casa. Se costruisci una casa e non la mantieni mai, inizierai ad avere molti problemi. Lo stesso vale per il software. Se alcune parti del sistema diventano obsolete e non vengono mantenute, col tempo potrebbero causare problemi.
Inoltre, il nostro modo di lavorare cambia regolarmente. Dobbiamo mantenere il sistema aggiornato al modo in cui lavoriamo ora. Ci vorrebbe più tempo per creare nuove funzionalità se dovessimo toccare una parte del sistema non mantenuta.
Se non manteniamo il sistema, a lungo andare funzioneranno meno cose.
E la necessità di manutenzione continuerà a crescere. In breve, se non risolviamo i bug e non effettuiamo la manutenzione del sistema, si creeranno altri bug e a lungo andare funzioneranno meno cose.
Priscila: Va bene. Quindi, i "miglioramenti" sono caratteristiche o correzioni?
Joey: Questa è una zona grigia. Chiamiamo 'miglioramenti' le cose che si aggiungono a una funzionalità esistente. Non si tratta di una funzionalità nuova di zecca. Ad esempio, di recente abbiamo lanciato un miglioramento per la funzione Gruppi dell'Accademia. Ora è possibile aggiungere un'immagine di copertina come immagine di descrizione a ogni gruppo dell'Academy. Io lo chiamo miglioramento, ma si potrebbe anche chiamare funzionalità. È difficile fare una distinzione. Ma direi che i miglioramenti sono di solito le piccole modifiche che apportiamo alle funzioni attuali.
Priscila: Quale tipo di lavoro preferisci, lo sviluppo regolare di funzionalità o il lavoro nel team di miglioramento?
Joey: Direi entrambe le cose. Mi piace molto passare ad altri progetti dopo un po'. Non è che mi annoio, ma è bello cambiare e lavorare su cose diverse.
Priscila: Ok. Si finisce tutto ciò che si inizia a costruire nel ciclo di tre settimane? Oppure lo lasciate per il team successivo o per un altro ciclo?
Joey: Dovremmo finire tutto ciò che iniziamo a costruire nello stesso ciclo. È molto facile creare qualcosa di grande e non finirlo mai. Ma se siamo davvero concentrati sul miglioramento del prodotto, lo portiamo a termine. Qualsiasi cosa facciamo, anche se alla fine non ci piace, viene completata in tre settimane.
Non sappiamo mai esattamente quanto tempo ci vorrà per costruire o migliorare qualcosa. Quindi, l'intero progetto potrebbe non essere terminato in tre settimane, ma avremo qualcosa che funziona e che aggiunge valore al sistema.
Priscila: Questo ha senso. Credo che alla fine si provi anche una sensazione di realizzazione. Ha qualche esempio di lavori recenti che ha fatto per migliorare o mantenere?
Joey: La maggior parte della nostra manutenzione non riguarda direttamente i clienti. Tuttavia, molte delle nostre attività di manutenzione ci consentono di creare funzionalità future. Ad esempio, abbiamo appena rilasciato un miglioramento che consente agli amministratori di riordinare i gruppi nell'Accademia. Può sembrare una piccola modifica per l'amministratore, ma in realtà abbiamo dovuto ricostruire gran parte della pagina per renderla possibile.
Abbiamo migliorato anche il sistema di esportazione. Gli amministratori noteranno solo che ora possono esportare grandi quantità di dati in una sola volta. Ma abbiamo dovuto costruire un sistema completamente nuovo che potesse supportare queste esportazioni e lavorare più velocemente.
Molti interventi di manutenzione riguardano il nostro ambiente di sviluppo e il miglioramento delle modalità di creazione di nuove funzionalità, che possono consistere nell'aggiornamento o nella modifica del codice. Tuttavia, può rendere più facile per i nuovi sviluppatori lavorare sul nostro codice. Rende anche più facile testare il sistema prima di distribuire qualcosa online. In questo modo si evita che i bug compaiano e infastidiscano i clienti?
Priscila: È una buona cosa. Hai visto l'impatto di questa cosa?
Joey: Sicuramente. Qualsiasi problema riscontrato durante i test non viene messo online. Abbiamo automatizzato molti dei test. Abbiamo insegnato a più persone nell'azienda come eseguire correttamente i test e abbiamo coinvolto più persone nell'intero processo; in questo modo, possiamo individuare piccoli bug che i clienti non notano nemmeno.
Priscila: Quali sono i piani per il futuro in termini di manutenzione?
Joey: È la continuazione di ciò che stiamo facendo ora. Come ho detto, l'idea di avere un team dedicato ai miglioramenti è nuova e ne siamo davvero soddisfatti. Come ha spiegato Thomas, stiamo anche spostando sempre più parti del sistema verso un'architettura a microservizi.
C'è sempre spazio per migliorare il sistema e il modo in cui lavoriamo. Tuttavia, sono molto soddisfatto dei miglioramenti apportati finora, anche per quanto riguarda i processi e il modo di lavorare in generale.
Priscila: Da quello che ho potuto capire e dalla mia prospettiva non tecnica, sono d'accordo con te! Grazie per aver partecipato all'intervista e attendiamo ulteriori miglioramenti.
Joey: Non c'è di che. Lo sono anch'io!