Processi software

Definizione

In ingegneria, secondo l'ISO, un processo è un insieme di attività correlate e coese che trasformano ingressi in uscite, consumando risorse nel farlo. In particolare, un processo software (d'ora in avanti solo "processo") porta ad un prodotto software.

Anatomia

Ogni processo si divide in più attività. Ogni attività si divide in compiti. Ogni compito si può svolgere usando qualche tecnica, cioè una sorta di ricetta applicata agli strumenti disponibili. Per strumento s'intende un insieme di concetti e di metodi, con delle tecnologie di supporto.

Processi software, aziende e progetti

Distinguiamo le seguenti tre categorie principali di processi:

L'organizzazione aziendale si struttura verticalmente in settori (orientati alla specializzazione) e orizzontalmente in processi (che abbracciano più settori specializzati).

Esiste il processo perfetto? Esiste l'insieme ideale di processi? No: nessun progetto è identico a un altro, quindi i processi vanno selezionati e adattati in modo critico, in base al progetto e/o all'organizzazione a cui servono. Selezionare, adattare, applicare e migliorare (evolvere) i processi è compito degli amministratori di progetto.

I processi software, di per sé, non seguono un ordinamento. Le relazioni temporali tra essi sono fornite da un modello di ciclo di vita.

ISO/IEC 12207

Lo standard ISO/IEC 12207 è il più noto standard di processo. Esso divide i processi in tre famiglie.

Un ingegnere del software sa fare qualsiasi processo tra i suddetti.

Organizzazione di processo

Per essere disciplinati si ha bisogno di una forma di standardizzazione, per "tenere alta" la qualità di un lavoro ripetitivo che rischia continuamente di degradare. Ecco perché un buon processo si auto-migliora, in modo continuo, secondo lo schema PDCA (ciclo di Deming):

  1. Plan: individuare obiettivi di miglioramento.
  2. Do: eseguire ciò che si è pianificato.
  3. Check: verificare se ha funzionato. Non è tanto un'ispezione quanto, piuttosto, un'analisi[2]; si studiano i risultati della fase precedente (do) e li si cofrontano con gli obiettivi individuati nella prima fase (plan).
  4. Act: agire per correggersi. Se la fase precedente (check) ha dimostrato che il piano (plan) implementato (do) è migliore rispetto agli standard precedenti, allora questo piano diventa il nuovo standard — la nuova baseline. Altrimenti, il vecchio standard in uso rimarrà la baseline.

Efficienza ed efficacia di un processo

Un buon esempio di valutazione dell'efficienza e dell'efficacia è la misurazione di questi due aspetti a livello di processo. Efficienza di un processo, attività o compito è il rapporto tra le risorse realmente consumate e quelle che si era previsto venissero consumate; efficacia di un processo, attività o compito è il rapporto tra i prodotti realmente ottenuti a partire dal processo e i prodotti che si volevano ottenere.

  1. Gli acquirenti di software non sono solo utenti "laici" ma anche (e soprattutto) altre case di software: il maggior acquirente di software è Google!
  2. Deming preferiva infatti la sigla PDSA: Plan, Do Study, Act.