All'inizio di quest'anno ci siamo imbattuti su di un progetto e-commerce piuttosto lungo e impegnativo: una  struttura del catalogo prodotti complessa e una serie di personalizzazioni ad-hoc legate al settore merceologico trattato.

Dal punto di vista dello sviluppo software, avere tempi lunghi di lavorazione significa operare contemporaneamente su più fronti. Oltre a sviluppare le funzionalità richieste, non bisogna dimenticare di mantenere aggiornati gli strumenti di sviluppo e verificare che le funzionalità già sviluppate siano compatibili con gli aggiornamenti fatti.

Una buona abitudine è quella di non posticipare le attività di mantenimento del proprio progetto anche durante la fase di sviluppo. Si rischia altrimenti di trovarsi il giorno della pubblicazione online con problematiche ancor più complesse dovute al cosiddetto “Technical Debt”.

Prendiamo ad esempio gli indispensabili aggiornamenti di sicurezza dei CMS opensource come Drupal. Spesso capita che durante lo sviluppo vengano rilasciate nuove versioni di Drupal e dei suoi moduli. Diligentemente noi manteniamo aggiornato il tutto, ma può accadere che qualcosa, che avevamo già sviluppato e già testato, ora non funzioni più.

In questi casi dobbiamo ristrutturare parte di quello che abbiamo già sviluppato. Si tratta di un'attività non predicibile che potenzialmente è destinata ad incidere maggiormente in progetti che richiedono molto tempo di lavorazione. Se teniamo conto che a partire da gennaio 2015 è stata rilasciata una nuova versione di Drupal7 mediamente ogni 6 settimane, è facile immaginare l’impatto che possono avere anche semplici attività di aggiornamento nel processo di sviluppo. 

Per mantenere in buono stato il tuo progetto, non si può fare a meno della "manutenzione in corso d'opera". Bisogna avvalersi di una procedura di lavorazione in grado di tenere sotto controllo l’evoluzione del progetto e di velocizzarne il processo di sviluppo. Inizialmente utilizzavamo una procedura che avevamo creato appositamente, ma come qualsiasi altra automazione software, anch'essa necessitava di un'attività di manutenzione. Invece di alleggerirci il lavoro di sviluppo, ce lo stavamo appesantendo.

Abbiamo perciò deciso di trovare un partner che si occupasse della parte di DevOps, lasciandoci liberi di focalizzarci su quello che sappiamo fare meglio: realizzare progetti web. La nostra scelta è stata Platform.sh, una piattaforma realizzata dai Commerce Guys che abbiamo avuto il piacere di conoscere personalmente al DrupalCon di Amsterdam nel 2014.

I risultati di questa nostra scelta sono stati:

  • 100% del tempo di sviluppo focalizzato sul progetto;
  • rilasci degli aggiornamenti continui e veloci;
  • tempo massimo per eseguire un rilascio, 5 minuti.