software is a normal product!

LA FILOSOFIA SONOPRO | IL METODO SOME-OPEN | LA S-O-S PUBLIC LICENSE | LINEE GUIDA PER SVILUPPATORI | CONTATTI

LINEE GUIDA PER GLI SVILUPPATORI

Di seguito sono descritte allo sviluppatore le linee guida e di pensiero che dovrebbe seguire durante il processo di sviluppo e manutenzione del software secondo lo standard Some-Open.

-IL SOFTWARE ED IL COMMITTENTE

-CONNECTOR ED IMPLEMENTAZIONE

-DOCUMENTAZIONE ED UTILITY ACCESSORIE

-LICENZA E MESSA IN OPERA


IL SOFTWARE ED IL COMMITTENTE

Il software è un bene o prodotto che estende e migliora le capacità e possibilità di chi lo utilizza. E' quindi, per l'utilizzatore, uno strumento indispensabile nella vita quotidiana e nel lavoro, dal quale possono dipendere i suoi successi o i suoi fallimenti. La struttura del software può avere anche grande impatto sulle abitudini lavorative dell'utilizzatore, il quale si potrebbe trovar costretto, utilizzando il software da te creato, a modificare la propria organizzazione lavorativa (sia essa di processo o di risorse). Per queste ragioni quando ti viene commissionata la progettazione di un software dovresti:

  • ricordare che stai creando uno strumento importante, che dovrà ottimizzare e rendere più produttive le attività di chi te lo ha commissionato, e quindi, che eventuali tue superficiali scelte progettuali incideranno negativamente sulla vita dell'utente

  • il tuo software dovrà essere la migliore opera che puoi concepire all'interno di quel particolare ambito applicativo, dovrai quindi rendere il committente e gli utenti parte del tuo processo di sviluppo, coinvolgendoli ed informandoli, e discutendo con loro tutte le decisioni progettuali

  • dovrai tener conto del fatto che in genere il committente ha esperienza all'interno del suo ambito applicativo, ma non in quello informatico. Dovrai quindi essere sicuro di aver perfettamente compreso quello di cui il committente ha realmente bisogno, discutendo con lui di eventuali tue proposte decisionali che potrebbero migliorare il software da realizzare, proponendogli ad esempio funzionalità aggiuntive di cui lui ignorava la possibile implementazione

CONNECTOR ED IMPLEMENTAZIONE

Una volta realizzato il software, comincia il rimanente 60% di lavoro per la manutenzione durante il ciclo di vita. Ricorda che è molto importante fornire al cliente la libertà di avere un software affidabile ed al passo con i tempi: anche una singola funzionalità che rimane obsoleta rispetto all'ambito applicativo potrebbe compromettere l'utilizzo dell'intero software. E' importante quindi progettare software che siano facilmente espandibili ed aggiornabili, e che prevedano fin da subito soluzioni espansive che lo rendano robusto ai prevedibili cambiamenti futuri dell'ambito applicativo. Allo stesso tempo devi tener presente che potresti essere impossibilitato o potresti non voler più continuare ad effettuare la manutenzione del software, il che porterebbe di fatto alla morte del software stesso “per vecchiaia”. Devi offrire la possibilità al software di vivere in modo efficiente per tutto il suo ciclo di vita, e quindi devi dare la libertà al committente di potersi rivolgere ad altri sviluppatori per aggiornarne le parti che ritieni abbiano bisogno di manutenzione nel tempo, o per sviluppare eventuali espansioni. Per garantire ciò non è necessario rilasciare tutto il codice sorgente del software, ma sarà possibile utilizzare alcuni accorgimenti progettuali ed implementativi che diano al software la proprietà di essere mantenuto nel tempo da altri sviluppatori. Progetta e realizza il sistema software dotandolo ideologicamente di uno o più “connettori” esterni, ai quali altri sviluppatori potranno collegarsi per effettuare manutenzione o per connetterci dei moduli software aggiuntivi. Non sarà troppo complicato per te riuscirci una volta compreso bene l'ambito applicativo nel quale il software opererà. Utilizza i design pattern, i principi dell'ingegneria del software, ed uno stile di programmazione chiaro, per ottenere implementazioni comprensibili, efficienti ed estendibili.


DOCUMENTAZIONE ED UTILITY ACCESSORIE

Dovrai fornire una documentazione chiara ed esplicativa, che dovrà contenere i casi d'uso principali e tutte le spiegazioni necessarie ad un ipotetico sviluppatore che dovrà essere messo in condizione di poter effettuare la manutenzione del software. Risulta utile anche corredare il software di utility che abbiano i “permessi di accedere” e modificare le parti del sistema che necessitano di manutenzione o espansione. Ad esempio, per un software multilingua potrai progettare e fornire a parte una utility che permette ad un traduttore, non esperto di programmazione, di creare i files contenenti altre lingue da aggiungere al sistema.



LICENZA E MESSA IN OPERA

Al termine della fase di implementazione e testing è buona norma presentare al cliente il sistema software e ridiscuterne insieme la correttezza dei requisiti. Una volta verificata la correttezza dei requisiti, si procede alla compilazione della licenza d'uso, la quale una volta accettata dal licenziatario, da il via all'installazione e messa in opera del sistema software.

La licenza d'uso S-O-S Public License va compilata sostituendo soltanto le etichette NOME_SOFTWARE, NOME_LICENZIATARIO, NOME_SVILUPPATORE ed inserendovi i dati relativi al software in questione, i dati anagrafici del licenziatario e dello sviluppatore. Le rimanenti parti della licenza devono rimanere inalterate.

Per un periodo adeguato dovrai seguire da vicino il comportamento del software durante il suo utilizzo ed essere disponibile a modificarlo ed adattarlo ad eventuali necessità non precedentemente previste. Dovrai inoltre essere disponibile a fornire eventuali ulteriori chiarimenti a sviluppatori che intendono effettuare la manutenzione del software. Ovviamente non sarai responsabile di eventuali malfunzionamenti in caso il software venga mantenuto da terzi.


-----------------------------------------------------------------------------------------------------------------------------
SONOPRO© e SOME-OPEN© - Tutti i diritti riservati - i restanti marchi appartengono ai rispettivi proprietari