En el año 2011 Marc Andressen publicó su famoso ensayo “Why software is Eating the World” en el que presentó la idea de que toda compañía debe convertirse en una compañía de software.

Desde entonces este pensamiento ha ido transformando una  gran cantidad de empresas de diferentes industrias, convirtiendo en líderes a aquellas que han adoptado prácticas y enfoques provenientes en la industria del software en sus procesos de ideación y construcción de sus productos.

Pensemos en la industria automotriz, con unos ciclos de innovación que tradicionalmente se medían en años o incluso décadas, está sufriendo una disrupción histórica por la aparición de Tesla.

La empresa de Elon Musk utiliza prácticas habituales en la industria del software tales como el uso de producto mínimo viable para validar el producto, el desarrollo incremental  etc…

El primer coche de Tesla, el modelo Roadster que fue lanzado en 2007, estaba construido utilizando componentes  y diseños de otros vehículos (el más significativo es el diseño de la carrocería proveniente del Lotus Elise). Este enfoque permitió tener listo el coche en apenas dos años y poder validar sus ideas de negocio, corregir ciertas asunciones y adaptarse.

Cuando se lanzó el Tesla Model S en 2012 carecía de características como por ejemplo el asistente de arranque en cuesta  presente en coches mucho más básicos, pero les permitió empezar a obtener ingresos y aprender cómo debía ser un coche eléctrico familiar. (Finalmente todas las unidades recibieron esta característica mediante una actualización de software en mayo de 2014).

 

Tesla Model S
 

 

Desde entonces hasta ahora ha habido decenas de actualizaciones en el software que han permitido que los afortunados poseedores del vehículo beneficiarse de nuevas características mes tras mes; dejando patente que Tesla considera que sus productos nunca están terminados y mejoran constantemente. Esto es posible a un sistema de actualizaciones “Over The Air” que posibilita enviar nuevas versiones de software a los vehículos a través de la red de telefonía móvil a la que están permanentemente conectados. Tradicionalmente, cuando se adquiere un vehículo se compra un producto finalizado cuyas características no se verán alteradas durante la vida útil del mismo salvo que el fabricante se vea obligado a una llamada de revisión para solucionar algún problema de diseño que pueda afectar a la seguridad de los usuarios.

Estas actualizaciones no sólo se utilizan para actualizar el coche con el fin de que adquiera nuevas características sino que la propia compañía desarrolla “fixes” ad-hoc para solucionar defectos de hardware de unidades específicas sin que sea necesario que dueño del coche se acerque al centro de reparaciones.

Otro uso importante de este sistema de “Continuous Delivery” de software, es el despliegue de versiones diferentes de software para realizar testing A/B de las características del coche. Esto permite que determinadas funcionalidades del coche estén disponibles antes a determinado grupo de usuarios y con el feedback obtenido ajustar el funcionamiento.

Autopilot Full Self-Driving Hardware (Neighborhood Short) from Tesla, Inc on Vimeo.

La facilidad que tiene Tesla para que sus vehículos recopilen y envíen las mediciones de los sensores de sus vehículos en todas las situaciones junto con la reacción del conductor sirve como datasets de sistemas de Machine Learning que están posibilitando que dichos vehículos lleguen a conducirse solos en un futuro cercano. Uno de los aspectos que más preocupa en el desarrollo de la experiencia de los usuarios de vehículos autónomos es que los usuarios de los mismos se sientan seguros y confiados siendo conducidos por el coche. Por ejemplo, la distancia a la que el coche debe iniciar el frenado ante un obstáculo para que los pasajeros tengan la certeza de que el vehículo está controlando la situación y además la desaceleración sea suave. Los vehículos de Tesla podrían estar recopilando la reacción del conductor mientras conduce para optimizar la experiencia cuando dicho vehículo funciona de manera autónoma.

Una técnica utilizada en la industria del software para reducir el riesgo en el lanzamiento de nuevas de versiones de software son las “Canary Releases”. Se trata de que nuevas versiones de software están disponibles inicialmente a un grupo reducido de usuarios y tras monitorizar que el número de errores o el impacto en las infraestructuras son los adecuados se va desplegando progresivamente a nuevos colectivos de usuarios hasta alcanzar a todos.

Prueba de ello es que Elon Musk, director ejecutivo y fundador de Tesla, anunciaba el 31 de diciembre de 2016 que se iniciaba el despliegue de software de permitía a los vehículos con hardware versión 2.0  de conducción autónoma disponer de dicha funcionalidad a los primeros 1000 coches.

Semanas más tarde, el 21 de enero comunicaba que el software estaba disponible para toda la flota pero que en la monitorización que habían hecho durante los días anteriores algunos coches no tenían la cámara bien ajustada y debían pasar por el servicio para ser reparados.

Centrándonos en paradigmas económicos de la industria del software como son las “compras in app”, puedes adquirir nuevas características para tu vehículo Tesla comprándolas en el interfaz del salpicadero del coche después de ser adquirido. Ejemplo de ello son:

  • Actualizar la capacidad de la batería de 60 kWh a 75 kWh (en realidad los vehículos con 60 kWh tenían una batería de 75 kWh limitada), aspecto que fue bastante criticado.
  • Piloto automático y la capacidad de vehículo autónomo (todos los vehículos fabricados tienen el hardware necesario para disponer de dichas capacidades).
  • Últimamente se está especulando con la posibilidad de que aprovechando la conexión 4G permanente del coche, utilizada para las actualizaciones del vehículo, el navegador y sistema multimedia principalmente; los usuarios puedan utilizarla a través de un “Wifi hotspot” previamente adquirido a través del panel de control del propio vehículo.

Por otra parte, no sería justo obviar que también la industria del software ha aprendido de la industria automotriz. Los procesos de desarrollo de software han ganado en predictibilidad y eficiencia cuando se ha comenzado a aplicar sistemas de planificación desarrollados por la industria del automóvil ya que muchos de los pilares de las metodologías ágiles están profundamente influidos por los sistemas “Lean Manufacturing” y “JIT”. Por ejemplo, el sistema Kanban utilizado para gestionar el trabajo en muchos equipos de desarrollo forma parte de sistema de producción de Toyota desarrollado entre las décadas de los 50 y los 70.

Las posibilidades que da el software de adaptar los productos y servicios a las necesidades de los usuarios, están transformando todas las industrias; nunca más existirán productos y servicios totalmente acabados, siempre estarán en mejora continua.