Apex è in grado di supportare il cliente nella scelta della tecnologia più appropriata mettendo a disposizione la propria esperienza, le conoscenze tecnologiche, e la professionalità di tutti i suoi sviluppatori certificati nelle tecnologie Microsoft, per guidare il cliente nel raggiungimento del risultato desiderato.
Apex non è una software house. È piuttosto una società di ingegneria informatica la cui missione è fornire soluzioni tecnologiche ai clienti nei diversi mercati in cui essi operano. Questa caratteristica aziendale, dunque, impone un approccio allo sviluppo del software necessariamente diverso da chi produce sistemi destinati alla vendita. Un approccio in sintonia con la missione dell’Azienda è il primo passo verso uno sviluppo di successo. Di seguito riassumiamo i punti fondamentali della nostra filosofia.
Approccio
Ciò che accomuna i software di Apex è il fatto che essi vengono pensati e sviluppati come prodotti.
Un prodotto ha una sua autonomia indipendentemente dalla sua complessità e dalla generalità della funzione per il quale è progettato. Il fatto che un software sia una semplice utility o un estensione di un’entità già esistente non deve fuorviare. Si parla di prodotto perché il risultato del lavoro svolto deve necessariamente avere certe caratteristiche:
- Ergonomia, intesa come funzionalità e come gradevolezza estetica
- Performance, sia funzionali che tecniche
- Isolamento, la proprietà cioè di essere chiaramente definito nelle caratteristiche e nelle funzioni prima ancora di iniziarne la produzione
L’analisi
In una logica di produzione industriale di software l’elemento che non può essere dimenticato è il business. Ogni sviluppo software non può essere considerato di successo se il committente non ne ricava un profitto.
Essendo l’analisi, quindi i tempi, prefissata è ovvio che la soluzione del problema non è libera. Deve, al contrario, rispondere a vincoli molto stretti. Ecco quindi che, una volta chiari i perché del progetto, Apex deve pensare al miglior prodotto realizzabile entro i vincoli posti dall’analisi e dal mercato.
Non parliamo mai, quindi, del prodotto migliore in assoluto, ma del prodotto con il miglior rapporto costi/benefici.
Lo sviluppo
La ratio di mantenere lo sviluppo all’interno di Apex e, per giunta, di considerarlo come pietra angolare della crescita aziendale, sta nella stessa mission aziendale. Se si ambisce ad offrire una soluzione all’utente finale, questa sarà tanto più vicina alle aspettative quanto più ne è vicina la produzione sia dal punto di vista intellettuale che operativo. Ancora una volta, dunque, la sfida non è sviluppare del software, ma utilizzare il software come mezzo per giungere ad una soluzione le cui fondamenta – non dimentichiamolo – devono essere chiarissime prima, durante e dopo la fase di sviluppo.
La logica di prodotto e la comprensione approfondita delle ragioni del progetto circoscrivono precisamente, per Apex, la fase di sviluppo. Ogni sezione o funzionalità che vengano sviluppate devono essere chiare dall’inizio e lo sviluppo deve cominciare e finire senza soluzione di continuità.
Se il software viene inteso come prodotto, non va mai persa di vista la qualità con cui questo stesso prodotto viene fabbricato. Come avviene in ogni ambito della produzione il risultato finale è la sintesi di una serie di fasi. La qualità di queste fasi determina la qualità del prodotto finito.
Un software deve rispondere a precise specifiche industriali, indipendentemente dalla sua complessità:
- Deve essere opportunamente commentato e la nomenclatura adottata per funzioni, variabili, classi etc. deve rispondere ad una logica standard e condivisa.
- Il software non è un patrimonio dello sviluppatore che lo ha scritto, ma deve essere chiaro e facilmente mantenibile da chiunque adotti quelle convenzioni.
- Il risultato di una produzione one-way corrisponde necessariamente al meglio realizzabile con il know-how entro i limiti imposti dal progetto.
Il Test
I prodotti software seguono ovviamente la logica di tutti gli altri prodotti. Deve essere chiaro che un bug del software non è mai un problema minore. La reputazione di un prodotto dipende infatti dalla sua robustezza e affidabilità; ogni problema va a incidere proprio su questi aspetti chiave.
La manutenzione
Anche il software più semplice è destinato ad una evoluzione nel tempo. Cambiano le esigenze di business, gli utenti finali, le tecnologie. Ecco che anche il miglior software è oggetto di richiesta di modifiche anche in tempi rapidi. Così come l’autore del software, dopo averlo concluso, individua immediatamente delle migliorie tecnologiche da apportare al prodotto, allo stesso modo l’utente finale individua delle caratteristiche funzionali nuove che diventano chiare solo dopo il primo utilizzo del prodotto.
L’atteggiamento di Apex è orientato all’evoluzione e al miglioramento tecnico/funzionale del prodotto. Se un utente chiede di modificare qualcosa di appena rilasciato è sempre una buona notizia dal punto di vista della produzione del software.
Ciò detto occorre però ricondurre la manutenzione evolutiva nell’ambito di un processo di industrializzazione del software al pari della fase di sviluppo. Ogni aggiornamento, ogni rilascio, ogni fix comportano un aumento nella complessità del software e, in definitiva, un aumento del costo di possesso. Queste ragioni obbligano Apex ad attenersi ad una disciplina opportuna per evitare che l’evoluzione di un sistema rappresenti, alla fine, un problema.
Il team di lavoro
Apex svolge i progetti attraverso un team di persone specializzate ognuno con differenti responsabilità ed ambiti di progetto:
Project Manager
- Responsabile del progetto.
- Coordina insieme all’analista le risorse di consulenza necessarie.
- Si relazione con il Cliente per la definizione degli obiettivi e delle milestone da raggiungere.
Analista Sistema Informativo
- E’ esperto di processi aziendali.
- Segue e sviluppa l’analisi presso il cliente. Redige l’analisi funzionale del progetto.
- Trasferisce le analisi funzionali al team di sviluppo.
- Insieme al Project Manager condivide le scelte tecnologiche
- Coordina insieme al Project Manager le risorse necessarie allo sviluppo del progetto.
Sviluppatore software
- E’ un esperto di sviluppo software.
- Adotta le scelte tecnologiche del progetto e realizza le soluzioni informatiche che rispondono all’analisi funzionale
Grafico
- Sviluppa interfacce funzionali e semplici nell’utilizzo
- Si occupa di rendere piacevole l’utilizzo della soluzione software