Smart Expense

Gestione Note Spese Dipendenti.

Applicativo web low-cost per le piccole e medie imprese che hanno la necessità di offrire ai pripri dipendenti uno strumento di facile utilizzo per inserire e riportare tutte le spese che sostengono per lavoro o con mezzi di pagamenti aziendali.

100% Build with No-Code.

Le principali sfide nella realizzazione della piattaforma.

il software raccontato dal punto di vista del “produttore”

Gentile lettore,

in questo lungo articolo ti racconterò qualcuna delle sfide che ho dovuto affrontare nella realizzazione dell’applicativo Smart Expense. Dato che queste “sfide” riguardano le principali funzioni del software, ripercorrendo il cammino dello sviluppo informatico inevitabilmente illustrerò anche le funzionalità della piattaforma. Spero che questo approccio possa risultare di tuo interesse. In ogni caso ti rinvio alla consultazione del sito Smart Expense  ed alla registrazione alla piattaforma per verificare di persona le funzionalità disponibili.

Ma prima di entrare nel vivo del racconto, voglio fornirti qualche informazione preliminare sul progetto. Innanzitutto devi sapere che mi occupo da molti anni di trasferte e rimborsi spese. Conosco molto bene la normativa fiscale e anche tutti i processi aziendali collegati a questa procedura. In passato ho realizzato una piattaforma simile con metodologie tradizionali (ovvero spendendo un sacco di soldi per fare il lavoro con degli sviluppatori informatici) e negli ultimi anni ho fornito varie consulenze ad una primaria software house in relazione alla loro piattaforma di business travel.

Detto questo, come puoi immaginare non ho fatto fatica a progettare l’applicativo. Prima di iniziare il lavoro sapevo già molto bene tutto ciò che serve per gestire le spese di viaggio e trasferta. Quindi ho decisamente risparmiato tempo per tutto ciò che riguarda la fase di analisi funzionale. Ma la parte difficile, per chi non è uno sviluppatore, non è certo la ideazione dell’applicativo. La vera difficoltà sta nell’esecuzione …

A questo punto devo dirti anche un’altra cosa. Da qualche anno ho iniziato ad utilizzare, per passione nel tempo libero, una piattaforma “no-code” che ti consente di creare applicativi web senza scrivere una sola riga di codice.  Questo del “no-code” è un fenomeno in rapida diffusione, che permette al cosiddetto “citizen developer” di realizzare software in prima persona. Penso che dedicherò una sezione del blog a questo argomento, che è molto interessante. Ma per ora, ai nostri fini mi interessa solo farti sapere che nel momento in cui ho deciso di realizzare Smart Expense sapevo già usare abbastanza bene questa piattaforma di sviluppo “no-code” (e credimi che non è così immediato farlo …).

Tenuto conto di questi due elementi, ovvero che ho già in mente tutta l’analisi funzionale e che so come realizzare il progetto dal punto di vista informatico, accade che veniamo messi tutti in lockdown per 3 mesi a causa epidemia di Covid-19. Nelle prime settimane di “smart-working” concludo alcuni lavori in corso per i miei clienti. Ma poi i clienti iniziano a diradare i contatti. I progetti che seguiamo perdono di importanza e priorità perché tutte le persone dei team sono a loro volta costrette a lavorare da casa ed anche perché, diciamolo, tutti hanno pesanti incertezze sul fatturato.

Quindi da fine marzo 2020 sono costretto a casa e non ho molto da fare. Ma la noia non deve vincere, mai. Quindi mi invento un impegno. E la scelta più naturale non poteva che essere quella di usare la piattaforma “no-code” per fare un software dedicato alla gestione delle note spese. Il lavoro di sviluppo dell’intero applicativo è durato 8 settimane. Una specie di record, se penso a quante risorse e a quanto tempo ci mettono le aziende che conosco a produrre software.

Ed il risultato è qui da vedere. Fai una prova e fammi avere i tuoi commenti. L’applicativo è sicuro, accessibile e usabile sia da desktop che da tablet (per ora non l’ho ancora adattato allo smartphone, indeciso se fare o meno l’app mobile). I dati risiedono su AWS (Amazon Web Services), la CDN usata è Cloudfare, il DB è Postgres (tra l’altro, tutti i  dati sono sempre dell’azienda e sono scaricabili in qualunque momento) e i pagamenti sono gestiti da Stripe. Magari sono nomi che non ti dicono niente, ma si tratta dei principali e più affidabili fornitori di servizi hi-tech a livello mondiale. Quindi non stiamo parlando di un applicativo amatoriale, ma semmai di un MVP (minimum viable product) assolutamente di livello enterprise. Forse non dovrei dirlo io, ma è sinceramente quello che penso.

Back to the point. Riprendiamo il filo del discorso e torniamo allo sfide che ti voglio raccontare. Si tratta delle situazioni che mi hanno impegnato di più nel trovare una soluzione efficiente o anche semplicemente nel trovare una soluzione.

Partiamo dall’inizio, con la registrazione utente e la creazione azienda. Buona lettura !

Registrazione utente e creazione azienda

La sfida nella procedure di registrazione a Smart Expense è stata quella di riuscire in 3 soli passaggi ad ottenere tutte le informazioni necessarie per il funzionamento del programma e l’identificazione corretta dell’azienda di appartenenza.

Nella soluzione realizzata ho cercato di evitare richieste di informazioni inutili o che si possono eventualmente inserire in una fase successiva. E’ infatti sufficiente indicare nome e cognome, il genere (serve solo per rivolgersi correttamente al maschile o al femminile nei testi e nelle email) e la lingua preferita (disponibile solo Italiano e Inglese). 

 La foto del profilo rappresenta sempre un tocco personale, ma se non si mette viene inserito un avatar al suo posto. 

Il secondo passaggio chiede di indicare l’azienda di appartenenza, inserendo il Codice Azienda fornito in fase di prima creazione o la partita IVA (solo Italiana). Se l’azienda non è presente, ne viene proposto l’inserimento. Una funzione di collegamento agli archivi VIES permette di scaricare direttamente i principali dati aziendali inserendo la partita IVA.

E’ chiaramente possibile inserire aziende di fantasia, anche se proprio non ne vedo la ragione. In ogni caso vengono effettuati dei controlli successivi, sia con le email degli utenti registrati che tramite richiesta di fornire una visura dell’azienda da cui risulti la legittima titolarità. Ogni abuso potrà essere perseguito e l’account sarà prontamente disattivato se non viene corretto.

Nel terzo ed ultimo passaggio viene creata la nuova azienda e fornito un codice univoco di identificazione in Smart Expense. Ma soprattutto si prevede l’identificazione “forte” dell’utente tramite richiesta del numero di cellulare a cui verrà inviato un SMS con un codice di verifica da inserire a conferma della propria identità. Una volta confermato il numero di cellulare, si conclude la fase di registrazione e verrà inviata una mail di benvenuto. 

Registrazione utente di un’azienda esistente

Naturalmente, oltre al caso in cui si registra un nuovo utente che crea un’azienda occorreva anche gestire quantomeno il caso del nuovo utente che appartiene ad un azienda già registrata. Qui la sfida è stata quella relativa a mantenere la semplicità del processo pur garantendo elevati livelli di riservatezza e separazione dei dati.

Quindi,  se il nuovo utente inserisce una partita IVA esistente o conosce il Codice assegnato da Smart Expense alla sua azienda, la soluzione proposta prevede che non venga evidentemente creata una nuova azienda. All’utente viene solo chiesto di confermare la sua appartenenza all’azienda indicata. Nel terzo e ultimo passaggio si procede coma abbiamo visto con la “strong authentication” del numero di telefono cellulare e l’utente viene creato.

 In questo caso l’utente che si è aggiunto ad una azienda NON E’ ATTIVO sino a quando un utente amministratore conferma la sua identità. Come utente non attivo potrà comunque inserire le sue spese e creare gli eventi che le raggruppano. Viene inibita la creazione della nota spese sino a quando l’utente non viene confermato.

Primo accesso utente in una nuova azienda

Ho sin qui descritto la fase di registrazione di un nuovo utente. Niente a che vedere con le note spese, ma tutto molto importante per la sicurezza del sistema e la corretta gestione delle aziende e dei team aziendali. Ma quando un utente clicca sulla conferma finale della registrazione è altrettanto importante farlo accedere ad una pagina di accoglienza che mostri chiaramente quali sono le azioni che può eseguire.

Ed infatti la soluzione proposta è l’uso di una dashboard in cui vengono visualizzati di volta in volta dei box grafici con informazioni o notifiche di interesse per l’utente. Vediamo quindi cosa accade al primo accesso del nuovo utente che ha anche creato una nuova azienda.

Occorre precisare che all’utente che ha creato una nuova azienda viene assegnato il ruolo di amministratore del sistema, per cui ha accesso a tutte le funzionalità del programma ed alla sezione di set-up del sistema.

Una decisione importante presa durante la prima fase di  sviluppo del programma è stata quella di creare dei modelli di dati particolarmente significativi per la gestione delle note spese e di trasferirli automaticamente alle nuove aziende.

In fase di creazione della nuova azienda è infatti accaduto qualcosa “dietro le quinte”, per permettere al nuovo utente di usare subito e correttamente il programma. Sono state create automaticamente tutte le tabelle di dati necessarie al buon funzionamento della procedura. Ogni spesa deve infatti potere essere correttamente classificata in base alla sua tipologia, alla categoria ed al gruppo di appartenenza. Queste classificazioni hanno un preciso significato sia dal punto di vista contabile che dal punto fiscale. Per questo è stata predisposta una procedura in background per la modellazione di tutti i dati che tiene conto delle esigenze informative mediamente riscontrabili in un azienda italiana. Per quanto è sempre possibile modificare tutti i dati di set-up, gli schemi standard assicurano il corretto funzionamento dell’intera procedura.

Se sei interessato all’argomento, iscriviti alla mailing list.

Inserimento delle singole spese

L’inserimento di una singola spesa è la prima azione suggerita al nuovo utente, in modo tale che possa subito provare la facilità d’uso della piattaforma. E’ sufficiente cliccare su “Nuova Spesa” per accedere alla maschera di input dati.

Chiaramente l’aspetto grafico, la quantità di informazioni e il tempo richiesto per l’inserimento dati sono tutti elementi sui quali ho dovuto fare molte riflessioni, nel tentativo di offrire un modo semplice ed immediato di caricamento delle spese. Per questo ho deciso di suddivide in due passaggi principali l’inserimento di una nuova spesa: un primo step che è sempre obbligatorio ed un secondo step, chiamato “completa” dati, che è invece opzionale e si può attivare o meno dalla pagina di set-up del programma.

Vediamo subito la prima fase, obbligatoria, che richiede solo i dati minimali di ciascuna spesa. A partire dalla data di pagamento (che in vari casi – come ad esempio per  gli hotel o per le spese online – non corrisponde alla data in cui il servizio è stato fruito), dalla valuta (c’è anche la gestione cambi automatica, NDR) e dalla modalità di pagamento (contanti, carta aziendale o prepagato azienda). Ovviamente serve indicare l’importo.

Per quanto riguarda le classificazioni, come sappiamo sono già state create tutte le tabelle e le relazioni per cui occorre solo indicare il gruppo di spesa, seguito dalla categoria di spesa ed infine dal tipo di spesa.  Ovviamente se per un solo pagamento sono stati acquistati più beni  o servizi, è necessario aggiungere una riga per “splittare” l’importo pagato in più classificazioni di spesa (sempre nel caso dell’hotel, potrebbero esserci in fattura anche dei pranzi o delle spese non rimborsabili). Graficamente la maschera di inserimento spesa è molto semplice e lineare.

Queste informazioni sono oggettivamente sufficienti per rilevare contabilmente in modo corretto la natura della spesa sostenuta dal dipendente ed inserita in nota spese.  Per alcune aziende, magari con poche e semplici spese di trasferta, può essere sufficiente questo livello di dettaglio. Ma per altre aziende ci può essere la necessità di disporre di ulteriori informazioni, quali ad esempio la tipologia e la copia digitale del documento a supporto della spesa o la località in cui è stata effettuata la spesa. In questi casi occorre proseguire con il completamento della spesa.

Se è previsto che tutte le spese devono essere completate con le informazioni aggiuntive, le spese mancanti di queste informazioni supplementari vengono salvate nello stato di “bozza”. Dopo che sono state fornite tutte le informazioni richieste, le spese vengono salvate nello stato “completata”. Solo le spese “completate” possono essere inserite in una nota spese.

Un altro metodo di inserimento spese

Per quanto il percorso di inserimento di una singola spesa sia lineare, a volte l’utente ha la necessità di inserire una serie di spese in modo veloce (rinviando ad una fase successiva l’eventuale completamento delle informazioni).

Per questo ho pensato di proporre una seconda modalità di caricamento delle spese quando si hanno più documento da inserire. La soluzione proposta è quella che prevede la creazione automatica di una serie di spese “provvisorie” che vengono elencare nella stessa pagina e che richiedono solo i dati minimi necessari per la loro validazione di base.

Con il pulsante “salva tutto” è possibile con un solo click salvare in bozza (o come completate se non sono richieste le informazioni aggiuntive) tutte le spese dell’elenco. Un metodo veloce che evita perdite di tempo, soprattutto per chi vuole aggiornare le spese mano a mano che le sostiene, rinviando a fine mese o al momento di predisporre la nota spese tutti i controlli richiesti dalla procedura. 

Auto privata e i rimborsi chilometrici

Sino ad ora abbiamo visto tutte le spese che originano da un pagamento, eseguito dal dipendente con soldi propri, dal dipendente con soldi dell’azienda o direttamente dall’azienda con soldi propri. Ma non bisogna dimentica che esiste un tipo di spesa che non trae origine da un pagamento. Si tratta dei rimborsi chilometrici per uso dell’auto propria.

Anche questo aspetto è stato sfidante, dal punto di vista della realizzazione dell’applicativo, perché ha comportato la creazione di una anagrafica autovetture per ogni utente e la gestione delle tariffe di rimborso comparate con i limiti di esenzione fiscale previsti dalla normativa italiana. Vediamo quale soluzione è stata alla fine proposta.

Innanzitutto il rimborso chilometrico è gestito come una tipologia di “Nuova Spesa”. Se l’utente clicca su  Nuova Spesa / Chilometri Auto e non ha un’autovettura propria, troverà il link “aggiungi auto” che lo rimanda alla sezione autovetture che si trova in anagrafica utente.

I dati anagrafici dell’auto privata sono volutamente ridotti, per non appesantire la gestione con dati inutili. Quindi basta indicare marca, modello, targa e il totale dei chilometri che mediamente si percorrono ogni anno (come vuole il fisco).

Sempre nell’ottica della massima semplificazione, una volta salvati i dati dell’auto viene chiesto all’utente di fare una ricerca sul sito dell’ACI (Automobile Club Italiano) del costo chilometrico della specifica autovettura (se non è presente il modello esatto va bene anche un modello simile) per i chilometri che si stima di percorrere. Questo dato deve essere inserito nel box di sinistra ed è la prima informazione che serve.

Nota: sarebbe stato bello collegare direttamente i dati con il database dell’ACI tramite API, ma nel 2020 l’ACI non ha ancora pensato di mettere a disposizione dei web services pubblici (ad oggi il DB desi costi chilometrici è disponibile solo su CD – sigh ! – e i dati sono contenuti in fogli excel separati, senza nemmeno un indice o una codifica). NDR

La seconda informazione richiesta è la tariffa di rimborso chilometrico che viene riconosciuta dall’azienda all’utente. Può essere solo fissa o uguale alla tariffa ACI. E’ chiaramente richiesto all’utente di conoscere questa informazione.

Anche questa gestione avrebbe potuto essere “complicata” tramite un set-up degli schemi di rimborso aziendale, ma poiché Smart Expense si rivolge alla piccole e medie imprese ho ritenuto sufficiente limitare la gestione a queste semplici informazioni (che garantiscono la possibilità di determinare eventuali quote tassate dei rimborsi km).

Una volta completata l’anagrafica della propria autovettura, l’utente può tornare all’inserimento del rimborso.

Anche la realizzazione della grafica del rimborso chilometrico ha richiesto particolare attenzione, per fare in modo di esporre solo i dati essenziali in modo chiaro e immediato. A parte la data in cui è stata utilizzata l’auto, ho valutato di richiedere solo a quale gruppo di spesa si intende associare il rimborso. La selezione ammessa prevede solo le due opzioni logiche di “Trasferta” e “Corsi di Formazione”.

Le località di partenza e di arrivo sono state invece collegate alla mappe di Google, in modo tale da rilevare tramite API la distanza calcolata tra le due località. In questo modo l’utente può inserire anche l’indirizzo esatto della partenza e dell’arrivo e sarà Google Maps a calcolare la distanza del tragitto (che viene esposta nel box “distanza calcolata”).

Nel caso in cui il percorso fosse particolarmente complesse, è possibile aggiungere delle tappe intermedie per meglio specificare il tragitto effettuato (esempio da Milano a Brescia passando per Pavia). Naturalmente è sempre possibile inserire più spese, ciascuna della quali riferita ad una tratta specifica.

L’utente può sempre disattendere le indicazioni di distanza proposte ed inserire nel box “distanza dichiarata” un numero di chilometri diverso da quello calcolato. L’importo del rimborso viene chiaramente calcolato sulla base della distanza dichiarata moltiplicata per la tariffa di rimborso aziendale spettante.

Nella parte inferiore della pagina ho ritenuto utile esporre la mappa di Google con le indicazioni stradali relative alla distanza percorsa. Al momento non è possibile modificare il percorso trascinando la tratta, ma potrebbe essere una idea per un futuro sviluppo. 

Dall’elenco spese agli eventi (opzionale)

La gestione dell’inserimento spese è senz’atro la parte centrale di un tool come Smart Expense. Ma una volta caricate le spese e completate con tutte le informazioni richieste, occorre affrontare il tema cruciale (almeno in Italia) della loro associazione ad una trasferta.

L’esigenza di raggruppare le spese per trasferta deriva innanzitutto dalla necessità di dare evidenza che le spese sono “inerenti” all’attività di impresa (e di conseguenza deducibili dai suoi redditi). Ma in molti casi si tratta di un eccessivo appesantimento della procedura, che costringerebbe a creare una trasferta anche se per la minima uscita di servizio ch ha comportato l’uso di mezzi pubblici o di un taxi.

Inoltre la trasferta è solo una delle ragioni per cui un dipendente potrebbe sostenere delle spese di lavoro che devono essere rendicontate all’amministrazione aziendale. C’è ad esempio la partecipazione ai corsi di formazione, che non è una trasferta in senso stretto ma può comportare comunque il sostenimento di spese di trasporto vitto e alloggio. C’è ad esempio il sostenimento di spese di ospitalità e rappresentanza, che a volte avviene nell’ambito di una trasferta ma che in molti casi è relativo al semplice pranzo d’affari con clienti (che non configura ovviamente una trasferta). Ci sono poi gli acquisti di beni e servizi effettuati per conto dell’azienda, magari utilizzando carte di credito aziendali on-line, che dovrebbero essere comunicati in qualche modo all’amministrazione contabile e non fanno parte di alcuna trasferta. Ci sono poi le spese sostenute nell’ambito dei piani di welfare flessibili, che hanno altrettanta necessità di rendicontazione ma non appartengono ad alcuna trasferta. 

 Per queste ragioni ho pensato che il modo migliore per dare soluzione a tutte queste argomentazioni fosse quello di permettere all’utente di creare degli “eventi” all’interno dei quali raggruppare le relative spese.

La tecnica usata per la creazione degli eventi e l’associazione delle spese è stata quella del “drag & drop”. Mi è parso più immediato ed intuitivo permettere all’utente di trascinare un oggetto dentro un altro, piuttosto che digitare di nuovo i dati. Per questo è possibile creare un evento semplicemente trascinando una spesa all’interno dell’area segnalata. E poi sarà possibile aggiungere e togliere spese da tutti gli eventi in bozza. In questo modo è stato raggiunto l’obiettivo.

La creazione della nota spese

Dopo avere sperimentato con gli eventi l’utilizzo delle tecniche di “drag & drop”, ho trovato questo meccanismo molto funzionale ed ho pensato di usarlo anche per la creazione della nota spese. In effetti riduce notevolmente i tempi di redazione ed elimina ogni possibilità di errore. Per questo ho lavorato alla composizione della nota spese, più che alla sua redazione. Per l’utente è sufficiente cliccare su “nuovo report” (così sono chiamate le note spese in Smart Expense) ed aggregare per trascinamento le singole spese e gli eventi (con tutte le loro spese).

L’attività richiesta è veramente semplice. E, quando l’utente ritiene di avere terminato con l’inserimento delle spese e degli eventi che intende rendicontare in nota spese, è sufficiente che chiuda le finestre di dettaglio per avere pronta la sua nota spese finale. Pronta per l’invio in approvazione al proprio manager.

Vuoi saperne di più sulla corretta gestione delle spese di viaggio e trasferta ?

Mandami un messaggio e ti risponderò al più presto.

2 + 12 =

Smart Expense

Crea la tua nota spese in pochi minuti.

 

Registrati e inserisci le tue spese sostenute per lavoro o con carte aziendali. Cosa aspetti ?

 

Prova Gratis
Hey, hai una domanda ?
Chat Studio Failla
Buongiorno, inserisci qui il testo del tuo messaggio e clicca su invia ...
Share This