Prezzi: come misuriamo la dimensione e il prezzo del software
Mesterséges Intelligencia Központ Kft. è un'azienda di sviluppo software con sede a Budapest. Non calcoliamo il prezzo da una stima delle ore: misuriamo la dimensione funzionale del software in punti funzione COSMIC (ISO/IEC 19761) e ne ricaviamo l'offerta e la pianificazione.
In sintesi: prima descriviamo insieme che cosa deve saper fare il software, poi ne misuriamo la dimensione, e dalla dimensione misurata ricaviamo prezzo e pianificazione. Per questo non indichiamo un prezzo dopo una prima telefonata, e per questo non pubblichiamo nemmeno un listino prezzi.
Perché misuriamo la dimensione invece di stimare le ore?
La stima in ore dice quanto lavoro si aspetta chi stima, e questo dipende dalla sua esperienza, dalla sua prudenza e dal suo team. Per lo stesso compito due aziende possono indicare numeri di ore molto diversi, e dall'esterno non si capisce su che cosa si basi ciascuna stima.
La dimensione funzionale, invece, è una proprietà del software stesso: misura che cosa deve saper fare, non chi lo costruisce e come. Per questo è verificabile, si può misurare di nuovo e consente di confrontare due offerte.
Che cos'è il punto funzione COSMIC?
COSMIC è uno dei metodi standardizzati a livello internazionale per misurare la dimensione funzionale del software (ISO/IEC 19761). Conta quanti movimenti di dati ci sono nei processi funzionali del software. I movimenti di dati sono di quattro tipi:
| Movimento di dati | Che cosa significa | Esempio |
|---|---|---|
| Entry (ingresso) | i dati arrivano dall'utente o da un altro sistema | il cliente invia il modulo d'ordine |
| Exit (uscita) | i dati escono verso l'utente o un altro sistema | il sistema invia una conferma |
| Read (lettura) | il software legge dati memorizzati | carica gli ordini precedenti del cliente |
| Write (scrittura) | il software memorizza dati | salva il nuovo ordine |
Ogni movimento di dati vale 1 punto funzione COSMIC (CFP), e la dimensione del software è la loro somma. Un processo semplificato di «registrazione di un ordine», ad esempio, è composto da un ingresso, una lettura, una scrittura e un'uscita, cioè 4 CFP. La misurazione è indipendente dal linguaggio di programmazione, dalla tecnologia e dal team che ci lavora. Il nostro articolo Che cos'è il punto funzione COSMIC e in che cosa differisce dalla stima in ore? presenta il metodo con un esempio svolto e con i suoi limiti.
Come si passa dalla dimensione all'offerta e alla pianificazione?
- Specifica: descriviamo insieme, voce per voce, le funzioni, gli attori e i dati (veda: Come lavoriamo).
- Misurazione: un nostro flusso di lavoro assistito dall'intelligenza artificiale misura i gruppi di funzioni con più conteggi indipendenti l'uno dall'altro, e un giro di riconciliazione garantisce che ogni processo conti esattamente una volta.
- Revisione: esaminiamo la misurazione e chiariamo i punti incerti.
- Offerta: il prezzo deriva dalla dimensione misurata, integrato da ciò che la dimensione funzionale non esprime (veda sotto).
- Pianificazione: vediamo la dimensione anche per ciascun gruppo di funzioni, così su questa base impostiamo anche le fasi, l'ordine e le scadenze.
Se strada facendo nasce una nuova esigenza, la misuriamo allo stesso modo, così si vede sempre di quanto cambia la portata del lavoro e che cosa significa per il prezzo e per la pianificazione.
Che cos'altro influisce sul costo?
La dimensione funzionale misura che cosa fa il software, ma non tutto ciò che comporta lavoro. La misurazione segnala a parte i fattori seguenti, così non restano nascosti nemmeno nell'offerta:
- Integrazioni: a quanti sistemi esterni bisogna collegarsi e quanto sono ben documentate le loro interfacce.
- Requisiti non funzionali: prestazioni, disponibilità, sicurezza dei dati, accessibilità.
- Interfaccia e grafica personalizzate: il design su misura e gli elementi visivi unici.
- Più piattaforme: quando dello stesso software servono una versione web, una per iOS e una per Android.
- Migrazione dei dati: il trasferimento dei dati del vecchio sistema in quello nuovo.
- Calcoli complessi e funzionamento in tempo reale: algoritmi, flussi di dati in diretta.
La gestione dopo la consegna è una voce a parte: l'esercizio, la manutenzione e l'ulteriore sviluppo e, per le funzioni di IA, la tariffa a consumo dei modelli linguistici. Ne parliamo anche nelle domande qui sotto.
Perché così due offerte diventano confrontabili?
Se due offerte partono dalla stessa specifica e dalla stessa dimensione misurata, riguardano la stessa portata: si vede quanto chiedono le due aziende per la stessa cosa e che cosa addebitano a parte. Le ore non si possono confrontare allo stesso modo, perché l'ora non è una proprietà del software. COSMIC è un metodo pubblico e standardizzato, perciò la nostra misurazione può verificarla anche qualcun altro. Conviene chiedere anche agli altri offerenti per quale portata hanno formulato il loro prezzo.
Domande frequenti
Perché non indicate un prezzo al telefono?
Al telefono non indichiamo un prezzo perché il prezzo di un software dipende da che cosa deve saper fare, e questo non si può misurare in modo responsabile in una breve telefonata. La prima consulenza è gratuita: dopo descriviamo insieme le esigenze, misuriamo la dimensione e su questa base formuliamo un'offerta. Può richiedere un appuntamento nella pagina Contatti.
Che cosa rende più costoso uno sviluppo?
Uno sviluppo diventa più costoso soprattutto se contiene più funzioni, cioè più movimenti di dati. Possono inoltre aumentarne il costo i fattori indicati sopra: integrazioni numerose o mal documentate, requisiti rigorosi di prestazioni e sicurezza, grafica personalizzata, più piattaforme o la migrazione di molti dati.
Quanto costa la gestione?
Il costo della gestione dipende da che cosa comprende: l'hosting e l'esercizio, gli aggiornamenti, la correzione degli errori, l'ulteriore sviluppo e, per le funzioni di IA, la tariffa a consumo dei modelli linguistici. Il contenuto della gestione lo adattiamo al sistema concreto; gli sviluppi successivi li misuriamo allo stesso modo del primo. Ad altre domande rispondiamo nella pagina Domande frequenti.