PHASIS Gestionale Open Source LinuxWorld Conference & Expo, 24 Maggio 2005 - Crowne Plaza Milan Linate LINUX per le PMI “Come l'open source può fornire gli strumenti tecnologici alle PMI senza aumentare complessità e riducendo costi” Un software gestionale per le reali esigenze delle PMI sviluppato dalla comunità Phasis Massimo Gerardi, Fondatore, PHASIS.IT 1. PHASIS ✔ Phasis è un gestionale Open Source indirizzato alla piccola e media impresa Italiana rilasciato secondo la licenza GNU GPL caratteristica di molti software Open Source tra cui Linux. ✔ Particolare attenzione e cura è stata inoltre posta per seguire le necessità e le abitudini dell'utente ed evitare di essere un prodotto complesso. 2. PHASIS: cos’è Phasis è: ✔ Phasis non è il primo software rilasciato sotto GPL ma è forse il primo ad abbracciare pienamente la filosofia e i metodi dell'Open Source. ✔ Phasis è una applicazione che adotta una tradizionale interfaccia grafica (GUI), disponibile sia per Windows che per Linux e sono in corso test anche per MacOSX. ✔ L'installazione in ambiente Windows e Linux è stata resa particolarmente semplice, un solo file di circa 6 Mb che comprende tutto il necessario per l'esecuzione del programma. ✔ L'approccio allo sviluppo vuole essere minimalista e pragmatico, finalizzato a realizzare un prodotto agile, ben testato, perfettamente funzionante e dotato di funzionalità che servano a molti. 3. PHASIS: nel dettaglio Phasis utilizza solo componenti Open Source: ✔ Il linguaggio di programmazione è Python ✔ L'interfaccia grafica (GUI) utilizzata wxPython ✔ Database utilizzato SQLite (predisposto per tutti) ✔ Reportistica in formato PDF ✔ Le piattaforme testate sono: Linux e Window ✔ Base dati in architettura client/server ✔ Licenza GNU GPL versione 2. 4. PHASIS: come nasce Nel maggio del 2002, dopo anni di esperienza nel campo della gestione aziendale, ho dato vita al progetto Phasis.it. Il nome Phasis deriva dalla leggendaria destinazione di Giasone e gli Argonauti nella loro ricerca del "Vello d’Oro". Il desiderio era di creare un gestionale facile da utilizzare e personalizzabile con lo scopo principale di ragiungere piccole realtà aziendali, offrendo loro uno strumento flessibile, senza costringerli a riorganizzare il proprio sistema di lavoro in funzione del software. La prima realizzazione risale al 2003 ed era basata su Php e MySQL, ma mi resi subito conto che l'approccio Web non era adatto per installazioni su singole macchine, decisi quindi di realizzarlo con un interfaccia GUI. Dapprima con Glade, poi Kylix ed infine con Python e WxPython. Il database utilizzato era dapprima MySQL, poi Firebird (ex InterBase). Dall'incontro con Michele Sciabarrà, "finalmente" nacque l'idea di creare una comunità per rendere il progetto un Open Source a tutti gli effetti. Si decise di passare al databse SQLite e di creare un installer, dando la possibilità di utilizzare il gestionale velocemente all'interno di una pendrive USB senza nessuna installazione. 5. PHASIS: comunità open source Il principale obiettivo per rendere un prodotto Open Source è un ampia comunità di sviluppatori che gravitano intorno al progetto che potranno sopperire alla realizzazione di funzionalità avanzate e personalizzate. Il sito di supporto ( http://phasis.eprometeus.com ) comprende una serie di servizi: ✔ forum di assistenza agli utenti, ✔ wiki per contribuire documentazione, ✔ bug tracker per tracciare gli errori, ✔ mailing list per la collaborazione tra sviluppatori. Gli sviluppatori contribuiscono alla crescita di Phasis sia attraverso l’implementazione di nuovi funzionalità, sia attraverso l’individuazione e la correzione di errori del codice. Il reale problema per contribuire al progetto è il fatto che Python non è visual basic, e anche se è semplice pochi hanno le competenze per contribuire fattivamente. Dagli utenti sono giunti contributi soprattutto sul fronte della documentazione. 6. PHASIS: il punto di forza Il mercato dei gestionali è saturo esistono prodotti di ogni tipo e stazza, per non parlare dei costi che possono variare da pochi spiccioli a centinaia o forse migliaia di Euro. Ognuno è carente di qualcosa come: ✔ Multipiattaforma Windows Linux ed anche MacOSX ✔ Costo zero del prodotto ✔ Personalizzazione semplice e veloce ✔ Supporto tecnico e formazione ✔ Garanzia di trasparenza data dal codice aperto ✔ Portatilità senza nessun tipo installazione ✔ Semplicità di utilizzo L'obbiettivo in parte raggiunto dalla comunità Phasis.it è quello di ottenere un prodotto semplice, valido, sicuro e leggero adatto alla PMI . Ora la cosa più importante è un PDK (Phasis Development Kit), ovvero un kit minuscolo, separato dal phasis principale, che mostri come creare degli elementi AUTONOMI, in modo che chiunque abbia anche una piccola idea e la possa implementare agevolmente. 7. PHASIS: caratteristiche tecniche Le principali caratteristiche di Phasis sono: ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ multi azienda e muti utenti gestione delle offerte ai clienti Inserimento degli ordini cliente movimentazione fiscale del magazzino fatturazione ai clienti immissione diretta di movimenti di prima nota gestione degli scadenzari dei clienti schede ed estratti conto cliente inserimento degli ordini fornitore inserimento delle fatture dei fornitori gestione degli scadenzari dei fornitori report (scheda cliente, ordine, fattura, ecc.) Si prevede in futuro l'aggiunta di altri moduli essenziali per una gestione completa della contabilità e soprattutto di semplificare al massimo l'adozione di moduli personalizzati. 8. PHASIS: la scelta del linguaggio di sviluppo Python Il linguaggio di programmazione Open Source Python creato da Guido van Rossum è semplice da usare offre una struttura ed un supporto da invidiare ai più grandi linguaggi di programmazione. Per non parlare del controllo degli errori e della gestione dei tipi di dato di alto livello, liste, tuple, array flessibili e dizionari. Python permette di suddividere i programmi in moduli che possono essere riutilizzati in altri programmi Python. È accompagnato da un'ampia raccolta di moduli standard che potete usare come basi per i vostri programmi, o come esempi utili nell'apprendimento della programmazione in Python. Python è un linguaggio interpretato, e questo può far risparmiare molto tempo durante lo sviluppo del programma, poiché non necessita di compilazione. L'interprete può essere utilizzato interattivamente, il che rende semplice fare test con le funzionalità del linguaggio e scrivere programmi. Grazie a queste caratteristiche aziende come del calibro di IBM utilizzano Python nei più svariati campi di applicazione. 9. PHASIS: la scelta dell'interfaccia GUI wxPython In Python lo standard per la creazione di interfacce grafiche GUI fornito insieme al linguaggio è il toolkit grafico TK detto "TkInter". Si è scelto di utilizzare wxPython che è un wrapper della nota libreria wxWidgets, perchè è più moderno e completo del Tkinter oltre ad essere utilizzato nella gran parte delle nuove applicazioni GUI realizzate in Python. wxPython offre inoltre un set di controlli molto vasto, oltre ai più comuni come pulsanti, combo box, toolbar, la possibilità di utilizzare finestre di sistema (come quelle per salvare o stampare), un semplice browser e molti altri. WxPython è una libreria multipiattaforma, attualmente sono supportate Windows, Linux e MacOSX, ciò permette di creare una unica interfaccia grafica che funziona su più piattaforme. 10. PHASIS: la scelta del database SQLite La brillante idea di utilizzare come database "SQLIte" è venuta a Michele Sciabbarà nei primi incontri con Massimo Gerardi, che a giudizio di quest' ultimo è stata l'accoppiata vincente per rendere questo prodotto veloce e multipiattaforma. Il database SQLite è interamente scritto in C, è generalmente più veloce dei database più utilizzati è portabile su differenti piattaforme. SQLite può essere gestito tramite un set di API facili da usare e potenti. Questo lo rende comodamente utilizzabile in un'ampia gamma di linguaggi differenti tra i quali il Python mediante il modulo di interfaccia PySQLite. SQLite è rilasciato come libreria di pubblico dominio, open source ed è utilizzabile in licenza gratuita anche nelle applicazioni commerciali. 11. PHASIS: considerazioni economiche A favore di una soluzione completamente open source: ✔ Indipendenza da fornitore: Open Source significa posibilità di migrazione verso altri fornitori senza la perdità di investimenti e risorse. ✔ Risorse maggiori: il risparmio iniziale di investimento permette di spostare le risorse verso la formazione e la personalizzazione del prodotto. ✔ Integrabilità, flessibilità e scalabilità: Facilità di integrazione con altre applicazioni, di scalabilità verso l’alto e maggiore flessibilità verso altre soluzioni. ✔ Trasparenza indice di qualità: Il codice sorgente permette bug fixing e miglioramenti in autonomia. 12. PHASIS: case studies Si sono avviati due progetti pilota per l'adozione di Phasis: ✔ Associazione Italiana Celiachia Onlus: La scelta di Phasis in questo caso è stata pricipalmente una scelta economica, per utilizzare al massimo le risorse in attività proprie dell'Associazione. In questo progetto Phasis verrà installato su di una server dedicato IBM x206 collegato con le varie sedi regionali in tutta Italia. Per la gestione dei dati memorizzati e degli utenti connessi al server si è scelto di utilizzare come database MySQL. ✔ SELTEC s.r.l. di Cadelbosco Sopra (RE): Phasis in un azienda che da tempo intendeva utilizzare solo tecnologie Open Source, l'ultimo scoglio era proprio il Gestionale. Un esempio di come Phasis finalmente dia la possibilità di scegliere. Ringraziamenti ✔ Linux World Conference & Expo ✔ Ringrazio la platea ✔ Michele Sciabarrà ✔ Marcello Semboli, Antonio Iacono, Efisio Sciola, Daniele Cicchinelli, Bruno Marton, Marco Gerardi e tutta la comunità PHASIS.IT ✔ Venite a troverci su http://www.phasis.it/ Massimo Gerardi