The future of mobile development

Standard

Most people think that Creo is “yet another prototyping tool” when in reality is something completely different and much more powerful.

Initially Creo was created because we felt the need to unify Design and Development in a new powerful tool that gives real time access to data and code execution preview traditionally available only at runtime.

In order to be able to offer such level of integration we developed a framework CreoKIT that enables us to execute any iOS on a desktop operating system. CreoKIT is so powerful that, unlike any other development tool out there, Creo users do not need to install Apple iOS Simulator to execute iOS apps. In many ways CreoKIT is even more powerful than Apple iOS Simulator because it is capable of running multiple independent iOS instances without the need to create multiple separate processes or without the limitation of executing just one app at a time.

CreoKIT was originally written in ObjC and we are currently converting it to Swift. Swift represents the future of modern programming languages and it is just a matter of time that it will be fully supported by Android. What does this mean to CreoKIT and Creo?

Today CreoKIT can execute any iOS code on desktop and in order to create a fully featured iOS app we do not need to do anything special, we can execute the same code on both desktop and mobile iOS. The same exact approach will be used for Android (when Swift will be supported), then we’ll just need to develop a thin compatibility layer and we’ll be able to execute Android and iOS code using the same UIKit based code base.

We are a small team and therefore we are forced to prioritize our big plans. We are now focusing on iOS (Creo b5 will be available soon) and then we’ll focus on Android. A unified code base between mobile and desktop has never been so close.

Creo project

Standard

I haven’t blogged in a while, mostly because I was extremely busy with Creo. I know that Creo is a huge project but I never tried to collect some real statistics about it… so how big is Creo?

To help me better understand the complexity of the project I downloaded cloc from https://github.com/AlDanial/cloc

Creo is divided in three main parts:
Gravity which is our programming language with a Swift and Javascript like syntax,
CreoKIT which is our 100% source code compatible UIKit layer that enables us to execute iOS code on Mac and there is the Creo app itself.

Here you go some detailed statistics:

Stripping non related source code files, total amount of lines are about 475k (related to build 4618 of February 05, 2016).

How do we manage such amount of code?
When we started Creo we choose to use Subversion as our revision control system (perhaps someday we’ll migrate to git and GitHub) and I have to admit that we are quite happy with svn. In particular, we are extremely satisfied with the excellent Cornerstone svn client on Mac and with Beanstalk hosting.

It’s OK not to be OK.

Standard

So you have had the next big idea that could change the world?
What is the very first thing you should do?

Raising money?
Check if it could be a viable business?
Check if there is a market for it?
Find a stellar team?

Well yes, they are all very useful questions to ask and they are all the de facto mantra for all VCs out there, but ultimately, ask yourself just a very simple stupid question: Why.

Why you want to change the world?
For the money?
For the fame?

While writing this post I remembered a famous song that continuosly repeats that some people live for the fortune, some people live for the fame, some people live for the power and some people live just to play the game.

So what do you live for?

As an Italian startupper I find myself asking the same fundamental questions almost daily. Probably Italy is not the best place where to fund a high tech startup like Creo, but I really would like to avoid using the “where I live” excuse. I am not the place where I was born, I am just what I am able to dream.

So WHY I am facing a so difficult challenge like the Creo project? Well, probably just because it is my nature.

The nature of every true innovator (no arrogance or big ego here believe me) is to raise the bar each time, again and again in an infinite never ending loop. Once you realize it, this is both scary and exciting. With Creo the bar is so high that we started facing challanges since day one. Firstly, we were in trouble due to the enormous technical challenges, then we has some troubles within our team and finally we dealt lack of additional funds. So how can you find so much energy to constantly face all these issues?

Each failure and each success has its own story but I think that every success has a common denominator: perseverance. And so much perseverance can be obtained just with one fuel: vision.
We have a strong vision, we really want to find out a better, faster, easier and more productive way to develop software. We want to offer the ability to explore new ideas and new concepts without investing huge amount of time and energy writing thousands lines of repetitive code.

Our vision is our fuel, no matter what, no matter where we are born, no matter how many challenges we have to face. So, should we worry about what this high bar project could represent for our lives? Yes we definitely should… but not too much, because we are lucky enough to spend our time working on something we truly love and that could have a big impact.

“For an idea that does not first seem insane, there is no hope.”

Writing a programming language and a virtual machine in C

Standard

A couple of years ago I co-founded Creolabs with the mission to greatly reduce time required to develop mobile multi-platform applications. On paper the project and the implications was so huge that it has been really difficult to find out the right team with all the required skills. One of the requirement was to be able to develop a very efficient multi-platform virtual machine that can be easily bridged to other languages, with a modern class based syntax and with powerful features found in the most advanced compilers.

I generally don’t like to reinvent the wheel so I tried to look at the currently available open source languages in search for a valid candidate. Some languages had a very nice virtual machine implementation but on top of a crappy syntax, some other languages had a good syntax but without an efficient virtual machine… some others were so huge and intricate that I refused to be involved in such a mess.

Requirements were clear… a thin and very efficient virtual machine with no more that 5000/6000 lines of code. I wasn’t able to find anything that could completely satisfy our needs so this time I decided to reinvent the wheel and project Gravity started.

I’ll use this blog to post information about the language, the virtual machine, how I wrote it and more generally how to develop an efficient multi-platform programming language just using C.

My Y Combinator experience

Standard

The beginning

Versione Italiana.

It all began on October 28th 2014 when at 11:22PM an email from Y Combinator was dropped into my inbox: “Thank you for applying to Y Combinator. Your application looks promising and we’d like to meet you in person. Please go here to read how interviews work and sign up for a slot…”.  We had completed the Winter 2015 session (W15) a couple of weeks earlier and YC just informed us that they were going to meet us in San Francisco for an interview.

The first thing I did was ringing Daniele and waking him up in the middle of the night with the good news (to be honest I first told him that we were rejected 😉 ). We talked about the minimal chances we had to go beyond this step and about what this opportunity could represent for us. (It seems that from August to October, YC had received about three requests per minute from all over the world).

I promptly booked our interview slot: Monday November 17th at midday. I always liked the number 17.

It was our first apply since we started the Creo‘s adventure and we had been selected by the world’s most famous incubator, “not bad for a start” I thought. I also thought that it was almost an obvious choice due the radical impact that our project can have on software development. I realized that Creo is an extraordinary technological challenge and we achieved unbelievable results so far. Who could have developed a new multiplatform programming language with a blazing fast virtual machine? Who could have rewritten from scratch a mobile operating system fully UIKit compatible? Who could have a product like ours? Nobody, probably nobody in the world… and if YC’s choice was driven by the product than we would had no rivals.

The idea

For about 4 years I worked in Texas for Xojo Inc. and I soon realized how important is to find a way to give to as many people as possible the opportunity to develop their ideas. I believe that the original Creo idea was born during those years. I proposed to Xojo’s CEO my idea about a thin layer on top of existing OS API which did not required to develop huge glue code frameworks but Xojo was focusing on different projects and my idea was set aside. As soon as I returned to Italy I started working on finding a way to finance Creo project.

Product has no value

I believe that our biggest mistake was to think that being able to develop such an extraordinary product could somehow give us an advantage against the thousand of other ideas presented at Y Combinator. We were wrong.

Y Combinator has been created for one single purpose: to make money. They are neither a charity nor a fund that aims to help the development of new ideas … they just want to make money and they do it through math and the huge network of knowledge they have in Silicon Valley.

We often read that every startup should follow the creed “Fail Fast, Fail Often, Fail Forward” and for YC it is almost a dogma. A working prototype in the shortest possible time has almost more value than the product itself. YC assumes that no one can be sure about what people really want and so companies need to be prepared to rapid and abrupt changes affecting both the business model and the product itself. This golden rule, however, can not always be met, especially with project as complex as Creo. I really think that the complexity of the Creo project penalized us at YC.

Raw numbers

Y Combinator is aware of having a single finite resource: people in his team that must analyze the thousands of submitted ideas. They should try to rationalize the selecting process that can appear almost brutal in its practical implementation.

Five days dedicated to the interviews (from Monday to Thursday, Saturday and Sunday included). About 8 hours a day, 5 rooms each with at least three YC’s members, a 10-minute interview (with a countdown) plus five more minutes reserved for the team to take a roughly decision. Every room can analyze about 30 projects per day (lunch included) multiplied by 5 rooms then for 5 days, result is about 750 projects analyzed for each session. How many teams are actually accepted? There isn’t a predetermined number, I think they can consider money as an unlimited resource, so they do not have a predefined budget and there is no advantage to be interviewed the first days rather than the last … the only thing that matters for them is the business model … I repeat here again: product has zero value.

Silicon Valley

Daniele and I arrived in San Francisco on Saturday November 15th at about 11PM. We found a nice hotel a mile away from the airport, very close to Caltrain which is the easiest and fastest way to get to the heart of Silicon Valley. So the first and the last day we booked at the Westin San Francisco Airport, which overlooks the bay and offers views and sunsets to lose your breath.

For our stay in Mountain View we opted for a hotel not too expensive but with two essential requirements, fast and free WiFi in the room (Nerd Lega would be proud of us) and the proximity to a Starbucks. Mountain View and Silicon Valley in general are very expensive and a decent hotel can easily get to $300 a night, the Super 8 Mountain View seemed a good compromise and it was also close to 335 Pioneer Way (Y Combinator headquarter):

335PioneerWay

 

We arrived in Mountain View on Sunday (one day before our interview) and we decided to go out exploring the city and then to walk up to Y Combinator HQ where a lot of people were busy with their interview. We entered the office (bare and scruffy-style like any other company with “investments worth 30 billion dollars” 😉 and we immediately started talking with the various groups waiting for their turn. Literally, you could find every kind of nerd representation: from payment systems to Lego style robot, from a lonely guy with a green phosphor PC to the guys who had tried to apply so many times that they had almost lost count.

 

YCombiatorOffice

A guy told me that Y Combinator in the past has been much criticized for the fact that it selected very few foreigners and I have reiterated that in this sense Americans have a great advantage than teams from other parts of the world … he then pointed out that by “foreigners” he meant people who don’t live in San Francisco. This statement really amused me but also scared me a bit.

Interview Day

Like every day, Daniele and I started text messaging at around 4:30 AM and we set up to meet at 7 AM at Starbucks. I already decided to go for a run in order to try to relax while Daniele opted for a nice walk, the appointment was a few miles further to Google headquarters… our plan was to then have a good shower and then head towards Y Combinator.

In front of a Coffee Mocha cup we tried to re-read our preparation material, which were just a collection of typical questions that YC asked during past interviews, questions like “what is your market?”, “how you know that people need your product? “,”what do you have that others do not?”. We had collected about 20 significant questions and they are all listed at the end of this article.

Once arrived at Y Combinator, the receptionist told us that our interview would take place in the building 2. Building 2? There is a building 2??? Yes there is, and it is in front of the main YC office, a smaller building with a reception, a large common room where teams wait for their interview and very small rooms where these occur.

Y Combinator Building 2

Our interview was delayed of about half an hour, half an hour during which we started to be nervous, half an hour during which we had the opportunity to speak with Anna and Rustem (Austrians founders of Robo), half an hour during which two guys go out from one of the interview rooms with a gelatin brain in their hands … I am still wondering what it was.

Then they called us, it’s our turn. A quick glance between me and Daniele to understand that we had the situation in our hands (I am clearly ironic here). We entered the room and facing us there were 3 young boys in their early twenties. One of the them was basically leading the interview and he droves the conversation at what they were more interested in. I could describe the atmosphere as “almost friendly” … but 10 minutes go by very fast and they have to optimize that time.

The first impression is to be at a university exam, something like “Mathematical Methods for Engineering” (I still wake up at night thinking of not passing it). Personally I would have expected that we would have been asked a bit about the project, however apart from a very quick question about what we do, the product practically was not mentioned. The thing that has left us displaced was that it seemed that they had not even read our apply, in which we deeply explained what we had achieved, completed with video and demo as they requested.

However, in short our interview was more or less this:

YC: Hello guys, so what do you do?
Creo: In few words it’s an app that is able to create other apps. We have developed a new programming language with a multiplatform virtual machine and we have rewritten from scratch a mobile operating system (100% UIKit source compatible), all exposed through a desktop application that makes incredibly fast and easy the creation of mobile applications. Development time is reduced from weeks and months to few hours or days.
YC: OK, but there are other similar technologies . For example …
Creo: No wait those are solutions that mask an app within a web site, you can not do anything professional and performing with JavaScript and the web.
YC: OK, but why should I use your solution instead of using Xcode?
Creo: Xcode? (Have you read our apply?) … those are solutions that can be used only by professional developers, our software is for everyone, even for those who are not a developer.
YC: OK got it… so why should not I install Eclipse?
Creo: (Eclipse Holy God, you really just said Eclipse??) As I already pointed out our development environment is designed to be simple to use, with drag and drop you can practically do 99% of the most common task and the more complex activities such as binding or navigation logic or animations are exposed through a graphical interface very simple and intuitive.
(At this point I am started thinking if they really have read anything about our apply).
YC: OK, how many users do you have?
Creo:We are not yet on the market, so no user so far. (This information was clearly written in our apply).
YC: Why are you spending so much time developing this application?
Creo:  It is not only an application, it is a compiler, a virtual machine, a new language and even a mobile operating system.
YC: How many users are using your app?
Creo: We are not yet on the market so only few developers and designers are currently testing it.
YC: How many apps has been developed with your software?
Creo: As I already said and as I clearly written in our apply, we are currently in pre-beta so we just developed apps for internal usage, nothing is on the market yet.
YC: OK guys the 10 minutes are over.
Creo: Well, we’d have a demo to show you.
YC: Ah OK so let’s see.
Creo: (30 seconds later)
YC: Guys, what you developed is really impressive.
YC: Bye guys and thanks for coming.

Follow up

We came out of the interview dazed … neither I nor Daniele wanted to talk. My impression was that it was a complete disaster … two years of work, two years spent fighting for an idea that seemed impossible to become reality and in 10 minutes they had not even bothered to understand what we had in our hands. We ate a hamburger, we returned to the hotel and I only remember that I slept until the next day.

If you’re accepted at the Y Combinator program you receive a call from one of the team members, but if things do not go well you receive an email with a brief explanation of why you have not been chosen. I woke up around midnight, I checked the email and I saw one of Y Combinator. I already knew what it meant, I forwarded it to the guys and I went back to sleep. Then I woke up at 5 am (standard time now) and I saw a message of Daniele telling me that he would wait for me at the Starbucks at 7.

I do not know what happened during the night, I just know that all the bad thoughts of the day before had gone away leaving a new feeling of revenge and drive to do even more, even better. My concern was for the team, how they would react to the news? How would Daniele react? Certainly we did not sailed in good waters and after many sacrifices I think that we all needed some good news.

I took a shower and then I walk to Starbucks … where I found Daniele who was working, he was concentrated on trying to fix a bug that we have noted the previous day, shortly before the interview’ beginning . He said that he had been there since 5 am and he showed me the new dialog box that we could use to connect to devices via WiFi and also to diagnose possible problems.

And there I realized.

I realized that it did not matter how disastrous our experience has been with Y Combinator, it actually was the best thing that could happen to us. I saw firstly in Daniele and then also in the other team members the desire for revenge, the desire for redemption and especially the feeling of being involved in something really big … no matter the opinion that someone can give you in 10 minutes.

“Daniele, let’s enjoy our holiday in Silicon Valley now” was the only thing that I felt telling him at that moment … and so we did. We spent several days in California, visiting some mythical places that after having seen pictures and heard their names so many times, they appeared almost familiar … we “stalked” people and visited areas that can not be reported in this article  … we also talked a lot about Creo and Y Combinator.

Apple HQ

Learn by experience

We have spent a lot of time writing incredibly complex code, we have produced more than half a million lines of code, we were so buried in all this chaos of numbers and symbols that we were losing the true meaning of the reason why we were doing this sacrifice: the product.

We decided to create a product as complex as Creo not because we wanted to write tons of code, but rather to give to anyone the opportunity to be able to develop applications. Y Combinator, perhaps in a somewhat brutal, but still very effective way, made us remembering that.  Although all our great and deep sacrifices, we needed to focused the one and only goal … have a product on the market. A very simple mission, that no matter how good we were, at that time we weren’t able to achieve.

Y Combinator was the right impetus at the right time. We decided not to submit any apply until we had a finished product and looking at how things are going that was the best decision we could take. For a product much complex as Creo, it has always been very hard to make plans: everyday we come across problems that seem insurmountable and new technologies that may change everything overnight time; these variables are always around the corner and they represent a huge challenge, especially for a small team like ours. But nowadays we are very close to the finished product and I think I can say that we received this last push by Y Combinator.

We’ll try again to apply to Y Combinator, because I am still convinced that their mentoring program is invaluable, not even comparable to the money they could give you. We’ll try again when we have a product on the market, with a real user base and with irrefutable numbers.

Go off and do something wonderful.

I read this sentence from Robert N. Noyce at the Intel museum in Santa Clara and it forces me to think a lot about the startup world. It seems that today the goal of the startups is to raise as much money as possible, as quickly as possible and at all costs instead of invent the best possible products and change people’s lives. Why we were here? For the money? Yes money are important and $120,000 at that time would have been a very good help … but mostly we accepted this so difficult challenge just for one purpose: to create something really innovative that can change the status quo.

So we just need to do that, we just need to “go off and do something wonderful”.

Y Combinator’s FAQ

  1. What are going to do?
  2. Potential Users?
  3. Obstacles in your path?
  4. What’s wrong with existing options?
  5. How you’ll overcame the barriers that allow existing options to stay bad?
  6. Who needs what you’re making?
  7. How do you know they need it?
  8. What are they doing now?
  9. What makes you different from existing options?
  10. Why isn’t someone already doing this?
  11. What obstacles will you face and how will you overcame them?
  12. How will customers/users find out about you?
  13. What resistance will they have to trying you?
  14. How will you overcome that resistance?
  15. What are the key things about your field that outsiders don’t understand?
  16. What part of your project are you going to build first?
  17. Who is going to be your first paying customers?
  18. If your startup succeeds, what additional areas might you be able to expand into?
  19. Why did you choose this idea?
  20. What have you learned so far from working on it?
  21. Six months from now, what’s going to be your biggest problem?

La mia esperienza con Y Combinator

Standard

L’inizio

English version.

Tutto ebbe inizio il 28 Ottobre 2014 quando alle 23:22 arrivò una mail da Y Combinator: “Thank you for applying to Y Combinator. Your application looks promising and we’d like to meet you in person. Please go here to read how interviews work and sign up for a slot…“. Avevamo completato l’apply alla loro sessione Winter 2015 da una paio di settimane e ci avevano appena detto che si, ci aspettavano a San Francisco per una interview.

La prima cosa che feci fu quella di svegliare Daniele nel cuore della notte per dargli la notizia (in realtà gli ho detto non che ci avevano presi ;-). Parlammo subito di quanto fossero minime le probabilità di passare questo step e di quello che poteva rappresentare per noi. (Sembra che da Agosto ad Ottobre l’apply di YC avesse ricevuto 3 richieste al minuto).

Iniziai subito con il prenotare lo slot per l’interview: Lunedì 17 Novembre ore 12:00. A me il 17 è sempre piaciuto.

Era il nostro primo apply da quando avevamo iniziato l’avventura di Creo e subito eravamo stati accettati per un’interview con il più famoso incubator del mondo, un gran bell’inizio pensai… così come pensai che fosse quasi scontata la scelta vista la portata di quello che stavamo facendo. In fin dei conti Creo era un progetto tecnologicamente straordinario ed avevamo raggiunto dei risultati impensabili… chi poteva aver sviluppato un nuovo linguaggio di programmazione multipiattaforma? Chi poteva aver riscritto da zero un sistema operativo mobile come lo UIKit? Chi poteva avere un prodotto come il nostro? Nessuno, probabilmente nessuno al mondo… e se la scelta di Y Combinator fosse stata dettata dal prodotto allora era cosa fatta.

L’idea

Ho lavorato in Texas per Xojo Inc. (was REAL Software) per quasi 4 anni e mi sono reso conto di quanto sia importante trovare un modo per dare la possibilità al maggior numero di persone possibili di sviluppare le loro idee. Xojo ci ha provato con un prodotto che dimostra la sua età e credo che l’idea originale di Creo sia nata proprio durante quel periodo. L’architettura di base che non richiedeva lo sviluppo di giganteschi framework la proposi al CEO di Xojo ma in quel periodo l’azienda era focalizzata verso altri obiettivi. La mia proposta quindi venne accantonata. Appena tornato in Italia però mi misi quasi subito al lavoro per cercare finanziatori disposti ad aiutarmi nella sua realizzazione.

Il prodotto vale zero

Credo che l’errore più grande sia stato pensare che l’essere riusciti a realizzare un prodotto fuori dal comune (o un prototipo avanzato come nel nostro caso) potesse in qualche modo offrirci un vantaggio nei confronti delle mille altre idee presentate a Y Combinator. Niente di più sbagliato.

Y Combinator è nato per un solo ed unico scopo: fare soldi. Non sono ne un ente benefico ne un fondo che vuole aiutare lo sviluppo di nuove idee… loro vogliono solo fare soldi e lo fanno mediante la matematica e l’enorme network di conoscenze che hanno in Silicon Valley.

Si legge spesso che il credo da seguire per ogni startup sia quello di “Fail Fast, Fail Often, Fail Forward” e per YC è quasi un dogma, l’avere un prototipo funzionante nel più breve tempo possibile conta quasi di più che l’avere un prodotto. Partono dal presupposto che non si possa essere sicuri di quello che la gente veramente vuole e bisogna quindi essere pronti a cambiamenti rapidi ed anche bruschi sia nel modello di business che nel prodotto stesso. Questa regola d’oro però non sempre può essere soddisfatta, sopratutto con un software così complesso come Creo. Alla fine questa cosa dei tempi di sviluppo ci ha parecchio penalizzati ai loro occhi.

La matematica

Y Combinator si rende conto di avere una sola risorsa limitata: gli uomini che ha a disposizione nel suo team per analizzare le migliaia di idee che gli vengono sottoposte. Deve quindi cercare di razionalizzare il processo di scelta che può apparire quasi brutale nella sua implementazione pratica.

Cinque giorni dedicati alle interview (da Giovedì a Lunedì, Sabato e Domenica comprese), circa 8 ore al giorno, 5 stanze ognuna con almeno 3 membri di Y Combinator, 10 minuti di interview (con il conto alla rovescia, quindi sono 10 minuti effettivi) più 5 minuti riservati al team di ogni stanza per prendere una prima decisione. Se si fanno i conti ogni stanza analizza circa 30 progetti al giorno (pausa pranzo inclusa), che per 5 stanze, per 5 giorni fa circa 750 progetti da analizzare per ogni sessione. Quanti ne vengono effettivamente presi? Non c’è un numero prestabilito, i soldi sono per loro una risorsa che considerano illimitata, quindi non hanno dei budget da rispettare e non offre alcun vantaggio il fatto di farsi intervistare i primi giorni piuttosto che gli ultimi… l’unica cosa che conta per loro è il modello di business… mi ripeto di nuovo qui: il prodotto ha valore zero.

La Silicon Valley

Io e Daniele arrivammo a San Francisco Sabato 15 Novembre verso le 23 per cui la cosa più sensata da fare era prenderci un hotel vicino all’aeroporto. Ne abbiamo trovato uno molto carino, distante un miglio dall’areoporto e molto vicino anche a Caltrain che è il modo più semplice e veloce per arrivare nel cuore della Silicon Valley. Il primo e l’ultimo giorno abbiamo quindi prenotato al Westin San Francisco Airport che si affaccia proprio sulla baia ed offre panorami e tramonti da perdere il fiato.

Per il nostro soggiorno a Mountain View invece abbiamo optato per un hotel non troppo caro ma che avesse due requisiti essenziali, WiFi in camera veloce e gratuito (la Lega Nerd sarebbe fiera di noi) e la vicinanza ad uno Starbucks. Mountain View e la Silicon Valley in generale sono molto care ed un hotel decente può tranquillamente arrivare a $300 a notte, il Super 8 Mountain View ci è sembrato un ottimo compromesso e sopratutto era vicino al 335 Pioneer Way (la sede di Y Combinator):

335PioneerWay

Arrivati a Mountain View la domenica (un giorno prima dell’intervista) decidemmo subito di andare in esplorazione per la città e quindi ci siamo fatti una passeggiata fino a Y Combinator dove erano in corso le interview del 16 Novembre. Entrati negli uffici (spogli e trasandati in puro stile “società con partecipazioni del valore di 30 bilioni di dollari”) abbiamo iniziato subito a parlare con i vari gruppi in attesa dell’interview… e c’era davvero di tutto. Dai sistemi di pagamento, ai robot stile lego, dal singolo nerd con un PC a fosfori verdi a ragazzi che avevano fatto l’apply talmente tante volte che quasi ne avevano perso il conto.

YCombiatorOffice

Un ragazzo mi ha spiegato che Y Combinator in passato è stata molto criticata per il fatto che prendesse pochissimi stranieri ed io ho ribadito che in questo senso gli Americani sono molto avvantaggiati rispetto ai ragazzi di altre parti del mondo… mi ha risposto che per stranieri intendeva chi non abita a San Francisco. La cosa mi ha divertito ma anche un po’ spaventato a dire il vero.

L’interview Day

Come ogni giorno, io e Daniele iniziavamo a scriverci messaggi verso le 4.30 del mattino e ci davamo appuntamento alle 7 allo Starbucks. Io avevo già deciso di andare a correre per sciogliere la tensione mentre Daniele si sarebbe fatto una bella passeggiata, l’appuntamento era qualche miglio più avanti al quartier generale di Google… per poi farci una bella doccia e dirigerci verso le 11 a Y Combinator.

Davanti ad una tazza di Caffè Mocha ripassammo un po’ gli argomenti su cui ci eravamo preparati, che erano un po’ le domande tipiche che Y Combinator fa durante le interview, domande quali “qual’è il vostro mercato”, “come sapete che le persone hanno bisogno del vostro prodotto”, “che cosa avete voi che altri non hanno”… le avevamo raccolte leggendo i vari blog e nelle FAQ del loro sito. Alla fine ne abbiamo raccolto circa 20 di significative e sono elencate alla fine di questo articolo.

Arrivati a Y Combinator ci dicono che siamo nell’edificio 2. Edificio 2? Esiste un edificio 2??? Si esiste ed è di fronte alla sede principale, un edificio più piccolo con una reception, una grossa sala comune dove i ragazzi attendono l’interview e stanze molto piccole dove queste avvengono.

Y Combinator Building 2

La nostra interview è slittata di circa mezz’ora, mezz’ora nella quale l’agitazione un po’ si è fatta sentire, mezz’ora nella quale abbiamo parlato con Anna e Rustem (ragazzi Austriaci fondatori di Robo), mezz’ora nella quale due ragazzi dai tratti orientali sono usciti da una delle stanze con un cervello di gelatina in mano… ancora oggi mi chiedo che cosa fosse.

Poi ci chiamano, tocca a noi. Una rapida occhiata tra me e Daniele per capire che avevamo la situazione in pugno (sono chiaramente ironico qui). Entrati nella stanza ci troviamo di fronte tre ragazzi giovani, poco più che ventenni… due di loro sono gregari e lo si nota subito, uno invece, quello che conduce il gioco e che ti interrompe sempre per far andare il discorso dove gli interessa è diciamo “quasi” amichevole… ma 10 minuti sono pochi e bisogna ottimizzarli.

La prima impressione è quella di un esame universtario, una roba tipo “Metodi Matematici per l’Ingegneria” che ancora mi sveglio di notte pensando di non averlo passato. Personalmente mi sarei aspettato che ci chiedessero un po’ del progetto, invece a parte una rapidissima domanda sul che cosa facciamo, il prodotto praticamente non è più stato menzionato. La cosa che più ci ha lasciati spiazzati era che sembrava che nemmeno avessero letto il nostro apply, dove spiegavamo per filo e per segno quello che avevamo realizzato, con tanto di video e di demo come da loro richiesto.

Comunque sia, in sintesi la nostra interview è stata più o meno questa:

Loro: Buongiorno ragazzi, allora cosa fate?
Noi: In parole povere un’app che crea le app. Abbiamo sviluppato un nuovo linguaggio di programmazione con una virtual machine ed abbiamo riscritto da zero un sistema operativo mobile il tutto esposto tramite un’applicazione desktop che rende incredibilmente veloce e semplice lo sviluppo di applicazioni mobile multipiattaforma. I tempi di sviluppo si riducono da settimane e mesi ad ore o giorni.
Loro: Ma ci sono già altre cose simili. Ad esempio…
Noi: No aspetta quelle sono soluzioni web che mascherano un’app tramite un sito, non si può fare nulla di professionale e performante con javascript ed il web.
Loro: Ma perché dovrei usare la vostra soluzione anziché usare Xcode?
Noi: Xcode? (Ma avete letto il nostro apply?) … quelle sono soluzioni che possono essere usate solo da sviluppatori professionisti, il nostro software è per tutti, anche per chi non è uno sviluppatore.
Loro: OK ma ci sono già cose simili, perché non dovrei installare Eclipse?
Noi: (Eclipse Santo Dio, hai detto Eclipse??) Come ti dicevo il nostro ambiente di sviluppo è pensato per essere semplice da usare, con il drag and drop si può praticamente fare tutto e tutte le attività più complesse come i binding o la logica di navigazione o le animazioni sono esposte tramite un’interfaccia grafica molto semplice ed intuitiva.
Io a questo punto penso: (Ma avere visto qualcosa di quello che vi abbiamo mandato?)
Loro: OK, quanti utenti avete?
Noi: Ancora nessuno, non siamo ancora sul mercato. (L’avevamo scritto nell’apply).
Loro: Ci state mettendo molto però a sviluppare quest’applicazione.
Noi: Non è solo un’applicazione, ma è un compilatore, una virtual machine, un nuovo linguaggio ed anche un sistema operativo mobile.
Loro: Quanti utenti stanno usando la vostra app?
Noi: Non siamo ancora sul mercato per cui l’abbiamo data solo ad alcuni sviluppatori e designer nostri collaboratori.
Loro: Quante app hanno sviluppatore con il vostro software?
Noi: Come dicevo e come ho chiaramente scritto, siamo ancora in pre-beta per cui hanno solo sviluppatore delle app di test per uso interno, niente ancora sul mercato.
Loro: OK ragazzi i 10 minuti sono finiti.
Noi: Veramente noi avevamo anche una demo da mostrarvi.
Loro: Ah OK si fate vedere.
Noi: 30 secondi di demo
Loro: Ragazzi è impressionante quello che avete sviluppato.
Loro: Ciao ragazzi e grazie per essere venuti fino a qui.

Il seguito

Siamo usciti dall’interview frastornati… ne io ne Daniele avevamo voglia di parlare. La mia impressione era che fosse stato un autentico disastro… due anni di lavoro, due anni a combattere contro un’idea che sembrava irrealizzabile ed ora in 10 minuti nemmeno si erano presi la briga di capire che cosa avessimo tra le mani. Abbiamo mangiato un hamburger, siamo tornati in albergo ed io mi ricordo solo di aver dormito fino al giorno dopo.

Se si è presi nel programma di Y Combinator si riceve una telefonata da uno dei membri del team, se invece le cose non vanno bene si riceve una mail con una breve spiegazione del perché non si è stati presi.

Mi sono svegliato verso mezzanotte, ho controllato le mail e ne ho vista una di Y Combinator. Sapevo già cosa significava, l’ho girata ai ragazzi del team e mi sono rimesso a dormire. Mi sono poi svegliato verso le 5 del mattino (orario standard oramai) ed ho visto un messaggio di Daniele che mi diceva che mi avrebbe aspettato allo Starbucks verso le 7.

Non so bene cosa sia successo durante la notte, so solo che tutti i cattivi pensieri del giorno prima avevano lasciato il posto ad un sentimento nuovo, di rivalsa e di spinta a fare ancora di più, ancora meglio. La mia preoccupazione era per il team, come avrebbero reagito alla notizia? Come avrebbe reagito Daniele? Non navigavamo di certo in buone acque e dopo molti sacrifici credo proprio che tutti noi avessimo bisogno di una buona notizia.

Doccia e poi a piedi verso lo Starbucks… dove trovo Daniele intento a lavorare, intento a cercare di correggere un bug che avevamo notato ieri, poco prima che iniziasse l’interview. Dove mi diceva che era lì dalle 5 oramai e mi faceva vedere la nuova finestra di dialogo che avremmo potuto usare per collegarci ai dispositivi via WiFi e diagnosticare anche gli eventuali problemi.

E lì ho capito.

Ho capito che per quanto disastrosa fosse stata la nostra esperienza con Y Combinator in realtà è stata la cosa migliore che poteva capitarci. Ho visto in Daniele prima e negli altri membri del team poi la volontà di rivalsa, la voglia di riscatto e sopratutto la consapevolezza di essere impegnati in qualcosa di veramente grande… indipendentemente dall’opinione che qualcuno può darti in 10 minuti.

“Daniele, adesso godiamoci la nostra vacanza in Silicon Valley” è stata l’unica cosa che mi sono sentito di dirgli in quel momento… e così è stato. Abbiamo passato diversi giorni in California, un po’ a visitare alcuni luoghi mitici che oramai dopo averli visti e sentiti così tante volte ci sono apparsi quasi famigliari… abbiamo fatto gli stalker in luoghi ed a persone che non possono essere riportati in questo articolo 🙂 … ed abbiamo anche parlato molto di Creo e di Y Combinator.

Apple HQ

L’esperienza insegna

Abbiamo passato moltissimo tempo a scrivere codici incredibilmente complessi, abbiamo prodotto più di mezzo milione di righe di codice, eravamo talmente immersi in tutto questo marasma di numeri e simboli che stavamo perdendo il reale significato del perché lo stessimo facendo. Il prodotto.

Abbiamo deciso di creare un prodotto così complesso come Creo non tanto per la volontà di scrivere tonnellate di codice, quanto invece per dare la possibilità a chiunque di poter scrivere applicazioni. Y Combinator, forse in un modo un po’ brutale ma comunque molto efficace, ce l’ha fatto ricordare. Tutti i nostri sacrifici, per quanto grandi e per quanto profondi, dovevano essere focalizzati verso uno ed un solo obbiettivo… arrivare ad avere un prodotto sul mercato. Cosa che per quanto bravi fossimo stati, in quel momento non avevamo.

Y Combinator è stata la spinta giusta al momento giusto. Abbiamo deciso di non fare più apply fino a quando non avessimo avuto un prodotto finito e visto come stanno andando le cose è stata la decisione migliore che potessimo prendere. Per un prodotto così tanto complesso come Creo è sempre stata un’impresa fare delle previsioni, i problemi che sembrano insormontabili, le nuove tecnologie che cambiano tutto dall’oggi al domani sono sempre dietro l’angolo e per questo rappresentano una sfida enorme, sopratutto per un team ristretto come il nostro. Ma oggi come oggi siamo molto vicini al prodotto finito e credo proprio di poter dire che questa spinta ce l’abbia data Y Combinator.

Ci riproveremo a fare l’apply con loro, perché ancora oggi sono convinto che il loro programma di mentoring abbia un valore inestimabile, non paragonabile nemmeno ai soldi che ti potrebbero dare. Ci riproveremo però quando avremo un prodotto sul mercato, con una base di utenti vera e con numeri che non si possono confutare.

Go off and do something wonderful.

Questa frase di Robert N. Noyce l’ho letta dentro al museo Intel a Santa Clara e mi ha fatto riflettere molto. Sembra quasi che oggi il compito delle startup sia quello di riceve più soldi possibile, nel minor tempo possibile ed a tutti i costi… piuttosto che creare il miglior prodotto possibile e cambiare la vita delle persone. Noi perché siamo venuti qui? Per il soldi? Si i soldi sono importanti e 120.000$ in quel momento ci avrebbero fatto comodo… ma più che altro noi ci siamo imbattuti in quest’impresa per un solo ed unico scopo. Per creare qualcosa di veramente grande in grado di cambiare lo status quo.

Non ci rimane che farlo a questo punto, non ci rimane che “go off and do something wonderful”.

Y Combinator’s most frequent questions

  1. What are going to do?
  2. Potential Users?
  3. Obstacles in your path?
  4. What’s wrong with existing options?
  5. How you’ll overcame the barriers that allow existing options to stay bad?
  6. Who needs what you’re making?
  7. How do you know they need it?
  8. What are they doing now?
  9. What makes you different from existing options?
  10. Why isn’t someone already doing this?
  11. What obstacles will you face and how will you overcame them?
  12. How will customers/users find out about you?
  13. What resistance will they have to trying you?
  14. How will you overcome that resistance?
  15. What are the key things about your field that outsiders don’t understand?
  16. What part of your project are you going to build first?
  17. Who is going to be your first paying customers?
  18. If your startup succeeds, what additional areas might you be able to expand into?
  19. Why did you choose this idea?
  20. What have you learned so far from working on it?
  21. Six months from now, what’s going to be your biggest problem?