Mappa Via Marconi 20, Bussolengo (VR)
Email info@devinterface.com

Intervista al nostro CEO Claudio sulle metodologie di lavoro applicate e sulle relazioni coi clienti a DevInterface

Intervista al nostro CEO

Indice

Oggi condividiamo con voi un'intervista con il nostro CEO, Claudio, per offrirvi uno sguardo approfondito alle metodologie di lavoro e alle relazioni con i clienti qui a DevInterface. In questo articolo, esploreremo il cuore pulsante della nostra azienda, scoprendo come applichiamo metodologie innovative e come costruiamo solide relazioni con i nostri clienti. Bando alle ciance... al via con le domande!

 

1) Quali metodologie di sviluppo adottate presso DevInterface hanno dimostrato di essere particolarmente efficaci nel contesto dello sviluppo software? 

Ci ispiriamo alla metodologia Agile, ovvero un approccio flessibile e collaborativo per lo sviluppo del software. L'Agile promuove la collaborazione tra team multidisciplinari, la comunicazione continua con gli stakeholder e la capacità di adattarsi ai cambiamenti in modo rapido ed efficiente. Due delle metodologie più popolari che ci piace utilizzare all'interno del framework Agile sono Scrum e Kanban.

Scrum organizza il lavoro in cicli di sviluppo chiamati sprint, solitamente della durata variabile di qualche settimana. Durante ogni sprint, il team si impegna a consegnare un incremento di prodotto completo e pronto all'uso. Con Scrum seguiamo una struttura chiara e suddivisa in eventi regolari come la Sprint Planning, la Sprint Review e la Sprint Retrospective per assicurare la trasparenza e la collaborazione nel processo di sviluppo.

Kanban, invece, è un sistema di visualizzazione del lavoro diviso in colonne che rappresentano lo stato di avanzamento delle attività, come "Da fare," "In corso," e "Fatto." Questo approccio offre una visuale chiara del flusso di lavoro, aiutando il team a identificare i blocchi e a ottimizzare il flusso di lavoro continuamente. 

Entrambe le metodologie, Scrum e Kanban, hanno dimostrato di essere efficaci molto efficaci nella nostra azienda non solo per lo sviluppo software, ma anche per la pianificazione lavorativa relativa al web design, all’UX/UI design così come al marketing. 

 

2) Puoi spiegare come avete integrato metodologie agili nel vostro processo di sviluppo? Quali benefici avete riscontrato?

Certamente, posso affermare che a DevInterface abbiamo integrato con successo le metodologie agili nel nostro processo di sviluppo, prendendo ispirazione principalmente proprio da Scrum e Kanban. Partendo da questi approcci abbiamo creato un processo personalizzato che si adatta alle nostre esigenze specifiche.

Innanzitutto abbiamo strutturato il nostro lavoro in sprint di sviluppo della durata di 2-3 settimane, a seconda delle specifiche dei progetti che affrontiamo. Alla fine di ogni sprint, oltre a svolgere riunioni di retrospettiva interne per valutare quanto fatto durante lo sprint, organizziamo incontri frequenti con il cliente per analizzare e definire gli obiettivi del prossimo sprint. Questo approccio ci consente di mantenere un flusso costante di comunicazione con il cliente, garantendo che il nostro lavoro sia sempre allineato alle sue reali esigenze.

Con l'approccio a sprint costruiamo progetti passo dopo passo, in modo da poter apportare modifiche durante il processo di sviluppo. Questa flessibilità si è dimostrata estremamente preziosa, in quanto riduce la necessità di change request, poiché le modifiche possono essere facilmente integrate durante l'analisi e la pianificazione di ogni sprint. Inoltre, testando un gruppo specifico di funzionalità in ciascuno sprint, siamo in grado di identificare e risolvere tempestivamente eventuali anomalie, riducendo così significativamente il numero di bug nei prodotti finali.

Oltre agli incontri con il cliente, conduciamo anche uno stand up meeting interno ogni mattina. Questo breve incontro quotidiano ci consente di avere una visione chiara di cosa sta facendo ciascun membro del team, individuando eventuali sfide e pianificando cambiamenti nella programmazione in modo tempestivo. Si tratta di una soluzione che ci aiuta a mantenere un alto livello di collaborazione e comunicazione all'interno del team, migliorando l'efficienza e la produttività complessiva.
 

3) Come gestite la collaborazione e la comunicazione tra i membri del team durante i progetti di sviluppo software complessi?

Nel gestire la collaborazione e la comunicazione tra i membri del nostro team durante progetti di sviluppo software complessi, ci affidiamo a un approccio strutturato che tiene conto della natura distribuita del nostro team. Utilizziamo un sistema di project management centralizzato in cui definiamo tutte le attività necessarie per il progetto, inclusi task relativi alla sfera della progettazione, sviluppo, web design e UX/UI. Questo ci consente di avere una visione chiara delle attività in corso e di monitorare lo stato di avanzamento del progetto in tempo reale.

Inoltre, per garantire una comunicazione efficiente, mettiamo a disposizione del team documenti di sviluppo dettagliati, come documenti funzionali, file di configurazione per vari ambienti e schemi architetturali. Questi documenti forniscono una guida chiara su cosa deve essere realizzato e aiutano a mantenere tutti i membri del team allineati sulle specifiche del progetto.

Per quanto riguarda la comunicazione tra i membri del team, utilizziamo piattaforme di comunicazione sincrone e asincrone. Per la comunicazione sincrona, facciamo ampio uso di Slack, un'applicazione di messaggistica istantanea, che ci consente di scambiare messaggi in tempo reale e facilita la comunicazione rapida tra i membri del team, anche se sono distribuiti in diverse posizioni geografiche. Organizziamo anche riunioni di allineamento regolari tramite videochiamate su Google Meet. Queste riunioni forniscono un'opportunità per discutere dettagliatamente gli aspetti del progetto, risolvere eventuali problemi e mantenere una comunicazione faccia a faccia anche se i membri del team non si trovano fisicamente nello stesso luogo.

In questo modo, gestiamo la collaborazione e la comunicazione in modo efficace, garantendo che tutti i membri del team siano informati, allineati e in grado di contribuire in modo significativo al successo del progetto, anche in presenza di complessità dovute alla distribuzione geografica del team.


 

4) Come viene stabilita una comunicazione efficace con i clienti per capire pienamente le loro esigenze e aspettative?

Per assicurare una comunicazione efficace con i nostri clienti e comprendere appieno le loro esigenze e aspettative, adottiamo un approccio flessibile e su misura, adattandoci alla complessità specifica di ciascun progetto.

Inizialmente, durante la fase di primissima comunicazione, eseguiamo una macroanalisi del progetto. Questa analisi ci fornisce una visione generale e ci aiuta a suddividere il lavoro in vari ambiti di competenza. In questa fase, coinvolgiamo attivamente il cliente, chiedendo informazioni e materiale rilevante che possa aiutarci a comprendere meglio le sue necessità e le aspettative.

Nel caso di progetti particolarmente complessi, dopo la macroanalisi, organizziamo ulteriori chiamate con il cliente. Durante queste chiamate, esaminiamo insieme il documento di specifiche iniziale, che è stato redatto dal Project Manager insieme al team di sviluppo e/o al CTO. Questo documento costituisce una guida dettagliata per il progetto e serve da punto di partenza per il nostro lavoro. Il coinvolgimento attivo del cliente in questa fase è essenziale, poiché ci consente di chiarire eventuali dubbi e di apportare modifiche in base ai suoi feedback.

Dopo l'approvazione del documento di specifiche iniziale, iniziamo gli sprint di sviluppo come descritto precedentemente. Durante ogni sprint, manteniamo una comunicazione costante con il cliente. Organizziamo chiamate regolari per analizzare insieme il progresso del lavoro. Durante queste chiamate, discutiamo ciò che è stato sviluppato e riceviamo feedback dettagliati dopo i test effettuati dal cliente. Questi feedback sono preziosi, perché ci permettono di apportare correzioni tempestive e di adeguare il nostro lavoro alle aspettative del cliente.

Inoltre, durante queste chiamate degli sprint, analizziamo anche le attività future e definiamo gli step di sviluppo successivi. Questo processo iterativo di comunicazione ci consente di mantenere una comprensione approfondita delle esigenze del cliente e di adattare continuamente il nostro lavoro per soddisfarle.


 

5) Quali strategie vengono adottate a DevInterface per mantenere un rapporto di fiducia con i vostri clienti durante tutto il ciclo di vita del progetto?

La nostra priorità fondamentale durante tutto il ciclo di vita di un progetto è mantenere un rapporto di fiducia con i nostri clienti. Per raggiungere questo obiettivo adottiamo diverse strategie per costruire e mantenere questa fiducia.

Innanzitutto, puntiamo a una comunicazione aperta e trasparente con i nostri clienti. Ci sforziamo di essere chiari riguardo agli sviluppi del progetto, inclusi i progressi e le sfide che potrebbero emergere. Nel caso si verifichino imprevisti o ritardi, siamo pronti a informare tempestivamente il cliente, illustrando le cause e le misure correttive adottate.

Un altro aspetto fondamentale è il coinvolgimento attivo del cliente nel processo decisionale. Come spiegato precedentemente, organizziamo incontri regolari per condividere aggiornamenti sul progetto, raccogliere feedback dettagliati e valutare le priorità insieme. Questo coinvolgimento diretto aiuta il cliente a sentirsi parte integrante del processo, contribuendo a costruire una relazione di fiducia reciproca.

Manteniamo sempre gli impegni presi con i clienti, rispettando le scadenze concordate e fornendo risultati di alta qualità. La nostra affidabilità nel rispettare gli accordi è essenziale per costruire e mantenere la fiducia nel nostro lavoro.

Inoltre, forniamo una chiara esposizione dei processi che seguiamo. Spieghiamo dettagliatamente al cliente come il suo progetto viene gestito, garantendo così una comprensione completa e trasparente del nostro modo di lavorare. Questa trasparenza contribuisce a dissipare dubbi e incertezze, stabilendo una base solida per la fiducia reciproca.

Riconosciamo l'importanza dell'adattabilità e della flessibilità nei progetti. Siamo pronti ad affrontare cambiamenti o richieste inattese con un approccio aperto e flessibile. Questa capacità di adattamento dimostra la nostra dedizione nel soddisfare le esigenze mutevoli del cliente, contribuendo così a rafforzare la fiducia nel nostro team.

Infine, accogliamo i feedback dei clienti in modo costruttivo. Oltre a chiedere opinioni sul prodotto finale, siamo interessati a conoscere anche il loro punto di vista sul nostro processo di lavoro. Utilizziamo ogni commento per migliorare continuamente i nostri servizi, dimostrando così un impegno costante per l'eccellenza.

Attraverso queste strategie, miriamo a creare un ambiente di collaborazione basato sulla fiducia reciproca, assicurando che i nostri clienti si sentano non solo soddisfatti del risultato finale, ma anche sicuri del nostro impegno nel raggiungere e superare le loro aspettative durante tutto il ciclo di vita del progetto.
 

6) In un settore in rapida evoluzione come lo sviluppo software, come vi mantenete aggiornati sulle nuove tecnologie e le best practices?

Cominciamo subito con un aspetto fondamentale: leggere, leggere e leggere. Ci teniamo costantemente aggiornati con articoli, blog e documenti tecnici pubblicati da esperti del settore. Esploriamo siti web specifici, forum di discussione e professionisti del settore su piattaforme come LinkedIn, per rimanere informati sulle ultime tendenze e innovazioni nel mondo dello sviluppo software. Questi riferimenti online ci offrono una panoramica approfondita delle best practices e delle nuove tecnologie emergenti.

Oltre alla ricerca online, investiamo nella progettazione interna diretta come metodo di apprendimento. Creiamo progetti interni come EveryLog, nati da esigenze interne all'azienda. Questi progetti ci offrono l'opportunità di applicare e sperimentare nuove tecnologie e metodologie di sviluppo in un contesto pratico. Ad esempio, EveryLog è stato sviluppato utilizzando tecnologie come GO, React e Flutter. Coinvolgendo nuovi membri del team, permettiamo loro di utilizzare questi linguaggi in un ambiente di progetto reale. Questo non solo consolida la nostra conoscenza delle tecnologie esistenti, ma ci permette anche di esplorare nuovi orizzonti e padroneggiare sempre meglio queste tecnologie emergenti. Questa esperienza pratica ci rende più preparati per implementare queste conoscenze nei progetti dei nostri clienti, garantendo un livello di competenza elevato.


 

7) Quali sono alcune delle sfide più comuni che avete affrontato nel corso dei progetti e come le avete superate?

Nel corso dei nostri progetti, abbiamo affrontato diverse sfide, alcune delle quali sono comuni a molte situazioni nello sviluppo software. Una delle prime e più fondamentali sfide riguarda la traduzione delle richieste e delle esigenze dei clienti in specifiche definite e dettagliate. Questa fase è cruciale perché determina il corso del progetto. La parte più critica è far emergere, già durante l'analisi iniziale, tutte le possibili problematiche che potrebbero sorgere. Ad esempio, dobbiamo considerare come gestire il flusso dei pagamenti e gli eventuali rimborsi, definire le diverse tipologie di utenti previsti e decidere quali permessi assegnare a ciascuna categoria. Identificare e risolvere questi aspetti durante l'analisi iniziale ci consente di sviluppare il software in modo più fluido, riducendo così il numero di revisioni e modifiche necessarie in seguito.

Un'altra sfida comune riguarda gli aspetti grafici del progetto, come la definizione di temi e layout che soddisfino non solo il gusto del cliente, ma anche le esigenze degli utilizzatori del sistema. È essenziale trovare un equilibrio tra il design estetico e l'usabilità. Seguiamo linee guida rigorose in materia di usabilità, ma allo stesso tempo dobbiamo assicurarci che il design sia accattivante e intuitivo per gli utenti finali. Per superare questa sfida, conduciamo approfondite analisi e discussioni con il cliente. Questi incontri ci consentono di comprendere appieno le aspettative del cliente e di raccogliere feedback preziosi dagli utilizzatori finali. Queste informazioni ci guidano nella creazione di documenti di riferimento che fungono da guida durante lo sviluppo. Questi documenti ci aiutano anche a "congelare" le scelte fatte e concordate, fornendo una base stabile su cui costruire il resto del progetto.

Non dimentichiamoci anche la sfida di gestire simultaneamente diversi progetti, ciascuno con tecnologie e requisiti unici. La necessità di coordinarli in modo efficace, mantenendo allo stesso tempo uno spazio dedicato per le attività di manutenzione e aggiornamento, è una delle sfide più rilevanti che affrontiamo regolarmente. La nostra capacità di bilanciare le richieste di progetti in corso con l'esigenza di rimanere sempre aggiornati e allineati con le ultime tecnologie è cruciale. Per farlo, adottiamo una rigorosa pianificazione e un approccio flessibile che ci consente di prioritizzare le attività in base alle esigenze immediate dei clienti e allo stesso tempo garantire che tutti i nostri progetti rimangano aggiornati e performanti nel lungo termine.

 

8) Quali sono i vostri obiettivi futuri per DevInterface? Ci sono nuove iniziative o progetti che state pianificando?

Guardando al futuro, abbiamo ambiziosi obiettivi per DevInterface che riflettono la nostra costante ricerca di innovazione e crescita. A livello aziendale, stiamo esplorando nuove tecnologie per migliorare la nostra efficienza e la nostra capacità di rispondere alle esigenze del mercato in evoluzione. Stiamo sperimentando tecnologie low-code e no-code, come Supabase, per la creazione rapida di MVP (Minimum Viable Product) e soluzioni prototipo, consentendo ai nostri clienti di testare le loro idee in modo più rapido ed economico. Inoltre, stiamo esplorando ulteriori linguaggi di programmazione come Elixir, che stiamo già utilizzando per nuovi progetti. L'adozione di nuovi linguaggi ci permette di diversificare le nostre competenze e di offrire soluzioni sempre più su misura per le esigenze specifiche dei progetti.

Un importante obiettivo è consolidare e far evolvere EveryLog, il nostro prodotto SaaS di punta. Intendiamo arricchirlo con nuove funzionalità che lo renderanno sempre più innovativo e all'avanguardia. Ci impegniamo a rendere EveryLog una soluzione completa e versatile che soddisfi le esigenze dei nostri clienti, fornendo loro strumenti sempre più potenti per la gestione e l'analisi dei dati e degli eventi in tempo reale. Inoltre, stiamo lavorando attivamente sulla pianificazione e l'implementazione di una solida strategia di marketing per EveryLog. Vogliamo aumentare la visibilità del nostro prodotto sul mercato, raggiungendo un pubblico più ampio di potenziali clienti e dimostrando il valore unico che EveryLog può offrire nel campo della gestione dei dati.