Web Engineering Delivered: cosa significa?

28th Jul 2023
Blog

WEB ENGINEERING DELIVERED: queste parole accompagnano così tanto il nostro modus operandi che lo abbiamo trasformato nel nostro payoff, ossia l’espressione che accompagna il nostro logo negli elementi grafici che rappresentato la nostra identità.

Diverse volte, però ci siamo chiesti: “I nostri clienti, i nostri collaboratori, il nostro network e tutta la nostra rete riesce a capire che cosa significa questa espressione?” “Siamo certi che stiamo comunicando ciò che significa per noi, al di là del concetto tecnico?” Nel dubbio, rimediamo subito!

IL CONCETTO TECNICO DI DELIVERY

La Continuous Delivery è un approccio metodologico allo sviluppo dei software introdotto per poter eseguire contemporaneamente le fasi di sviluppo, rilascio, feedback e gestione della qualità a piccoli intervalli di tempo a ciclo continuo e in modo automatizzato. Lavorando in questo modo, è possibile consegnare il lavoro al cliente in tempi record, rendere l’operatività più efficiente e ridurre al minimo (se non eliminare del tutto) errori ed inefficienze.

La Continuous Delivery permette di fornire al team di sviluppo una serie di feedback ciclici, basati su test automatizzati che monitorano e scansionano i build ad ogni nuova modifica del codice sorgente.

Senza scendere in concetti troppo tecnici, quali sono i vantaggi della Continuous Delivery per clienti e sviluppatori?

METODO E TEMIPISTICHE DI RILASCIO

Il metodo “tradizionale” di Sviluppo prevede che il rilascio/consegna del software avvenga non appena questo contiene tutte le feature richieste dal cliente, quando non ci sono grosse lacune evidenti e quando “funziona” a dovere. Gli aggiornamenti vengono organizzati dal team di sviluppo ad intervalli regolari, che introducono una serie di nuove funzionalità e la risoluzione di errori e bug rilevati dagli utenti reali viene effettuata periodicamente.

Un approccio di Sviluppo basato sulla Continuous Delivery, invece, prevede che un prodotto venga rilasciato finché è ancora in fase di realizzazione. Il cliente non riceve un software pronto al 100%, ma un prodotto che all’inizio contiene le funzionalità base, che vengono via via testate in un’ambiente reale e che, nel tempo viene completato nella sua totalità. Non esistono aggiornamenti periodici, ma rilasci costanti che ottimizzano l’intero sistema, grazie anche alle migliorie che vengono rilevate in ambiente reale dagli utenti, che diventano parte integrante del sistema di controllo di qualità.

IL SISTEMA DI FEEDBACK

In un sistema di sviluppo tradizionale è difficile gestire segnalazioni importanti in tempi brevi e si viene a creare una situazione spiacevole: il cliente si aspetta di ricevere un prodotto senza errori e lo sviluppatore non riesce a risolvere gli eventuali errori nei tempi attesi.

In un approccio basato sulla Continuous Delivery, le segnalazioni e i feedback che il team operativo riceve dagli utenti in fase di sviluppo contribuiscono a migliorare e rendere più efficace il prodotto finale. L’interazione e il controllo qualità vengono fatti in real time e le migliorie possono essere apportate subito. Con questo sistema, il cliente può esprimere le proprie idee e i propri desideri sugli sviluppi futuri e il team operativo è in grado di implementare una soluzione “cucita” su misura, capace di tenere conto di necessità che ad inizio progetto erano rimaste inespresse.

Inoltre, grazie ai test automatici che vengono effettuati ad ogni modifica, si possono evitare errori e bug tecnici finchè il team sta ancora lavorando su un determinato componente. Senza questo sistema di controllo, il bug verrebbe rilevato mesi e mesi dopo il rilascio e la sua risoluzione potrebbe risultare particolarmente dispendiosa per entrambe le parti.

Prima di ogni rilascio, il software attraversa una sorta di Pipeline, formata da controlli manuali ed automatici che permettono di versionare il software. Solo quando l’esito della pipeline è corretto, il software viene pubblicato (noi lo chiamiamo “release”) e il prodotto che il cliente avrà in mano sarà pressochè senza errori.

I vantaggi si vedono anche sul lato dei costi, perché il software viene sviluppato più velocemente, gli interventi di manutenzione vengono ottimizzati e la fase di test è parte integrante del lavoro.

La Continuous Delivery è un approccio win-win: lo sviluppatore lavora in modo organizzato ed efficiente e il cliente riceve un prodotto che, anche se non è completo al 100% nella prima fase, è sempre funzionante e destinato solo a migliorarsi e a declinarsi sempre di più alle esigenze specifiche degli utilizzatori finali.

WEB ENGINEERING DELIVERED: LA NOSTRA FILOSOFIA

Tecnicamente, il nostro team di sviluppo lavora in questo modo da sempre e nel corso degli anni abbiamo constatato che questo è l’unico metodo di lavoro che “paga”, perché si basa su:

  • Trasparenza: i vari rilasci e le varie feature in essi contenuti vengono discussi e concordati con il cliente
  • Collaborazione: non lavoriamo per sei mesi senza avere un feedback del cliente sullo stato avanzamento dei lavori, ma riceviamo input di miglioramento dai clienti ogni giorno (e più volte al giorno)
  • Efficienza: il tempo è denaro per tutti e se qualcosa può essere migliorato (o se emerge qualche bug) è meglio farlo il prima possibile
  • Fiducia: con il cliente si instaura una relazione che va spesso al di là del lavoro perché nello sviluppo di piattaforme estremamente complesse (come alcuni progetti BQUADRO) c’è bisogno di un tempo progettuale ed implementativo medio-lungo, dove ci si conosce reciprocamente e si instaura un rapporto di collaborazione e stima che porta sempre a risultati migliori di quanto previsto all’inizio del progetto.

Tiriamo le somme.

Cos’è la Delivery? È il nostro approccio al nostro lavoro. Nei nostri primi 10 anni di attività, di progetti ne abbiamo visti e fatti tanti, alcuni più semplici e altri più complessi, ma in tutti la costante è sempre la stessa: la delivery del progetto non è il punto di arrivo, ma il punto di partenza. Noi non “consegniamo” software, piattaforme e progetti di web marketing, ma tramite questi, aiutiamo le aziende a raggiungere i loro obiettivi. Quello che creiamo sono strumenti che consentono loro di raggiungere obiettivi ambiziosi, che evolvono nel tempo (perché inevitabilmente l’azienda evolve).

Non consegniamo un software e lo aggiorniamo una volta all’anno. Fissiamo, piuttosto, dei requisiti iniziali e delle fasi che contengono funzionalità da rilasciare piano piano. Se l’obiettivo è automatizzare al 100% la gestione dei ricambi di un’azienda che realizza trattori che esporta in tutto il mondo, prevederemo dei rilasci che piano piano automatizzano le attività per l’azienda più prioritarie in questo momento e, nel corso di un arco di tempo concordato, arriveremo ad automatizzare il 100%. Se l’obiettivo è ottenere una Lead generation stabile con una serie di campagne di web marketing, non ci limitiamo a fornire un tot di contatti, ma studiamo insieme come gestire anche il follow-up necessario per trasformare i lead in clienti.

Sono solo un paio di esempi e ci fermiamo qui altrimenti possiamo andare avanti all’infinito, ma il concetto è questo.

WEB ENGINEERING DELIVERY: raccontaci il tuo progetto, spiegaci dove vuoi arrivare, facci partecipi del tuo piano di sviluppo. Noi ti aiuteremo a concretizzarlo con gli strumenti più adatti per il tuo presente e per abilitarti ad alzare l’asticella.

Vieni a vedere come lavoriamo, mettici alla prova!

Se hai già in mente la tua prossima vetta, la trasformeremo nel tuo prossimo traguardo!