Technology | ||
Internet Solutions
Mobile Solutions
Social Media Solutions
Smart City Solutions
Nearshore Outsourcing
Application Development
Application Maintainance
Application Re-Engineering
Service Oriented Architecture
Database Applications
Process Management
Testing Services
Dedicated Teams
Technologies
IT Services
Marketing & Communication
|
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à
|