Salta ai contenuti

Collaboration Framework per progetti web

Con il Collaboration Framework, Swico promuove una maggiore trasparenza nell’avvio dei progetti web e definisce così una base pratica per una buona collaborazione.

Il Collaboration Framework mette in relazione linee guida, basi giuridiche e buone pratiche. Gli operatori di mercato elaborano i contenuti pratici del framework e li sviluppano costantemente.

Durante gli eventi roundtable si discutono le sfide attuali, che vengono integrate e sviluppate nel Collaboration Framework di comune accordo. In questo modo si evidenziano i punti di attrito nella collaborazione tra committenti e fornitori nei progetti web e si promuove la comprensione delle esigenze reciproche.

RFP o pitch

Se preparata correttamente, una richiesta di offerta (RFP) o una presentazione nell’ambito di una gara (pitch) può essere l’inizio di una collaborazione a lungo termine. Nella pratica, la mancanza di accordi o la loro poca chiarezza dopo il pitch o la presentazione dell’RFP genera spesso conflitti che possono sfociare in lunghe controversie legali, ma soprattutto nell’insoddisfazione di entrambe le parti.

Request for Proposal (RFP)

Si rinuncia al pitch e si richiede invece un’offerta. Sulla base delle offerte vengono selezionate le agenzie con cui approfondire il progetto. In questo contesto, il termine RFP comprende anche le richieste che portano a una decisione diretta.

Con l’RFP si chiede al fornitore di sviluppare e quantificare una soluzione per i requisiti. Oltre ai prezzi, con l’RFP il fornitore presenta già le prime idee di attuazione e gli approcci risolutivi per l’incarico, che vengono messi a disposizione del committente senza compenso o indennità di tutela.

Presentazioni nell’ambito di una gara (pitch)

Le presentazioni nell’ambito di una gara vengono indette per scegliere l’agenzia più adatta a un progetto o a un incarico. Nel briefing, il committente descrive il compito previsto per il pitch. Il briefing ne costituisce la base ed è l’interfaccia principale tra l’azienda e le agenzie.

Sulla base del briefing, il committente formula i propri obiettivi concreti e descrive chiaramente l’incarico affidato all’agenzia. Il briefing dovrebbe essere concordato con il comitato decisionale dell’azienda.

Requisiti per la preselezione

  • Ambito del progetto
  • Informazioni sul committente
  • Scadenze
  • Decisione
  • Compenso
  • Dopo il pitch

Requisiti per la preselezione

  • Considerazioni scritte sull’incarico
  • 3 esempi di lavori
  • Profilo dell’agenzia
  • Testo sulle competenze dell’agenzia rispetto all’incarico
  • Compenso

Durante la procedura di offerta della prima fase, il fornitore offre già una prestazione al committente presentandosi in dettaglio (presentazione dell’agenzia) e illustrando il proprio approccio risolutivo.
Nella prima fase, il committente non dovrebbe richiedere costi dettagliati per i progetti; le tariffe delle agenzie e le tariffe orarie fungono da valori indicativi. In questa fase non si dovrebbero neppure richiedere approcci strategici alla soluzione o idee creative per il concept.

Selezione delle agenzie adatte al pitch

Sulla base delle presentazioni e delle proposte, il committente seleziona, applicando criteri ponderati di idoneità, le tre agenzie che ritiene più adatte all’incarico e le invita alla seconda fase della procedura di selezione.

Fase 2

Nella seconda fase della procedura di pitch, il committente dovrebbe acquisire una comprensione più approfondita del modo di lavorare e dell’approccio del fornitore. A questo punto, il fornitore presenta soluzioni concrete.

Requisiti per la selezione finale

  • Colloquio di briefing
  • Revisione congiunta / rebriefing
  • Compenso per la mancata aggiudicazione
  • Colloquio conclusivo

Requisiti per la selezione finale

  • Briefing
  • Revisione congiunta / rebriefing
  • Presentazione / pitch

Briefing orale e scritto

All’inizio della seconda fase è indispensabile un colloquio di briefing in presenza. La comprensione reciproca dell’incarico e la conoscenza del potenziale futuro partner sono importanti quanto il lavoro svolto per il pitch ai fini della scelta dell’agenzia giusta.

Compenso adeguato per il pitch

Il compenso per il pitch dovrebbe essere stabilito in anticipo. Ogni fornitore può valutare se partecipare a queste condizioni. Lo scopo del compenso non è coprire i costi dell’agenzia, ma garantire che vi siano fondi anche per il progetto. In altre parole, non si fa un pitch solo per «divertimento».
Se si stabilisce un compenso per la mancata aggiudicazione di CHF 3000.–, il committente investe CHF 9000.– per effettuare la selezione.

Oltre al compenso per la mancata aggiudicazione, si può disciplinare anche l’eventuale utilizzo di un concept da parte del committente, senza che il fornitore lo realizzi. Per esempio, se il fornitore ritiene che il concept sia molto valido, ma l’intesa tra le parti non è buona, il committente può realizzare il concept con un altro partner pagando un compenso. Il compenso trasferisce il diritto di utilizzo.
In ogni caso, le agenzie non selezionate ricevono un compenso per il pitch (il cosiddetto compenso di protezione).

Requisiti per la presentazione

Presentazione del concept, del design e della fattibilità, inclusi prototipi cliccabili per siti web o app.

Alternative al pitch / RFP

Le presentazioni nell’ambito di una gara possono essere sostituite da «progetti preliminari» con potenziali committenti. Questi progetti, di portata piuttosto limitata, coprono una parte del progetto da realizzare. Collaborando di persona a un incarico concreto, entrambe le parti capiscono abbastanza rapidamente se la collaborazione può funzionare. Sono determinanti la condivisione dei valori e delle aspettative da parte del team di progetto, la compatibilità del team e, naturalmente, la qualità dei risultati rispetto alle esigenze e ai requisiti. Questo aspetto della collaborazione — il modo in cui lavorano insieme le persone del committente e del fornitore — viene quasi completamente trascurato nel pitch, dove contano soltanto i fatti, il budget e i risultati.

Linee guida sui requisiti

L’esperienza dimostra che durante il progetto cambia almeno il 30 % di un catalogo dei requisiti: alcuni requisiti vengono eliminati, se ne aggiungono di nuovi oppure quelli esistenti vengono modificati nei contenuti. Nella maggior parte dei casi i progetti software non possono essere pianificati in ogni dettaglio, perché durante il progetto emergono molte incognite o cambiano le circostanze. Gli errori tipici più frequenti:

Mancanza di una persona o di una visione

  • Errore: la visione o la persona di riferimento dell’applicazione non è chiara.
  • Rischio: i requisiti vengono definiti in modo errato o poco chiaro e si finisce per investire male.
  • Buona pratica: definire chiaramente all’inizio del progetto la visione, le personas e le loro esigenze e usarle sempre come riferimento.

Livello di dettaglio eccessivo dei requisiti

  • Errore: descrivere i requisiti fin nei minimi dettagli.
  • Rischio: le informazioni e le circostanze cambiano continuamente durante il progetto e se ne aggiungono di nuove. Se ci si attiene ai requisiti dettagliati, si rischia di sviluppare qualcosa che non corrisponde più alla realtà.
  • Buona pratica: raccogliere i requisiti funzionali in orizzontale (user journey) e in verticale (singole funzionalità di estrema importanza). Definire gradualmente i dettagli.

Mancato coinvolgimento del committente durante il progetto

  • Errore: il committente si riserva del tempo per testare soltanto alla fine del progetto.
  • Rischio: ci si accorge solo alla fine di ciò che è stato dimenticato, di ciò che manca ancora o di ciò che non è adatto alla persona di riferimento.
  • Buona pratica: sviluppare e testare a intervalli regolari, d’intesa con il committente, e apportare continuamente modifiche in base al massimo valore aziendale.

Termini e definizioni

  • Committente 
    È la parte che commissiona lo sviluppo di un’applicazione o di un sito web.
  • Fornitore
    È la parte che sviluppa l’applicazione o il sito web su incarico del committente.

  • Cliente finale / utente / utilizzatore
    Indica la persona che utilizza infine l’applicazione.

  • Team interfunzionale
    È composto da sviluppatori e sviluppatrici, specialisti e specialiste di user experience, designer, responsabili di progetto e altri esperti rilevanti per il progetto. Si occupa direttamente del prodotto da realizzare e collabora a stretto contatto con il committente.

  • Persona
    Rappresentazione archetipica dell’utente dell’applicazione o del sito web. Vedi anche
    Persona (in tedesco)

  • Epics
    Temi ampi e generali di un’applicazione e, quindi, anche pacchetti di lavoro. Vedi anche
    Gestione dei requisiti (in tedesco)

  • Requisiti funzionali (RF)
    I requisiti funzionali descrivono le funzionalità desiderate (che cosa deve fare o saper fare il sistema?) di un sistema o prodotto, i relativi dati o il suo comportamento. I requisiti non funzionali riguardano invece la qualità con cui deve essere fornita la funzionalità richiesta. Fonte:
    Requisiti funzionali (in tedesco)

  • Requisiti non funzionali (RNF)
    I requisiti non funzionali descrivono con quale qualità il sistema deve fornire le prestazioni richieste; sono spesso intesi come condizioni quadro e caratteristiche qualitative. Un esempio: il prodotto deve rispondere all’utente entro un secondo. Vedi anche
    Requisito (informatica, in tedesco)

  • User journey
    L’insieme dei passaggi compiuti da un utente per raggiungere un determinato obiettivo con un sistema interattivo. Di solito comprende una serie di pagine web e punti decisionali che guidano l’utente da un passaggio al successivo. Le user journey sono rappresentate nelle mappe del percorso utente, che descrivono in dettaglio tutte le fasi e le esperienze. Vedi anche Netzstrategen – User Journey (in tedesco)

Per realizzare un progetto web occorre definire in anticipo alcuni componenti:

  • Visione, incluse le personas
    Permette al committente e al fornitore di sviluppare una comprensione condivisa degli obiettivi, della user experience e del design dell’applicazione.
  • Requisiti funzionali (RF) – vedi i termini
    Definizione generale delle funzionalità che l’applicazione deve contenere.
  • Requisiti non funzionali (RNF) – vedi i termini
    Sono requisiti che si applicano trasversalmente all’intera applicazione e fungono da criteri nella realizzazione dei requisiti funzionali.
     

È importante capire qual è la visione dell’applicazione e che cosa dovrebbe ottenere. La visione viene definita sulla base dei seguenti elementi:

  • Personas: Chi sono gli utenti dell’applicazione da realizzare? Occorre definirli con precisione sotto forma di personas. Consultate i consigli. È inoltre utile dare priorità alle personas: qual è la più importante per noi?
  • Obiettivi: Qual è lo scopo dell’applicazione? Che cosa si vuole ottenere? L’esperienza dimostra che spesso gli obiettivi sono definiti in modo troppo impreciso. Una definizione accurata aiuta però a ottenere un elevato ROI. È importante chiedersi anche: perché il committente si è posto questo obiettivo? Spesso la risposta chiarisce rapidamente la priorità dell’obiettivo e aiuta, a sua volta, a investire correttamente il budget (si veda l’ultimo punto).
  • Esigenze delle personas: Quali sono le esigenze delle personas?
  • Prospettive: Il committente formula una prospettiva per i prossimi 3-5 anni.
  • USP: Il committente definisce come l’applicazione dovrebbe essere percepita rispetto alla concorrenza.
  • Sistemi e processi collegati: Si spiega come collegare i processi in background per rendere più efficienti le procedure aziendali e quali sistemi avranno un impatto.
  • Priorità: Stabilire quali obiettivi hanno la priorità più alta.
  • Aspettative: È consigliabile chiarire in anticipo che cosa entusiasmerebbe o deluderebbe il committente e l’utente finale.
  • Workshop: Di solito è più semplice e rapido chiarire la visione in un workshop con il fornitore e il committente, anziché formularla per iscritto. In questo modo tutti i partecipanti comprendono la visione e possono riconoscersi in essa durante lo sviluppo.

Affinché il fornitore comprenda il progetto e possa lavorare in modo efficiente, deve conoscere la «user journey». Si raccomanda di descrivere i requisiti funzionali in base alla «user journey».

Definizione orizzontale e verticale

  • Orizzontale: Fornitore e committente descrivono insieme, in modo molto generale (in circa 5-7 punti), le fasi che gli utenti devono seguire nell’applicazione. Ad esempio, potrebbe apparire così:
    Panoramica della home – clic e panoramica delle offerte di lavoro – ricerca con filtri – panoramica dei risultati – clic e dettagli dell’offerta di lavoro – clic e compilazione e invio della candidatura.
    Si tratta dei requisiti generali dell’applicazione (epic).
     
  • Verticale: Da questo momento, fornitore e committente approfondiscono insieme i singoli epic e formulano, ma solo laddove sia davvero rilevante per l’attività, ciò che serve esattamente per realizzare l’epic.Ad esempio:
    • Panoramica dei risultati
      • I risultati provengono dal database di un partner terzo.
      • È importante che il branding di ogni azienda che pubblica un’offerta di lavoro possa distinguersi.

Si ottiene così un catalogo dei requisiti che descrive, da un lato, in orizzontale il percorso dell’utente finale attraverso l’applicazione, passo dopo passo da sinistra a destra, e dall’altro, in verticale, come gli utenti approfondiscono ciascuna fase. Si crea così una sorta di mappa dell’applicazione, che permette al fornitore di comprendere i ragionamenti e le esigenze del committente.

È molto importante che il committente trasmetta al fornitore tutte le informazioni possibili. Non bisogna risparmiarsi nella condivisione, altrimenti ne risente la qualità dell’applicazione da sviluppare.

Indicazioni poco chiare

Le indicazioni poco chiare comportano un rischio elevato in fase di sviluppo e spesso non è possibile stimare l’impegno necessario. Possono quindi mettere a rischio il progetto.

Si raccomanda quindi di:

  • consentire un accesso trasparente alle informazioni
  • prevedere un budget per gli spike o le prove di concetto (proof of concept) – vedi le definizioni.

Risparmiare su questo aspetto è rischioso. Le brutte sorprese nelle fasi successive del progetto finiscono per costare care.

Quali dispositivi utilizza il cliente finale: mobile (app nativa? web app? responsive?), tablet o desktop? Questo determina le modalità di progettazione e programmazione dell’applicazione.

Il committente dovrebbe definire:

  1. In quali browser deve funzionare l’applicazione (compresi i requisiti per dispositivi mobili)
  2. Su quali versioni dei browser deve funzionare (indicare la versione più vecchia ancora desiderata)
  3. Per quali versioni dei browser deve essere garantita una programmazione perfetta (ogni errore deve essere corretto al pixel);
  4. Per quali versioni dei browser deve essere garantita una programmazione ottimale (sono ammesse alcune incongruenze)

Oggi la maggior parte delle aziende di sviluppo web non offre più servizi di hosting, perché richiedono competenze specialistiche elevate, anche in materia di sicurezza e tempi di attività. Il committente può comunque indicare:

  • i fornitori di hosting di cui si fida
  • il pacchetto di servizi adeguato offerto dal provider di hosting in base ai requisiti dell’applicazione
  • gli ambienti di sviluppo ideali, affinché lo sviluppo funzioni al meglio nei diversi livelli e non si verifichino problemi né durante il collaudo da parte del committente né al go-live.
  • Cloud sì o no

Il livello di sicurezza definito dal committente dipende in misura molto ampia dall’obiettivo dell’applicazione. A seconda dei casi, la questione rilevante per la sicurezza riguarda anche il collegamento in rete dei sistemi che si trovano dietro l’applicazione utilizzata dall’utente (spesso accade nei siti aziendali con accesso ad altri servizi).

Attenzione: Dal 25 maggio 2018 il GDPR (Regolamento generale sulla protezione dei dati) dell’UE è applicabile negli Stati membri. Può applicarsi anche a imprese con sede in Svizzera, per esempio se offrono beni o servizi a persone che si trovano nell’UE oppure ne monitorano il comportamento nell’UE. Consultate l’articolo di Wikipedia sul GDPR.

L’accessibilità è un’opportunità: un’applicazione accessibile offre di per sé una migliore esperienza utente (user experience) ed è quindi migliore per tutti gli utenti.

Ulteriori informazioni sono disponibili nell’articolo di Wikipedia sull’accessibilità di Internet e standard e informazioni concrete sul sito dedicato all’utilizzo accessibile della tecnologia.

Il committente deve quindi decidere se desidera il livello A, AA o AAA (per gli enti pubblici il livello AA è obbligatorio).

La velocità di un’applicazione può essere fondamentale per il successo aziendale. Oggi, naturalmente, gli utenti sono abituati a tempi di risposta dei sistemi più rapidi rispetto a qualche anno fa. In funzione dell’obiettivo dell’applicazione, occorre definire che cosa significhi per l’azienda una risposta rapida del sistema.

L’architettura scelta per l’applicazione e i sistemi a essa collegati hanno un’influenza enorme sulle prestazioni dell’applicazione.

SEO e analytics sono importanti per il successo e dovrebbero essere presi in considerazione fin dall’inizio. Un workshop è utile per definire orientamenti e obiettivi misurabili.

Oggi gli utenti sono abituati ad applicazioni come Airbnb, YouTube e altre simili. Offrono tutte una navigazione semplice e intuitiva, che ormai rappresenta lo standard. Una navigazione ben progettata e, soprattutto, testata è indispensabile. Influisce direttamente non solo sul successo dell’applicazione, ma anche sulla reputazione del marchio.

Una buona esperienza utente si definisce attraverso metodi che comprendono anche la ricerca sugli utenti e i test con gli utenti.

Le applicazioni con una buona esperienza utente si definiscono soprattutto sulla base di criteri oggettivi (come ricerche, test ecc.).

Nello sviluppo del design visivo la domanda da porsi è: «Di cosa ha bisogno la mia persona?» Le potenziali clienti di un prodotto di lusso si aspettano un design visivo diverso da quello richiesto dagli addetti al magazzino che utilizzano un’applicazione per consultare informazioni logistiche.

È consigliabile discutere la qualità del codice e le richieste relative alla documentazione ed eventualmente concordarle (tramite una «Definition of Done»). Perché?

  • Il committente potrebbe voler affidare l’ulteriore sviluppo di un’applicazione a un nuovo fornitore.
  • In qualità di agenzia, sottolineate l’importanza che gli sviluppatori si prendano il tempo necessario per scrivere codice pulito. In questo modo si riducono i costi di correzione degli errori e di manutenzione.

Come si garantisce una buona qualità del codice?

Di solito il committente non è uno sviluppatore e ha quindi difficoltà a verificare la qualità del codice. I seguenti requisiti permettono di assicurare il rispetto dei processi necessari per ottenere una buona qualità del codice.

  • Code review da parte di un altro sviluppatore. In questo modo si individuano errori che lo sviluppatore potrebbe non aver notato durante il lavoro.
  • Test automatizzati: Occorre far comprendere al committente che sono indispensabili per la sostenibilità dell’applicazione e dell’investimento.
  • Test manuali: ogni requisito realizzato dal fornitore deve essere verificato e approvato dal committente poco dopo lo sviluppo.

È importante che il team sia eterogeneo, ovvero:

  • una buona distribuzione di profili senior e junior. È importante includere nel team professionisti senior affinché le esperienze maturate possano essere ripetute, oppure evitate. È altrettanto importante includere profili junior, che spesso portano idee innovative.
  • un team interfunzionale (ad es. sviluppatore, specialista in user experience, responsabile di progetto, specialista di analytics, visual designer ecc.). La collaborazione tra diversi esperti consente di realizzare una soluzione completa per l’applicazione.
  • un team fisso, almeno per tutta la durata del progetto. In questo modo non si disperdono le conoscenze durante lo sviluppo. Inoltre, il team mantiene l’attenzione sull’obiettivo dell’applicazione.
  • diversità di genere, nazionalità e altri criteri. Per un’applicazione accessibile conforme allo standard AAA, è importante che almeno un membro del team presenti personalmente la condizione di svantaggio. Analogamente, per un negozio che vende abbigliamento femminile è importante avere un’elevata presenza di donne nella progettazione e nello sviluppo. I team diversificati realizzano applicazioni migliori perché, nel loro insieme, rappresentano il microcosmo dell’applicazione.

Non si sottolineerà mai abbastanza l’importanza di una comunicazione chiara e senza ostacoli tra il team che realizza il progetto e il committente. Innanzitutto, la comunicazione via e-mail non basta. I progetti web richiedono strumenti di comunicazione pensati per le esigenze di questo tipo di progetti e semplici e rapidi da usare per tutti. Questi strumenti consentono anche di documentare decisioni determinanti per il successo dell’applicazione, che restano una base di conoscenze anche dopo la conclusione del progetto. Perciò e-mail e telefono non sono sufficienti. Si raccomandano i seguenti strumenti:

  • Atlassian Confluence: per documentare concept, requisiti non funzionali, Definition of Done, organizzazione del progetto ecc.
  • Atlassian Jira: per documentare l’intero catalogo delle attività. Sia il fornitore sia il committente vi hanno accesso. Qui vengono definite, discusse e commentate le singole attività parziali e infine approvate.
  • Slack o uno strumento di chat simile: consente uno scambio molto rapido tra il fornitore e il committente. I partner dovrebbero accordarsi su alcune regole per evitare interruzioni continue del lavoro. Nonostante questo rischio, i vantaggi sono maggiori.
  • Riunioni regolari, durante le quali si prendono decisioni importanti e si concordano le fasi successive del progetto tramite confronto diretto (si veda anche «Procedura»).

In linea di principio esistono due metodi: waterfall o agile

Secondo il Trends & Benchmarks Report 2016 di Swiss Q, il 60 % dei progetti agili ha successo, contro il 45 % dei progetti basati sul metodo waterfall.

La maggior parte dei progetti di sviluppo software è complessa e quindi non può essere pianificata in anticipo. Il metodo waterfall non è adatto ai progetti complessi.

Il metodo agile, anche se all’inizio può sembrare un po’ insolito, promette maggiori probabilità di successo del progetto, un migliore ritorno sull’investimento, un ingresso più rapido sul mercato, una migliore qualità del codice e un’applicazione più adatta agli utenti.

Come già detto, la maggior parte dei progetti di sviluppo software è complessa, presenta molte incognite e richiede quindi il metodo agile.

Già durante la procedura di selezione del fornitore è possibile definire i successivi servizi di supporto e manutenzione. Si chiarisce così anche come verrà documentata l’applicazione durante lo sviluppo: solo un’applicazione ben documentata può essere trasferita correttamente al supporto. Più l’applicazione è complessa, maggiori saranno i costi di manutenzione.

Punti importanti da definire nell’SLA:

  • Come vengono gestiti gli aggiornamenti delle versioni?
  • Come vengono gestiti gli orari di intervento (reperibilità nel fine settimana o solo durante l’orario d’ufficio)?
  • Come vengono definiti i criteri per il supporto (criticità dei malfunzionamenti)?
  • Come vengono gestiti gli interventi di ampliamento, minori o maggiori dell’applicazione?

Già nella fase di offerta, il fornitore dovrebbe presentare al committente un modello di contratto di supporto e manutenzione e poter fornire una stima approssimativa dei costi.

Domande sul Collaboration Framework?

Giancarlo Palmisani

Giancarlo Palmisani

Responsabile delle prestazioni dell'associazione / membro della direzione
+41 44 446 90 85
E-Mail

Politica sui cookie Swico
Swico utilizza i propri cookie e cookie di terze parti per scopi di marketing, profilazione e analisi e per facilitare la navigazione sul sito web. Si prega di leggere la nostra Protezione dei dati. Fare clic su CHIUDI per accettare i cookie.