I started working on Urbanoe a few years ago. I had this need to express myself, I think. It’s a bit like a writer… you get creative urges…. I wanted to build something that I couldn’t build through a standard consulting gig, or through a normal 9 to 5 software job. I wanted to create something without having to go to a scrum meeting every morning where I’d have repeat the same thing ad nauseam. I wanted to explore new design ideas, new technologies and new languages. That’s really what prompted the creation of Urbanoe.
Furthermore, I argued, Urbanoe could become a rather important part of my consultant portfolio. It had the advantage of not being bound to NDAs, it would be public facing and there would be no doubt as to what I contributed to it (all!).
I now realize that a lot of my reasoning was just rationalizing. Truly, my main purpose was about creating something cool, something to be proud of. This, I achieved. I created something that works, is demonstrable, uses up to date technologies and allowed me to design things the way I wanted to. Quite proud of what I built, quite happy of what I learned.
As to being of use as part of my consulting portfolio and allow me to find fun and interesting contracts with these technologies. This was not so successful, sadly. I have thought long and hard about the reasons for it and here’s what I came up with:
- Server technologies: I used RoR, AWS, Heroku as server technologies. These are amazing technologies and are quite important for a startup in Silicon Valley. I was absolutely convinced at the time that RoR would become huge in Ottawa. This did not happen. The Ottawa IT scene is not as vibrant as it used to be and usually people go with mature technologies (Java, C# mainly).
- Mobile platform: I chose Android, iOS was planned for future. I did get work in Android but since I have 20 years of Java experience, it’s difficult to say if I got those contracts because Urbanoe or because of the Java experience. That being said, mobile contracts do not pay well here, so if money was the only factor, my decision would have been quite awful… fortunately, the experience gained made it worthwhile.
- Location: I wanted to stay local. Ottawa is a nice place to live in, I was not ready to move or to contemplate remote contracts. This was also a mistake.
About one year ago, the system actually became good enough that I thought it had a chance as a full blown product. I envisioned cities using Urbanoe as part of their 311 reporting infrastructure (either as a full solution or complimentary technology). So I spent some time, trying to make it a minimum viable product (MVP). This did not work. Reasons for this, from my point of view are:
- Marketing: I did not do a good job at marketing the system. Few cities were interested by it. Kudos to Toronto and San Francisco who were by far the cities most open for discussion! As to my online marketing effort, it was simply inexistant.
- Mobile Platform: Here also, using Android was wrong. Lesson to self, when in doubt, always, always choose IOS first.
- UGC: I did not allow for User Generated Content, which would have injected a little bit of chaos in the system.
- Open platform: The platform is built too monolithically. It does not allow outside contributions. There is no plugin architecture. It would have been really nice for a third party to come in, develop some sort of engine that could suddenly bring a new exciting feature. Examples, a contest engine or a news generating engine.
- Partnering: I did not look hard enough for partnership, technical, marketing and financial. I should have looked for people who share my interest in building something freakin awesome… but I didn’t… I held on to it for too long.
Obviously, it’s not all bad. I learned a whole lot building this system:
- I have built a PaaS that runs on the cloud, uses AWS services. It’s totally asynchronous, can scale and is very flexible. I designed a full communication protocol that is superior to Open311 standard. On top of this, I built a semantic and responsive web app.
- I learned a lot about user interfaces, CSS and UX. Still not great but better than most software engineers out there. I feel pretty confident as to how to build a semantic driven web app.
- I also learned a lot about marketing. I was (am?) so bad at it that it forced me to read a number of books on this topic and to watch videos on SEO, analytics, branding, marketing, etc Again, I’m not an expert but reading so much allowed me to realize the amount of work needed for this.
- The whole adventure made me realize that even though, I am good… I can’t do everything by myself. Yes, I can deliver a product on my own but it won’t be good enough with only me working on it. In this day and age, any platform MUST be amazing to have any chance to succeed.
- I have a new found respect for graphical artists, for marketing specialists, etc. Software can be quite hard but there’s a lot of thought and effort that can go in choosing a simple header text or even a suitable font or color! No kidding!
So now what? Do I stop working on the system? I invested a lot of time on it… but is it throwing good money after bad? That being said, I truly enjoyed it up to now and it does allow me to handle outside crap better knowing that I am building an elegant, beautiful system.
Furthermore, I still totally believe that a “civic communication platform” makes sense. There’s absolutely no way that this is not going to happen. There’s so much to gain for the city and the citizen. So do I want to play a part in defining it?
Lots to think about. Moratorium on Urbanoe for a few weeks, after which I will decide.