Quali sono le fasi di sviluppo di un software? Conviene acquistare programmi già sul mercato o svilupppare applicazioni ex-novo? Il cliclo di vita del software.
Vi siete mai chiesti perchè ci sono milioni di software (app, siti web dinamici, giochi) gratuite su internet, ma se richiedo un software ad un programmatore i costi sono piuttosto elevati?
Questo accade perchè dietro c'è un gran lavoro che spesso la gente ignora.
In questo articolo abbiamo cercato di rispondere a queste domande delineando un modello di sviluppo delle applicazioni all’interno di una software house (come ad esempio la SeoBox snc).
Questa serie di passi per la produzione di software consentirà di:
Senza una linea guida, lo sviluppo avviene in maniera caotica e ciò causa problemi di controllo dei tempi, dei costi e della qualità del software; fattori che sfociano nell’insoddisfazione del cliente.
Il software può essere commissionato direttamente da un cliente ovvero nascere in autonomia (nel nostro caso è evidente che sono molte di più le occasioni in cui sia il cliente a commissionarci il progetto).
In entrambi i casi, al fine di determinare un’analisi costi/benefici, occorre attenersi allo schema seguente:
Prima di affrontare lo studio di fattibilità del problema occorre preventivare un costo per lo svolgimento dello studio stesso che il cliente deve accettare prima ancora di proseguire l’analisi.
Lo studio di fattibilità deve determinare anche l’analisi costi/benefici per valutare se il progetto deve essere avviato, le eventuali alternative, le risorse di massima necessarie (buy or make).
Lo studio di fattibilità deve essere capito dal cliente e dall'analista informatico. Non deve avere un livello tecnico alto. Questo anche perché non sempre il cliente che “paga” è il cliente che “usa” il software.
ll compito di questo documento deve essere quello di ricercare soluzioni in tempi e costi accettabili e non arrivare a miglioramenti della soluzione stessa.
Se non si sono trovate soluzioni di terze parti sul mercato o metodi alternativi che possono mettere d’accordo il cliente con le proprie esigenze, si procederà, previa approvazione dello stesso (contrattualizzazione), alla stesura dell’Analisi funzionale.
Questo documento comprende la definizione e le specifiche dei requisiti. Deve presentare che cosa deve fare il sistema. L’analisi funzionale sarà basata sullo studio di fattibilità dove sono raccolte le informazioni rese dal cliente e quelle “prese” da SeoBox di Massimo Sgambato
Le variabili da prendere in considerazione saranno:
L’analisi tecnica è un documento interno che non verrà mai mostrato al cliente.
E’ il progetto del software schematizzato. E' redatta da un'analista informatico ed è una sorta di linea guida per il programmatore!
L’analisi tecnica si focalizza su quattro elementi:
L’architettura del software prevede, tra gli altri compiti, la suddivisione del problema in tanti piccoli sotto-problemi e l’assegnazione degli stessi ai vari programmatori che fanno parte del team di sviluppo software.
Anche se vi fosse un solo programmatore è necessario suddividere il problema in tanti piccoli sotto-problemi (moduli) in modo che sia più facile affrontare lo sviluppo del software.
Il software viene codificato mediante linguaggi di programmazione (a seconda di quelle che sono le esigenze funzionali). Ogni modulo viene implementato usando il linguaggio di programmazione scelto (si ponga ad esempio il caso di un software con interfaccia web che viene sviluppato in Asp.net e in Javascript).
Durante la fase di sviluppo sul software possono essere eseguite varie verifiche e correzioni.
Fa parte della fase di debugging. A differenza del debugging in "corso d'opera", il piano di test solitamente viene sviluppato con il committente e tenderà a dimostrare che, seguendo un iter preciso, non solo le procedure rispettano quello stabilito nell’analisi funzionali ma sono anche libere da errore.
Una volta messo in uso il software all'interno della struttura del cliente, questi sottoscriverà un contratto di manutenzione che gli permetterà di avere un'assistenza continua sul programma adottato. I tecnici informatici intervengono in qualità di help desk per fornire al cliente le informazioni necessarie all'uso del programma o redimere piccoli problemi che possono insorgere nel managment quotidiano del software.
Il software non è soggetto ad “usura”!
L’adeguamento a modifiche intervenute nei requisiti o nell’ambiente operativo deve esser computata a parte, anche in presenza di un contratto di assistenza. Il contratto di manutenzione deve essere sottoscritto non al momento della consegna del software, ma al momento della contrattualizzazione (analisi funzionale).
In assenza di accordi o condizioni particolari, spesso il ciente ignora che il software che lui ha commissionato e pagato non è il suo!
Infatti la proprietà del software è quasi sempre del produttore (apparte il software open source) mentre è riconosciuto al cliente il diritto di poterlo utilizzare.
Nella stragrande maggioranza dei casi il cliente può utilizzare il programma ma non "rivenderlo", gli sfruttamenti economici del software sono sempre della software house (a meno che non vi siano accordi contrattuali diversi).
In linea generale, i sorgenti dell'applicazione (ovvero il codice necessario che si è dovuto implementare per la redazione del software) e gli schemi di progettazione software (analisi tecnica) rimangono sempre nelle mani della software house.
© Copyright 2016. SeoBox di M. Sgambato SeoBox Design. Tutti i diritti sono riservati.
Commenti