Intervista a Devid Magoni, sviluppatore freelance

I software gestionali di solito vengono sviluppati da team di sviluppatori con diverse competenze: c'è da pensare al database, all'interfaccia, alla reportistica e via discorrendo. Oggi, inoltre, molto spesso occorre pensare anche alla corrispondente app mobile.

Affrontare quindi la creazione di un nuovo gestionale completamente da soli non è certo semplice. Se poi si proviene da una formazione tecnica diversa rispetto a quella della programmazione pura, lo è ancora meno.

Eppure Devid Magoni ha vinto questa sfida sfruttando le potenzialità di Instant Developer Foundation. Di più: ha colto l’occasione di questo lavoro su commissione per approfondire la conoscenza della nostra piattaforma di sviluppo, utilizzando il servizio di supporto di Instant Developer come training e il nuovo software come banco di prova.

Ha sfruttato, in altre parole, lo Starter Kit che mettiamo a disposizione proprio per eliminare i problemi legati alla curva di apprendimento e grazie ai quali affianchiamo i nuovi sviluppatori nella creazione del loro primo prodotto con Instant Developer.

Di com'è andata ce ne parla direttamente Devid in questa intervista. 

Buongiorno Devid e grazie per aver acconsentito all'intervista. Per cominciare, puoi spiegarci meglio che cos'è AKIS?

Si tratta di un software gestionale che mi è stato commissionato da un'azienda che è qui dalle mie parti. 

Questa azienda produce macchinari per l'industria e per la precisione è specializzata in macchine per l’imballaggio ed il packaging, che rivende in tutto il mondo. Nel post-vendita deve ovviamente fornire assistenza ai suoi clienti per manutenzioni, riparazioni, imprevisti di vario tipo.

Aveva quindi necessità di un software che l'aiutasse a gestire i propri tecnici, le trasferte, gli interventi, le attività collegate e la programmazione relativa. 

L'acronimo AKIS fa infatti riferimento agli Asset (cioè i beni strumentali assegnati, i tecnici, gli automezzi...), la Knowledge base (tutta la documentazione legata alle macchine del cliente e le procedure di lavoro) e a tutto ciò che riguarda gli Interventi, inteso come programmazione, scadenziario o reportistica. Tutte specifiche fatte direttamente dal cliente!

Per adesso è utilizzato da circa un centinaio di persone tra personale amministrativo, tecnici dipendenti e quelli indipendenti che vengono chiamati in caso di necessità. L'obiettivo dell'azienda è di ampliare la propria rete, per cui si dovrebbe arrivare fino a duecento persone circa.

È quindi un software nato su misura, ma lo sto comunque proponendo anche ad altre aziende che possono avere esigenze simili. Ad oggi non ho comunque materiale di presentazione, come ad esempio un sito web dedicato; per adesso non ne sento la necessità.

È piuttosto raro sentire un programmatore singolo chiamato a sviluppare un progetto di questo genere: solitamente sono coinvolti interi team.

Oltre a me, l'unica altra persona che ha contribuito al progetto (a parte il supporto di Instant Developer, intendo) è stato il referente interno dell'azienda.

Con lui ho studiato le diverse necessità; il programma è nato dalle specifiche che mi ha fornito.

Come sempre avviene nei lavori su commessa, quindi, la fase di analisi è stata più breve. Molte sono state, invece, le modifiche in corso d'opera.

Nel complesso, però, sono riuscito a gestire da solo la realizzazione di un prodotto di questo tipo soprattutto grazie ad Instant Developer Foundation. 

Paradossalmente, sto trovando più difficoltà nel seguire da solo la parte commerciale e di assistenza, fra telefonate e altro, che non di sviluppo del programma.

Come hai conosciuto il cliente?

Io collaboravo già con questa azienda; lavoravo con l'ufficio tecnico come sviluppatore CAD. 

Quando ho saputo che avevano l'esigenza di un gestionale ho fatto per loro conto una prima indagine di mercato. Considerando però le customizzazioni necessarie, non c'era nulla di adatto in termini di analisi dei costi.

Conoscevo già Instant Developer Foundation ed avevo fatto alcune ore di formazione. Sapevo quindi che le necessità espresse dall'azienda potevano essere gestite attraverso questa piattaforma di sviluppo e così mi sono proposto per una realizzazione completamente su misura. 

Senza questo strumento una cosa del genere non l’avrei mai fatta. Sarebbe stato impossibile, sicuramente, da realizzare per una persona singola – per me o per chiunque altro.

Si tratta di un gestionale multipiattaforma: c'è una parte desktop per il personale amministrativo dell'azienda e una parte app per i tecnici che lavorano in mobilità. Hai valutato l'utilizzo di Instant Developer Cloud, oltre che di Foundation?

Sì, certamente. Ma c'erano alcuni fattori che hanno fatto propendere decisamente per Instant Developer Foundation. Intanto, una questione legata ai server di appoggio, interni all'azienda.

Poi, all'epoca dello sviluppo, Cloud era ancora immaturo per alcuni aspetti e sarebbe stato difficile gestire alcune funzionalità.

Mi sono confrontato anche con l’assistenza tecnica e Instant Developer Foundation era decisamente la soluzione migliore. 

Che tipo di competenze o conoscenze di base avevi, quando ti sei approcciato ad Instant Developer Foundation per la prima volta?

Lavoravo (e lavoro tutt'ora) con Autodesk, ovvero un prodotto per lo sviluppo CAD 3D, SolidWorks e poi con Oracle. Ho sempre lavorato con Oracle nell'ambito gestionale e infatti anche per sviluppare AKIS ho scelto Oracle come database, non MySQL.

Devo dire però che tutto sommato il database usato diventa abbastanza ininfluente, perché tutta la gestione viene fatta all'interno di Instant Developer Foundation e il database resta, fondamentalmente, solo come repository.

Quando mi sono avvicinato a Instant Developer Foundation, l'ho fatto fondamentalmente perché volevo ampliare il mio lavoro rispetto all'ambito CAD. Volevo ampliare le mie competenze, proprio come ambizione personale, e imparare a sviluppare app. Lo vedo come un qualcosa di interessante ma anche più attuale.

Per affrontare la creazione di un gestionale, non avevi bisogno di disporre anche di competenze diverse?

È qui, soprattutto, che entra in gioco la filosofia di sviluppo su cui è costruito Instant Developer Foundation.

Propone infatti un unico paradigma di sviluppo, che rende il lavoro indipendente dalle singole tecnologie che stano alla base.

Seguendo gli stessi principi si possono sviluppare il database, la app, eccetera: tutto come un sistema integrato, tutto collegato. Alla base c'è un principio che possiamo definire semantico, con ogni singolo oggetto che ha un proprio significato ed è poi collegato agli altri.

Si lavora, per così dire, a un livello logico superiore rispetto ai singoli strumenti su cui si va ad agire. E viene generato un codice unico.

Questo sistema facilita enormemente il lavoro, anche al singolo, sia in fase di sviluppo che in fase di revisione e manutenzione. Rispetto a dover sviluppare separatamente ogni singolo componente, anche fare cambiamenti in corso d’opera è estremamente più agevole. 

Quando ci sono tante entità, anche solo sapere dove è usato un oggetto diventa fondamentale per scrivere del buon codice. E questo è quello che avviene con Instant Developer.

Che tempistiche ha richiesto il lavoro?

Lunghe, in realtà, ma solo perché era la prima volta che affrontavo realmente uno sviluppo con Instant Developer Foundation. Fino a quel momento avevo guardato il programma, ma senza mettermi alla prova.

Il primo delivery è stato dopo 5-6 mesi, ma va considerato che nel frattempo seguivo anche altri progetti e che continuamente mi trovavo di fronte a difficoltà dovute all'inesperienza con questo strumento. Però, un po' testando e un po' con il supporto dell'assistenza, tutti i problemi venivano presto superati.

Oggi lo stesso lavoro lo concluderei in un terzo del tempo.

Nel complesso, per AKIS ad oggi siamo a circa 500 ore di lavoro. 

Sto però sviluppando un secondo progetto con Instant Developer Foundation e adesso riscontro tutta un'altra velocità e semplicità nella scrittura del codice. La fase di reengineering, in particolare, è fenomenale. Senza contare che comincio ad avere le mie librerie a cui attingere in caso di necessità...

È anche per questo che sto proponendo AKIS anche ad altre aziende, senza timori legati alla necessità di nuove personalizzazioni.

Sui nuovi progetti usare Instant Developer Foundation mi rende più tranquillo e più sicuro di me. Mi dà la possibilità di rispondere “ok, si può fare”, anziché “devo pensarci su”.

Parliamo di prezzi della commessa. Non avendo mai sviluppato un gestionale in autonomia e non avendo mai utilizzato prima questo strumento, non deve essere stato facile presentare un preventivo al cliente. 

Infatti. Dopo aver studiato un po' il mercato, ero però fiducioso sul poter uscire allo stesso prezzo della concorrenza.

Mi sono quindi mosso calcolando il costo che avevo visto per i software già presenti sul mercato, più un piccolo extra dovuto al fatto che proponevo un prodotto su misura.

Mi sono fidato del fatto che Instant Developer Foundation, basandosi sul principio delle entità collegate, mi avrebbe permesso di rientrarci come tempi di sviluppo e quindi come costi – e in effetti così è stato.

Un bel goal anche commerciale, direi, se sei riuscito a stare in linea con software già sul mercato, nonostante il tempo extra necessario all'apprendimento!

Sì, e devo dire che molto è anche grazie al servizio di assistenza che mi ha seguito lungo tutto lo sviluppo del mio primo progetto.

Attraverso il sistema di prenotazione delle sessioni, l'assistenza mi ha sempre permesso di trovare una soluzione ai diversi problemi che si presentavano durante lo sviluppo. E riconosco che non è un fatto banale, considerato che devono seguire molti clienti diversi tra loro, con problemi anche molto specifici. 

Grazie Devid. Chiaramente la nostra assistenza è sempre presente, anche per i tuoi prossimi lavori di sviluppo con Instant Developer.

Se volete saperne di più sul caso di studio AKIS, trovate maggiori dettagli a questo link.