Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica # Ingegneria del software

Misurare gli sprechi nello sviluppo software

Questo studio affronta gli sprechi nello sviluppo software e propone strategie per misurarli.

Dhiraj SM Varanasi, Divij D, Sai Anirudh Karre, Y Raghu Reddy

― 8 leggere min


Rifiuti nello Sviluppo Rifiuti nello Sviluppo Software migliorare l'efficienza. Analizzare e quantificare i rifiuti per
Indice

Lo sviluppo software riguarda principalmente la creazione di software che funzioni bene, soddisfi le esigenze degli utenti e sia facile da mantenere. Tuttavia, durante il processo di sviluppo, ci sono attività o passaggi che in realtà non aiutano a migliorare il prodotto finale. Queste attività sprecano tempo, fatica e risorse. Questo spreco può avvenire per vari motivi, come costruire funzionalità sbagliate, comunicazione scarsa o processi inefficienti. Se non affrontato, il spreco può portare a problemi come produttività rallentata e scadenze mancate.

Ridurre questo spreco è fondamentale per migliorare il modo in cui lavorano i team, ridurre i costi e garantire che i progetti finiscano in tempo. Ad esempio, in un grande progetto bancario dove più team lavorano su parti diverse, se un team crea una funzionalità che non soddisfa le esigenze del progetto, può causare molti problemi. Quella funzionalità potrebbe dover essere riscritta, sprecando tempo e ritardando l'intero progetto. Pertanto, identificare e rimuovere lo spreco nello sviluppo software è molto importante per una consegna di successo.

Il Riserbo del Software Open-Source

Sempre più aziende stanno scegliendo il software open-source (OSS) rispetto al software proprietario perché l'OSS è spesso visto come di alta qualità e più innovativo. Con l'aumento dell'uso dell'OSS, è anche essenziale guardare allo spreco che può verificarsi all'interno di questi progetti. Sapere come misurare questo spreco è fondamentale per mantenere pratiche di sviluppo efficienti.

Questo documento si concentra sulla comprensione dei tipi di spreco nello sviluppo software, su come misurarli e in particolare si occupa dei progetti OSS. Analizzando le pratiche attuali per misurare lo spreco e identificando le lacune, possiamo proporre nuove misure che aiuteranno a calcolare lo spreco nello sviluppo software.

Domande di Ricerca

Per guidare lo studio, abbiamo stabilito tre domande principali:

  1. Quali sono i diversi tipi di spreco nello sviluppo software?
  2. Come possono essere misurati questi tipi di spreco?
  3. Quanto spesso si verifica lo spreco nello sviluppo software nei progetti open-source?

Rispondere a queste domande ci darà una visione più chiara dello spreco nello sviluppo software e ci aiuterà a trovare modi per migliorare i processi.

Tipi di Spreco nello Sviluppo Software

Molti studi hanno esplorato lo spreco nello sviluppo software e identificato diversi tipi. I tipi comuni includono:

  • Costruire la Funzionalità Sbagliata: Creare funzionalità che gli utenti non necessitano o che non sono allineate agli obiettivi del progetto.
  • Rifacimento: Doversi rifare il lavoro a causa di errori o cambiamenti nei requisiti.
  • Tempo di Attesa: Ritardi causati dall'attesa di feedback o approvazioni.
  • Comunicazione Inefficace: Malintesi o mancanza di informazioni chiare tra i membri del team.
  • Lavoro Parzialmente Completato: Task avviati ma mai finiti.

In aggiunta a questi, altri sprechi includono problemi di gestione, complessità inutile e gestione inefficace del backlog.

Misurare lo Spreco nello Sviluppo Software

Nonostante il riconoscimento dei vari tipi di spreco, molte organizzazioni non hanno modi formali per misurarlo. Invece, spesso usano indicatori di produttività come la velocità (quanto lavoro viene svolto in un dato tempo). Ci sono anche metodi come i diagrammi di flusso cumulativo per visualizzare il progresso del lavoro e identificare le lacune nel processo.

Tuttavia, misurare direttamente il spreco consente miglioramenti più specifici. Questo studio mette in evidenza alcune nuove misure per quantificare lo spreco, soprattutto nei progetti open-source.

Misure Proposte per lo Spreco nello Sviluppo Software

Questo studio suggerisce diverse nuove metriche per aiutare a quantificare lo spreco nello sviluppo software. Queste includono:

Fork Stagnanti

Nei progetti open-source, il forking è quando qualcuno crea una copia di un repository per apportare modifiche o aggiungere funzionalità. Un fork stagnante è quello che non contribuisce nulla di valore al progetto originale. Classificando i fork in attivi, di backup, potenzialmente stagnanti e stagnanti, possiamo identificare quali parti del progetto non vengono utilizzate in modo efficace.

Indice di Diversificazione del Progetto

Questa misura guarda a come i fork stanno contribuendo di nuovo al progetto principale rispetto a quelli che si stanno dirigendo in direzioni diverse. Questo indice aiuta a identificare se le organizzazioni stanno costruendo funzionalità sbagliate o esplorando percorsi non correlati.

Tasso di Rifiuto delle Pull Request

Le pull request (PR) sono modi per gli sviluppatori di suggerire modifiche a un progetto. Il tasso di rifiuto delle PR indica quanto sforzo va non premiato e aiuta a identificare aree in cui il processo di sviluppo potrebbe necessitare di miglioramenti. Se molte PR vengono rifiutate, suggerisce che ci potrebbero essere problemi con il modo in cui vengono gestite o comunicate le contributi.

Indice di Inversione del Backlog

Una buona gestione del backlog è fondamentale per garantire che i compiti ad alta priorità vengano completati in tempo. L'indice di inversione del backlog tiene traccia dei casi in cui i compiti a bassa priorità vengono completati prima di quelli ad alta priorità, indicando una cattiva gestione delle priorità e delle risorse.

Tasso di Completamento delle Funzionalità

Questo tasso valuta quanto bene il team sta consegnando sia funzionalità che risolvendo bug. Confronta il numero di funzionalità completate con il numero di bug risolti e aiuta a comprendere quanto bene è gestito il progetto.

Impostazione dello Studio

Per analizzare queste misure, lo studio ha utilizzato l'API di GitHub per raccogliere dati da vari progetti open-source. Inizialmente, la ricerca si è concentrata solo su repository molto popolari, ma è stata successivamente adattata per includere quelli con almeno 50.000 stelle per garantire una selezione rappresentativa di progetti attivi.

Criteri di Selezione

Sono stati selezionati solo progetti che sono stati aperti all'inizio del 2024, avevano problemi, download e esistevano da un po'. Alcuni tipi di progetti come repository archiviati o template sono stati esclusi per mantenere il focus sui progetti attivi.

Selezione dei Repository

Un totale di dieci repository sono stati scelti in base alla loro popolarità e ai livelli di attività. Questi progetti rappresentano collettivamente una varietà di pratiche comuni nello sviluppo software open-source.

Risultati e Osservazioni

I risultati dell'applicazione delle misure proposte sui progetti open-source selezionati hanno fornito preziose intuizioni sulla prevalenza dello spreco nello sviluppo software e sull'efficacia delle pratiche di gestione.

Distribuzione dei Fork Stagnanti

Analizzando la distribuzione dei fork stagnanti tra i progetti si è visto un mix di contributi attivi e inattivi. Un numero maggiore di fork attivi indica generalmente un progetto sano in cui gli sviluppatori sono coinvolti, mentre molti fork stagnanti possono segnalare potenziale spreco.

Risultati dell'Indice di Diversificazione del Progetto

I progetti sono stati esaminati per vedere quanti fork hanno contribuito direttamente al progetto principale rispetto a quelli che si sono allontanati. Un alto indice di diversificazione mostrava che molti fork stavano andando in direzioni diverse, il che potrebbe indicare un disallineamento con gli obiettivi del progetto.

Analisi del Tasso di Rifiuto delle PR

L'analisi delle pull request ha rivelato che diversi progetti hanno avuto tassi di rifiuto elevati, suggerendo che linee guida più chiare e una comunicazione migliore potrebbero migliorare la qualità complessiva delle contribuzioni.

Intuizioni dall'Indice di Inversione del Backlog

Le misure di inversione del backlog hanno mostrato che alcuni progetti avevano problemi significativi con la priorità, indicando la necessità di una gestione migliore per garantire che le attività ad alta priorità venissero affrontate tempestivamente.

Valutazione del Tasso di Completamento delle Funzionalità

Valutare come i progetti bilanciavano la risoluzione dei bug con la consegna di nuove funzionalità ha fornito intuizioni sulla loro efficienza operativa. I progetti con tassi di completamento bassi tendevano ad avere più problemi di backlog e cattiva gestione dei task.

Conclusioni e Raccomandazioni

Questo studio mette in luce l'importanza di identificare e misurare lo spreco nello sviluppo software. Introducendo nuove misure, i team possono ottenere migliori intuizioni sui loro processi e prendere provvedimenti per migliorare la loro efficienza.

Strategie di Adozione

Per aiutare i team ad adottare queste misure, raccomandiamo diverse strategie in base allo stato del progetto.

  • Per Progetti Completati: Le revisioni retrospettive dovrebbero considerare tutte le misure per fornire intuizioni su cosa sia andato bene e cosa potrebbe essere migliorato.

  • Per Progetti in Corso: Monitorare continuamente le misure aiuterà a identificare tendenze e aree che necessitano attenzione prima che diventino problemi più grandi.

  • Per Progetti Pianificati: Stabilire pratiche di misurazione fin dall'inizio può aiutare a fissare parametri di riferimento e obiettivi che guidano il progetto sin dall'inizio.

Limitazioni

Sebbene misurare lo spreco possa fornire intuizioni preziose, ci sono alcune sfide. L'accesso ai dati del repository è essenziale. Se questi dati non vengono mantenuti o non sono disponibili, le misurazioni potrebbero essere fuorvianti. Inoltre, la varietà di progetti potrebbe portare a risultati diversi che potrebbero influenzare la validità delle scoperte.

Lavori Futuri

Andando avanti, c'è bisogno di espandere queste misure per coprire più tipi di spreco nello sviluppo software e collaborare con professionisti del settore per valutare l'impatto di queste metriche nei progetti reali. Questo può aiutare a migliorare le pratiche di sviluppo software e garantire la consegna tempestiva dei progetti.

Articoli simili