Posytron.com
LinkedIn Facebook Twitter Google+ YouTube Pinterest
Nearshore Outsourcing
Technology
Home > Servizi > Technology > Nearshore Outsourcing > Process Management
Process Management
Il processo rappresenta uno degli aspetti chiave nella produzione del software, necessario per riuscire ad ottenere risultati di qualità nei tempi prefissati.
Ogni sviluppatore (o gruppo di sviluppatori) software ha un proprio processo di sviluppo, un modo di lavorare, basato sulla propria esperienza e sul contesto culturale ed organizzativo in cui si trova ad operare.
Il processo di sviluppo è legato, inoltre, alle relazioni cliente-fornitore ed all'assetto organizzativo dell'IT.
La scelta della metodologia nei processi di sviluppo di sistemi deve tenere conto, dunque, di molti fattori nel ciclo di vita del software che vanno dalla definizione dei requisiti, all'analisi e design fino all'implementazione, all'integrazione e al test.

L'esperienza maturata da Posytron ha permesso di comprendere che il successo di un processo è strettamente legato alla sua capacità di adattarsi alle nuove esigenze tecnologiche e funzionali in cui inevitabilmente ci si imbatte durante il ciclo di vita del software.
E' per questo che la scelta di Posytron si è orientata verso una metodologia adattiva che vede il cliente costantemente coinvolto nel processo di realizzazione, al fine di conseguire l'obiettivo della sua piena soddisfazione e non, semplicemente, l'adempimento di un contratto.
È per questa ragione che Posytron ha sposato i principi su cui si basa l'Agile Manifesto.
Le metodologie agili puntano a massimizzare la possibilità di successo di un progetto strutturando il processo in finestre di tempo limitate chiamate iterazioni. Ogni iterazione ha come obiettivo un deliverable ossia un piccolo incremento delle funzionalità del software.
All'interno di una metodologia leggera esistono diverse pratiche applicabili allo scopo di raggiungere gli obiettivi prefissati:
Close Communication
la comunicazione interpersonale, fra tutti gli attori del progetto, cliente compreso. Ció serve ad avere una buona analisi dei requisiti ed una proficua collaborazione fra programmatori
Customer Involvement
Esistono differenti gradi di coinvolgimento possibili: coinvolgimento in una prima fase di progettazione; partecipazione indiretta o come tester della versione rilasciata; partecipazione alle riunioni settimanali dei programmatori
Design & Documentation
è un'iterazione nel ciclo di vita del software. In genere considerate meno rilevanti del codice, si tratta di due fasi della progettazione classica da non trascurare
Frequent Delivery
Effettuare rilasci frequenti di versioni intermedie del software permette di ottenere piú risultati contemporaneamente: ricominciare l'iterazione avendo a disposizione un blocco di codice funzionante in tutti i suoi aspetti; rendere il cliente partecipe di ogni fase del processo e al contempo permettergli di testare eventuali difformità nel software e di indicare esattamente i requisiti voluti
Simplicity
Uno dei punti chiave delle metodologie leggere, direttamente mutuato dalla programmazione Object-Oriented, è la semplicità: nel codice, nella documentazione, nella progettazione, nella modellazione. I risultati cosí ottenuti sono una migliore leggibilità dell'intero progetto ed una conseguente facilitazione nelle fasi di correzione e modifica
Team forming & Code property
La formazione del team di sviluppo è condizionata da scelte gerarchiche, ma segue regole precise che permettono di ottenere un gruppo produttivo e responsabile, individualmente o collettivamente, nell'ambito della metodologia scelta
Testing
Vengono utilizzati, spesso contemporaneamente, tre tipi di test differenti: test funzionali, utilizzati per verificare che il software faccia effettivamente ció che è previsto debba fare; test unitari, utilizzati per verificare che ogni pezzo di codice funzioni correttamente; test indiretti effettuati inconsciamente dal cliente ogni volta che gli si consegna una versione
Version Control
In uno scenario cosí iterativo è necessario uno strumento di controllo, come Subversion SVN, delle versioni del software prodotto
Continuous Integration
Una pratica dello sviluppo software dove ogni membro di un team integra il proprio lavoro frequentemente. Ogni integrazione viene verificata attraverso un processo di build automatizzato includendo l'esecuzione dei test unitari al fine di individuare il piú rapidamente possibile gli errori ed ottenere maggiore sinergia ed estrema rapidità