venerdì 23 aprile 2010

// //

Proof of concept: il primo prototipo


Adesso che avete l’idea del secolo, avete formato il team, avete trovato un nome perfetto per la vostra startup, è arrivato il momento della verità, si inizia a fare sul serio, il vostro progetto sta per compiere i primi passi: il prototipo.

Siamo arrivati al punto in cui bisogna concretizzare e dare una forma all’idea iniziale, per capire se è davvero fattibile e quali potrebbero essere i problemi tecnici da affrontare.

Questo è un passo che assume una importanza diversa in base alla tipologia del progetto. Per le idee fortemente legate a tecnologie avanzate, lo sviluppo del primo prototipo è essenziale. In questa fase, è di fondamentale importanza la figura del tecnico/sviluppatore/nerd del team, meglio se più di uno.

Nel post dedicato al Team, vi avevo accennato che, nel gruppo, ci deve essere almeno uno sviluppatore ed ecco svelato il motivo, chi svilupperebbe il prototipo altrimenti?

Sulla questione “sviluppatore all’interno del team” oppure “elemento esterno che lavora a progetto”, ci sono due scuole di pensiero ben distinte:

- Il team non ha bisogno di tecnici, lo sviluppo si effettua in outsourcing

- Senza lo sviluppatore non si può iniziare

Due punti di vista ovviamente constrastanti che hanno come principale fattore discriminante l’aspetto economico. Personalmente, ritengo che dare in outsourcing lo sviluppo tecnico della vostra startup non sia un buon inizio. Vorrebbe dire, non solo bruciare tanti soldi già da subito (prima ancora di capire se l’idea è realmente fattibile o meno) ma, soprattutto, affidare il cuore del vostro progetto a persone che non lavorano spinti dalla passione ma dal denaro. Credetemi che questo “dettaglio” fa la differerenza, soprattutto all’inizio, quando, lo sviluppo, molto spesso, supera le 12 ore giornaliere. Per questo, secondo me, serve credere in quello che si sta facendo e ci vuole molta passione, tutte qualità che non si possono comprare in outsourcing!

Quindi, il mio consiglio è di avere almeno un tecnico nel team e di non dare in outsourcing lo sviluppo del core della vostra idea.
In futuro, quando avrete soldi da investire, potrete sicuramente pensare di esternalizzare lo sviluppo di parti del vostro sistema.

Per Ibrii, io ed il mio socio, abbiamo avuto la fortuna di essere due sviluppatori .Net discreti e, quindi, abbiamo sviluppato tutto da soli, dalla prima all’ultima riga di codice.
Ricordo quando, per la prima volta, abbiamo fatto funzionare il primissimo prototipo di Ibrii, credetemi, è stata una emozione indescrivibile! Dopo mesi di brainstorming, di incertezze, di ricerche, di confronti, finalmente vedevamo la nostra creatura vivere e prendere forma. All’inizio, era solo un rettangolo colorato di rosa, con dentro del testo, che poteva essere draggato nello schermo..non era niente di speciale, ma per noi, in quel momento, rappresentava tutto, ha acceso una scintilla che, ancora oggi, è uno stimolo quotidiano.

Se dopo mesi di incontri, di dubbi, di discussioni, iniziate a chiedervi se avete fatto la scelta giusta, entrando nel fantastico mondo delle startup, vi assicuro che vedere funzionare il prototipo della vostra idea vi servirà tantissimo per recuperare energie ed entusiasmo. E’ la conferma che la vostra idea è fattibile e potrebbe presto diventare realtà. E’ il così detto proof of concept che tutti i membri del team aspettano di vedere dal primo giorno.

I tempi di sviluppo possono variare di molto, da caso a caso, ma esistono comunque dei consigli generali che, in base alla mia esperienza, posso darvi per risparmiare tempo e denaro:

- Usate tecnologie opensource per non dover pagare le licenze. (Nei post successivi vedremo quanto sia importante mantenere il burn rate mensile al minimo, ovvero quanti soldi “bruciate” al mese)

- Discutete molto all’interno del team, durante lo sviluppo, lavorando molto su lavagna. Aiuta a focalizzare meglio i problemi e a trovare soluzioni più velocemente.

- In questa fase, come detto anche nel post precedente, concentratevi solo sulle funzionalità core del vostro sistema. Il resto si aggiungerà in seguito. Parleremo nei prossimi post di minimum viable product.

- Usate la tecnica di “attacco costruttivo” introdotta nel post precedente

- Riportate tutte le idee, dubbi ed eventuali schemi di sviluppo sulla lavagna o su carta, rileggete la lista a voce alta prima di inziare a lavorare. Provate e capirete quanto vi sarà utile.

Per lo sviluppo di Ibrii, noi abbiamo usato .Net + SQLServer per il server e per il client Javascript (jQuery). Quindi, sul server, la tecnologia non è affatto opensosurce, ma, all’inizio, abbiamo avuto la fortuna di avere delle licenze gratuite, in quanto eravamo ancora studenti universitari, grazie al progetto DreamSpark. Invece, adesso, che non siamo più studenti, continuiamo ad avere le licenze gratuite grazie al progetto BizSpark.

Ad ogni modo, che la tecnologia sia opensource o proprietaria l’importante è averla gratis!

Cercate di sviluppare il prototipo nel minor tempo possibile, così da poter passare subito allo sviluppo del vero prodotto. Durante questo tempo di sviluppo, inziate a raccogliere feedback, anche solo tra i vostri amici e non abbiate paura di raccontare la vostra idea! (parleremo di questo timore diffuso in uno dei post successivi)

Nei prossimi post analizzeremo una tecnica usata nella Silicon Valley che riguarda proprio lo sviluppo del prodotto in relazione al feedback, alle esigenze/richieste degli utenti e al business model.

Prima di concludere questo post e di augurarvi un ottimo lavoro, per lo sviluppo del prototipo, ancora due consigli fondamentali che non sono legati direttamente a questa fase, ma è bene che vi entrino in testa sin dall’inizio:

- Ricordate che “Less is more”, fate una sola cosa ma fatela bene!Non riempite l’utente di funzionalità che lo distraggono e lo confondono, questo è un consiglio soprattutto per gli sviluppatori..

- Fate, sin dall’inizio, molta attenzione all’ interaction design del vostro servizio. Dovete sempre puntare alla semplicità di utilizzo da parte dell’utente, la vostra interfaccia deve essere semplice ed intuitiva. Oltre che super accattivante!


Buon weekend a tutti!

Stefano Passatordi