Una API è una interfaccia fra software diversi, che ne permette la comunicazione. In molti casi è vista come il Santo Graal dell’integrazione fra sistemi, perchè nasconde i dettagli del funzionamento interno dei componenti o delle varie piattaforme. Frequentemente la definizione dei boundaries e delle specifiche lascia a desiderare: ci si ritrova a lavorare con qualche esempio di un formato dati, e il funzionamento interno delle diverse piattaforme non è nascosto.
L’implementazione e/o l’utilizzo di una API dovrebbe aumentare la velocità e la produttività complessive del servizio aziendale, ma è necessario innanzitutto considerare il processo e gli elementi della soluzione. Se gli sviluppatori tentano di integrare applicazioni con infrastrutture e protocolli contrastanti, è necessario più tempo per adattare i componenti. Pertanto, il management dovrebbe ricercare e consultare il proprio reparto IT e gli sviluppatori prima di determinare quali modelli e funzioni API miglioreranno le operazioni.
Quando questo non avviene i requisiti saranno sottospecificati, e si renderà necessario rivedere frequentemente le specifiche durante molte fasi di scrittura del codice: i tempi della lavorazione si allungheranno, e il risultato potrebbe non essere ottimale.
Elementi fondamentali da tenersi in considerazione possono essere:
Quando i requisiti sono sottospecificati è ancora più importante effettuare con attenzione i test di integrazione (I&T) ed i controlli di qualità (QC). Una volta che i moduli di codice sono stati scritti (idealmente assieme ai rispettivi test unitari), è possibile applicare un approccio di tipo big-bang. Dopo aver agganciato fra loro i vari moduli per formare il sistema completo, che fornisce al business ciò che questo si aspetta di ottenere dall’integrazione, va testato il sistema nel complessivo.
Spesso gli sviluppatori vorrebbero saltare quest’ultima fase, per pigrizia o per semplificare il proprio lavoro. Talvolta per nascondere della proverbiale polvere sotto il tappeto. In realtà è il passo più importante di tutto il lavoro di integrazione, perchè permette di capire cosa si otterrà praticamente dall’integrazione sviluppata attraverso l’utilizzo delle API.