Il metodo
Invisiblefarm
Lean Thinking
Aderiamo alla filosofia Lean Thinking: un metodo operativo caratterizzato dall’esaltazione della produzione snella e dalla riduzione degli sprechi, per lo sviluppo dei nostri software. Abbiamo le potenzialità per ridurre il superfluo e il rischio di fallimenti, coinvolgendo direttamente il cliente e rendendolo partecipe al ciclo produttivo.
Qualità ed efficienza certificate
Lo Sviluppo Agile ci consente di offrire un inquadramento leggero e semplice e di mantenere un focus sulla velocità della consegna del progetto. Il risultato di questa attenzione è la riduzione significativa del rischio complessivo connesso alla produzione del software, evitando pericolose derive.
In particolare, lo sviluppo agile accelera la consegna dei moduli realizzati e, attraverso un processo di pianificazione e gestione continua, è in grado di garantire la massimizzazione del valore del prodotto per tutto il processo. Il team di sviluppo è in grado di allineare costantemente il software fornito con le esigenze e le richieste del cliente, grazie a continue misurazioni e valutazioni costanti del progetto e del processo produttivo.
Metodo SCRUM
ScopriSCRUM è un metodo che permette di lavorare in maniera snella, un framework agile per la gestione del ciclo di sviluppo del software. Si tratta di uno strumento che indica come istituire la squadra di lavoro, composta dal nostro team di sviluppatori, dallo SCRUM Master, capo del progetto e dal Product Owner.
La produzione avviene segmentando il progetto in piccoli sotto-progetti indipendenti denominati Sprint, suddivisi a loro volta in task o deliverables. Al termine di ogni sprint, viene redatto un documento di specifiche tecniche, messo a disposizione all’assistenza e alla committenza. La definizione degli obiettivi e le riunioni quotidiane sono essenziali per consegnare la versione potenzialmente completa e funzionante alla valutazione del cliente.
Metodo KANBAN
ScopriKANBAN è un metodo operativo con l’obiettivo di evitare la sovrapproduzione e di semplificare il sistema informativo legato alla produzione. Si tratta di un punto di partenza importante, uno strumento utilizzato durante tutto il processo di sviluppo del progetto.
La sua struttura si basa sull’utilizzo di una lavagna, composta da varie colonne: attività future, attività svolte, attività in svolgimento, funzioni da testare e attività da rilasciare al cliente. Tale strumento mostra immediatamente l’andamento del progetto e la situazione della gestione dei deliverables, tramite dei planner interni, nei quali avviene l’assegnazione dei compiti gestiti individualmente nella pianificazione del To-Do.
Ambienti di sviluppo
ScopriSeguendo regole di Best Practices, il nostro metodo prevede la creazione di tre ambienti.
- Development Environment: l’Ambiente di Sviluppo è il luogo in cui i programmatori sviluppano nuovo codice e in cui vengono implementate le features del progetto;
- Staging Environment: il materiale prodotto in Ambiente di Sviluppo viene trasferito nell’Ambiente di Test per essere sperimentato, testato ed analizzato da parte dei debugger;
- Production Environment: il software, in seguito all’approvazione dei debugger, dello SCRUM Master e del cliente, passa all’Ambiente di Produzione e diviene fruibile.
Il nostro processo produttivo consente il conseguimento di prodotti di alta qualità, riducendo la possibilità di riscontro di bug in produzione.
1. Analizzare e pianificare
La pianificazione del lavoro consiste nell’analisi dei requisiti del software, eseguita dal Project Manager, al quale spetta il compito di suddividere i requisiti in task e svolgere una valutazione in merito alla loro risoluzione. Il Project Manager inserisce descrizioni e valutazioni per comporre il quadro, disgregandolo e ricomponendolo con i singoli task.
In seguito, il responsabile stende l’SRS (Software Requirements Specification, standard ISO/IEC/IEEE 29148:2011), descrizione completa del comportamento del software e la scheda di collaudo, proponendo eventuali migliorie al cliente. Questi documenti vengono trasmessi alla committenza per l’approvazione o la modifica.
A questo punto, il team di sviluppo esegue una progettazione tecnica della soluzione, realizzando alcuni documenti tra i quali: l’architettura del sistema, il progetto concettuale e logico della base dati, la specifica tecnica dettagliata dei moduli funzionali e il piano di test di modulo e di integrazione.
2. Produrre e collaudare
Il team di sviluppo lavora al progetto software, attraverso dei test di collaudo. Tramite un beta test interno, il personale controlla le funzionalità sviluppate, in modo da far emergere eventuali bug.
Il responsabile del progetto esegue un collaudo interno, basandosi sulla scheda di collaudo, mentre un operatore del committente effettuerà un test sulle nuove funzionalità. Vengono quindi redatti i seguenti documenti: il manuale utente, il manuale operativo e di gestione (ad uso dei sistemisti), il manuale tecnico del prodotto (ad uso degli addetti alla manutenzione e allo sviluppo software).
A seguito dell’esito positivo di ogni collaudo viene effettuato il rilascio definitivo del software sul server di produzione.
3. Misurare e migliorare
Dopo aver analizzato, sviluppato e collaudato il software, il risultato definitivo del progetto viene consegnato al cliente, fornendogli assistenza per la durata predefinita in fase contrattuale.
Offriamo sotto-attività per eventuali modifiche successive alla consegna, in particolare tramite manutenzione correttiva, con l’obiettivo di affiancare il cliente e tramite manutenzione evolutiva, per estendere le funzionalità del software.
La manutenzione per le modifiche del prodotto software è prevista nelle diverse tipologie di contratto da noi proposte.
Standard di riferimento
Gli standard che adottiamo nella gestione della vita del software sono:
- IEEE 730 – IEEE Standard for Software Quality Assurance Processes;
- IEEE 828 – IEEE Standard for Configuration Management in Systems and Software Engineering;
- IEEE 29119 – ISO/IEC/IEEE Software and systems engineering (Software testing);
- IEEE 29148 – ISO/IEC/IEEE Systems and software engineering (Life cycle processes – Requirements engineering);
- IEEE 1012 – IEEE Standard for System, Software, and Hardware Verification and Validation;
- IEEE 1016 – IEEE Standard for Information Technology (Systems Design – Software Design Descriptions);
- IEEE 16326 – ISO/IEC/IEEE Systems and Software Engineering (Life Cycle Processes – Project Management);
- IEEE 26512 – ISO/IEC/IEEE Systems and software engineering (Requirements for acquirers and suppliers of information for users);
- IEEE 26511 – ISO/IEC/IEEE Systems and software engineering (Requirements for managers of information for users of systems, software, and services).