Thursday, June 29, 2017

¿Cómo emprender?


Consejos para un adolescente emprendedor

Antes que nada, debo aclarar que yo nunca había vivido una experiencia trabajando para una startup (sino hasta hace muy poco tiempo) y lo que sigue son sólo observaciones que he reunido desde afuera. De platicar con emprendedores, directivos de empresas, firmas de venture capital, asociaciones de apoyo al emprendimiento y expertos en estos temas. También he leído libros, escuchado podcasts, atendido conferencias, estudiado blogs y seguido algunas cuentas de Twitter durante más de cinco años como responsable de estas cuestiones en IBM México. Sin embargo, soy sólo un apasionado del tema y mis comentarios, hasta hace poco, eran de segunda fuente.

Como sea, en mi opinión:



¿Por dónde empezar?

Para estructurar tus ideas te recomendaría armar un plan de negocios y el formato más comúnmente empleado es el Business Model Canvas de Alexander Osterwalder. Entre los puntos principales del modelo tendrás que reflexionar sobre tu propuesta de valor, la descripción de tu cliente objetivo, la identificación de asociados, los canales de distribución, tus costos, etc.

Inmediatamente después, deberás desarrollar un MVP (Minimum Viable Product). Esto es un prototipo simple, pero ya funcional, de tu producto o servicio. Algo que idealmente puedas vender (o alomejor regalar de inicio) para comenzar a probar tu modelo y obtener retroalimentación sobre el valor que estarás proporcionando.


¿Cómo hacerlo?

Fue Eric Ries de los primeros en hablar del método científico aplicado a emprendimiento en su libro The Lean Startup. Adoptó muchas ideas del lean manufacturing de Toyota y las sumó a experiencias de emprendimientos propios. Este libro es un recurso muy popular que me parece vale la pena revises para profundizar más sobre el método (build -> measure -> learn) y también sobre los MVPs que arriba menciono.

En resumen, de este libro rescato la idea de que se vale fallar y “pivotear”, pero hay que fallar pronto: Fail Fast!


Fuentes de inspiración

•    eCorner from Stanford Technology Ventures Program
Puedes consumir los contenidos en audio y video desde la página o también puedes suscribirte como podcasts desde tu celular.
•    Coursera
Aquí puedes acceder de manera gratuita muchísimas clases impartidas por las mejores universidades del mundo. En particular, para temas de emprendimiento encontré 97 cursos disponibles y los de Wharton (University of Pennsylvania) se ven muy buenos. Creo que vale la pena revises algunos.
•    En Twitter puedes seguir a Alex Osterwalder‏ quien es el autor del Business Canvas y yo sigo también a algunos actores locales que me parecen relevantes:
@mdantus @fabref @ericpg @agalvanc @capemprendedor


¿Necesito hacer un documento en Word para presentar mis ideas?

Depende para qué… Alomejor por ahora ni siquiera tienes que ponerlo en Word y sería suficiente con escribir tus ideas en una libreta. Sin embargo, conforme vayas desarrollando tu modelo, construyendo tu MVP y validándolo, platicarás con incubadoras, inversionistas y tus potenciales clientes. Seguramente entonces te dirán (y te darás cuenta) que “ideas are cheap”. Lo que tiene inmenso valor es probar y ejecutar estas ideas.

En otras palabras, un emprendedor exitoso (y a mi parecer, en general una persona exitosa) es más el resultado de su trabajo que de su intelecto. No sólo se trata de personas inteligentes sino realmente muy chambeadoras.

“Genius is one percent inspiration and ninety-nine percent perspiration”
Thomas A. Edison

Mi punto es, ordena tus ideas siguiendo un modelo como el Business Canvas de Alex Osterwalder y pruébalas directamente con quienes serían tus clientes. Construye un MVP, valida si tu idea es bien recibida e identifica cómo puedes “pivotearla” para ir cada vez puliendo más tu producto. Llegará pronto el momento de que no sea suficiente un documento en Word, sino que necesitarás hacer una presentación de tu modelo de negocio a una aceleradora, o tendrás que realizar una proyección financiera para convencer a un fondo de capital. Sin embargo, lo más importante, es que llegará el momento en que tendrás algún cliente. Escúchalo pues ése será tu verdadero norte para saber lo que tienes que hacer.

Tuesday, May 23, 2017

Miles and miles of squares


Fifteen years ago I edited a short video about my life during the M.Sc. Back then, the memory in my camera was limited and I could only shoot about 30secs of very grainy video before it was full. So I had to come back to the computer, download the contents of the camera and liberate some space to continue filming. Tools were different, but it was great fun to play with them:

  • I had an IBM Thinkpad T22 and the rendering took ages.
  • I used Sonic Foundry Video Factory 2.0 to edit the video.
  • Goldwave 4.25 was used to record some of the audio and to edit all of it.
  • All the pictures were taken with my beloved Olympus D-490 camera.


Thursday, May 11, 2017

Just Like Heaven


10 years ago we organized a big birthday party.

When I was 30 I thought I could sing... I try to remain foolish.



Friday, April 28, 2017

Planning a trip


On my last post I talked about Google Maps... Today I'm going to share a couple of holiday itineraries that I've put together using Google Maps:

London 2015
Vienna-Prague-Berlin 2016
Portugal & Spain 2018

This is the process that I've followed for planning these schedules:

  • Research (browse the web, read guides, listen to podcasts).
  • Enlist the interesting places you want to visit.
  • Place the points in a map.
  • Group the places into areas that are close to each other.
  • Consider opening times and special events (exhibitions, concerts, festivals, etc). 
  • Investigate restaurants and bars (check reviews on Foursquare and Trip Advisor).
  • Choose an area for your hotel (the maps in Airbnb and Trip Advisor are very useful to make sure your selection is easily accessible and not too far from where you want to be).
  • Take everything into account and plan your days.

I enjoy traveling well prepared to make the most of my time and to know a little about the places I visit. Sometimes you definitely need to improvise and sorprises can be great, but I've always found much truth in this phrase: "if you fail to prepare, you prepare to fail".

Tuesday, April 18, 2017

Google Maps for traveling

I love Google Maps and I've used them to create my own collection of interesting places when visiting a city or planning a trip:


I have also found them useful for explaining a route and defining guiding points on a map. This is an example I built to present a recommended itinerary from Mexico City to Acapulco (originally posted in my wedding blog):


Monday, April 3, 2017

O-D Animation


I just found a cool feature to animate dashboards!

It is possible to define a filter on a slide that then lets you explore the data as some kind of evolution. This works pretty neatly when observing a variable through time.

Remember the Ecobici dashboard? Check how this kind of animation can be applied on that data:


On Tableau Desktop you can automate the transitions and just hit the play button when examining your data, but this functionality doesn't work when you publish your file to the web. Anyways, the visualization looks something like this when it is automated:


Monday, March 20, 2017

Ousterhout's dichotomy


On a previous post about efficiency I shared my experience when I optimized a dashboard that was running slowly.

However, I didn't measure the performance improvement and the comparison, although very obviously noticeable, was not quantified. It wasn't important then, but in many other cases it is necessary to know more accurately. As it is said, what isn't measured can't be managed.

Measuring efficiency

Tableau's help guide includes an article on Recording and Analyzing Workbook Performance that can lead you through the step by step process on how to evaluate the performance of a workbook. I ran this analysis for the Original Ecobici file and then for the Optimized version.

When filtering the heatmap table by a certain time and day in the week, it took an average of 22 seconds for the original file to run:


While it only took 0.35 seconds for the optimized file to execute the queries implicated.


This signified that the same query ran 60 times faster on the latest workbook, but it also implied a certain tradeoff in the simplicity that the tool offers since it was a little laborious to adapt the data. In this example, it was definitely worth investing some effort in better organizing the information for Tableau to be swifter. However, in some occasions this may not be the case.

The pretentious name for this dilemma is called the Ousterhout's dichotomy:

Easy for humans to program  vs  Easy for machines to run

Monday, March 6, 2017

(Real) Data Ownwership


I'm still trapped on Nike+ since I don't want to give up more than 6 years of data. However, if I started again I'd probably use Strava.

It is a very cool mobile app and the desktop version fully allows the import and export of your data. It has pre-built widgets as the one on the left, but you can also extract the second by second readings of your training sessions.

You can download your information as a GPX file (a simple XML structure) where each reading is recorded as follows:
 
<trkpt lat="19.4226360" lon="-99.1724980">
    <ele>2244.5</ele>
    <time>2017-02-11T22:42:08Z</time>
</trkpt>


You can also extract the information as a JSON file that I found a little harder to parse, but includes a few extra measures for the accumulated distance, the instant speed and the course (as a value between 0 and 360, I guess it is measured in degrees).

I downloaded the data for a bicycle ride, I translated the JSON into a table and replicated some of the graphs that are shown in the app:

   



Monday, February 20, 2017

(Semi-Recovered) Data Ownwership

I'm still not comfortable about not being able to access my Running information in Nike+, but I'm happy that Apple has a different perspective on this and the data that my phone is capturing from my daily activity is available for me to download and use.
So, I managed to export the data from the Health application in my iPhone. The first part of the process is quite simple:
  1. Enter the app.
  2. Click the Health Data icon at the bottom of the screen.
  3. Click the export icon at the top right corner.
  4. Confirm Export.
  5. Define how you want to export. In this case I selected the email option and a ZIP file was sent to my Inbox.
The ZIP file contains an XML document that in my case had information for the past 9 months (last time I had to format my phone) organized in over 22 thousand elements of an XML tree. From this structure, I will highlight a few attributes that I think are the most relevant:

  • _type  The measure that has been recorded, peg. StepCount, DistanceWalkingRunning, etc.
  • _unit  The unit of measure that is being used, peg. count, km, etc.
  • _value  The amount, degree or size that was counted for this measurement.
  • _creationDate  Self explanatory
  • _startDate  The starting moment for this reading
  • _endDate  The ending moment for this reading

It's interesting that the app does not measure activity homogeneously and the timing in between each observation can vary from a few seconds and up to 40 minutes, although on average it makes a reading every less than 4 minutes.

I converted the XML tree into a table, I reorganized it a little bit (see the final version here) and I can finally have the same graphs as on my phone (you can drill down the horizontal axis to see the information by Month, Week and Day). The information is not as rich as in Nike+, but it is available and it is mine!

Thursday, February 9, 2017

(Lost) Data Ownwership

I've been consistently running since 2008, but I've only tracked my runs since 2011. Back then, I used an iPod nano to keep the records and later it all got stored on the Nike+ Run platform.

My 2016 totals

A few years later I had my first iPhone and I started using the Nike+ application on my mobile. I've been  very happy with this tool and although I recently tried moov and Strava, I didn't find enough reasons to migrate. However, I also came to reflect about the 5 years of data that I've loaded into Nike+, it's richness and how I'd like to access this data and do my own analysis.

I browsed the Nike+ platform and I did a quick internet search, but I couldn't find an easy way to download my data. I found some apps that claim to do the trick, but I wasn't too confident to install them or provide them with my Nike+ login/pwd. I also found a couple of pieces of code that would supposedly recover the data, but I wasn't bothered to test them and decipher what they really do.

I never read the small letters when I started my Nike+ account and I guess that I'd have registered anyways (or maybe not if I there had been a Strava integration with my iPod), but this make me think who is the owner of the data. I'm still a fan and a daily user of the app, I'm OK with Nike knowing my running habits, but not letting me export my data leaves me thinking... Who really owns the data? Nike+ or myself?

Monday, January 30, 2017

Efficiency


I have been reflecting on my dashboards performance...

You may have noticed that the Ecobici dashboard I presented on my previous couple of posts takes a while to refresh every time you filter the views. This exercise is using a considerable number of rows and there are some optimization tricks that I should have then taken into consideation.

To begin with, it would have helped to calculate some fields in the source file instead of making the calculations in Tableau:
  • The distance calculation is a clear example and I should have done it just as I did with the trip time.
  • In the end, it was not a good idea to merge the date and time values into a single column and rely on Tableau's functions to calculate YEAR, WEEKDAY, DAY, HOUR, etc. It is much more efficient to have distinct columns for the measures being used.

There are other factors to consider for responsive dashboards and I've found a couple of nice articles that may be helpful to go deeper in this topic:

For now, I only added the date and distance calculations on the source file and this had a significant impact on the performance:




Wednesday, January 25, 2017

Data Cleansing

I want to elaborate a little bit more on the process I followed to construct the Ecobici dashboard in my previous entry.

The original file included almost 690 thousand rows corresponding to the trips that public bike users made in December 2016. The raw archive was provided in the following format:

Genero_Usuario,Edad_Usuario,Bici,Ciclo_Estacion_Retiro,Fecha_Retiro,Hora_Retiro,Ciclo_Estacion_Arribo,Fecha_Arribo,Hora_Arribo
M,33,3340,24,01/12/2016,12:00:07 AM,123,01/12/2016,12:14:48 AM
M,36,7863,75,01/12/2016,12:00:28 AM,278,01/12/2016,12:09:24 AM
F,45,2964,365,01/12/2016,12:00:37 AM,369,01/12/2016,12:08:20 AM
...

It is a text file that can be opened with Excel. The guiding wizard will ask for a few parameters to determine what character is being used as a column separator (a comma in this case) and the data type for each column. I guess this file could be handled directly from Tableau, but I found it easier to make some arrangements first in Excel:

  • Merging columns

    The original file contains separate columns for the dates and times when each trip begins and also for when it ends (four columns in total). I decided to merge the information into a single column for the departures and another one for the arrivals (two columns). I simply concatenated the values in Excel, but it's important to take care of the data types that Excel assigns to each column or this concatenation will result in some bizarre values. While exporting the CSV file with the Excel wizard, make sure to choose the Text type for the dates and times columns, or you could also use the function TEXT(value,format)if you selected the default General type while pulling the data.

    I later learned that Tableau is a little picky on the time formatting and I also had to convert the values to the 24hrs convention instead of the am/pm used in the original file. In the end, this was the function I used:
    CONCATENATE(A1," ",TEXT(B1,"HH:MM:SS"))

  • Joins (vlookup)

    The original file includes the station IDs for the origin and destination of each trip. However, I also wanted to know the address of each point so that I could draw the points into a map.

    Ecobici offers a JSON service that in real time publishes the bike availability per station. This document can be easily converted to a CSV file containing the following information:

    id,district,lon,lat,bikes,slots,zip,address,addressNumber,nearbyStations,status,name,stationType
    1,CUA,-99.168051,19.433296,13,14,06500,001 - Río Balsas-Río Sena,S/N,"2,3,85",OPN,1 RIO BALSAS-RIO SENA,"BIKE,TPV"
    2,CUA,-99.171695,19.431386,2,8,06500,002 - Río Guadalquivir - Río Balsas,S/N,"1,5",OPN,2 RIO GUADALQUIVIR-RIO BALSAS,BIKE
    ...


    From this file I created a catalogue where I could find the latitud, longitud and name of each station using VLOOKUP(value,range,column).

  • Calculated fields

    There are at least a couple of measures that were not included in the original dataset, but that can be determined from the provided data. In this case, I was interested in knowing more about each trip:

    1. Time spent on each trip: This is a trivial substraction between two columns in Excel.
    2. Distance between the origin and destination: I used the haversine formula to calculate the distance between two points expressed as latitude and longitude. This is also an easy computation, but this time I made it in Tableau because I came to this idea once I had already imported the data to the tool. It is important to note that this is just an estimation because it considers a straight line between the origin and destination, and not the real route that could be very different and much longer. It also disregards the extra distance that result from biking up and down any elevation variances. 

    I have also been considering it would be interesting to observe the deficit and superavit of bikes each station may have at different times during the day. This is an important metric for service operators to relocate the bikes from where there are too many, to where there are shortages. I'll probably leave this exercise for the future.

Monday, January 16, 2017

Bike Share in Mexico City


Playing with open data for public bike usage in Mexico City!




For this observation, I downloaded some of the open data provided by Ecobici in Mexico City. I specifically used the December 2016 results which are available as a CSV archive that contains information of 688,657 trips. Although December may be atypical because of the holidays, some interesting observations result from the exploration of the data:
  • The busiest time of the week is Thursdays 8am.
  • The busiest origin stations are not necessarily the same as the busiest destination stations.
OriginTrips
REFORMA-HAVRE 8,319
REFORMA-RIO SENA 5,837
RIO BALSAS-RIO SENA 5,482
AV. CENTRAL-J. MENESES                  5,443
REFORMA-LIEJA 5,268
      
DestinationTrips
REFORMA-HAVRE 8,335
AV. JESÚS GARCIA-CARLOS J. MENESES 6,061
REFORMA-RIO SENA 5,882
RIO BALSAS-RIO SENA 5,605
AVENIDA MEXICO-SONORA 5,390
  • It is also interesting to observe that the daily origin heatmap varies for each station:
    • If the heatmap is skewed towards the morning, probably the location corresponds to a residential area where users are riding from home to work (or school, or wherever people begin their daily activities).
      For example, select station 266 AV. JESÚS GARCIA-CARLOS J. MENESES (don't forget to click the filtered station on the origin map).
    • If the heatmap is more active around 18hrs, this may signify that more offices are located around the zone and are using the station to leave from work.
      For example, filter by station 27 REFORMA-HAVRE.
  • The longest trip in December was of 10.36km (note that this is just a straight line approximation) and it took place from 244 EJERCITO NACIONAL-F.C. DE CUERNAVACA to 445 RIFF-AVENIDA RIO CHURUBUSCO. However, the average trip is just 1.639km and the average time of usage is 14.5mins, does this mean the average speed is only 6.78km/h?