Una mirada hacia el futuro

Recientemente me he abierto una cuenta en Medium donde escribiré artículos y textos más largos de los que suelo publicar por aquí o que considere que no encajan entre estas entradas.

En mi primer artículo hablo sobre los avances tecnológicos que cambiarán nuestro futuro con la llegada de los vehículos sin conductor y las mejoras (o no) en temas de salud, relaciones humanas y la música.

Puedes leer el artículo en este enlace.

Lo que vi en el Build 2015 y el nuevo Microsoft

Hace casi un mes estuve en San Francisco y gracias a Microsoft, acudí a su evento más importante para desarrolladores, el Build.

11193070_503361936494064_1696561452_n

Lo primero que me impactó de este evento antes de ir es que costando la entrada 2000$ se agotasen el mismo día. Más de 5000 desarrolladores de nivel internacional acudieron al evento. Siendo español y organizador de eventos técnicos, esto me llama poderosamente la atención ya que en España hay poca costumbre de asumir inversiones de mucha más baja cuantía independientemente de la calidad del evento al que queramos acudir.

Lo segundo que me impactó fue Microsoft. Bueno realmente no Microsoft, sino la comunidad y todo el cambio que se está dando en torno a sus productos y que dista muchísimo con lo que conocí cuando trabajaba administrando sistemas basados en Windows Server y Exchange 2003, antes de dedicarme al mundo de producto y desarrollo de soluciones de software con tecnologías open source.

Os voy a contar un resumen de lo que vi allí esos días y algunas reflexiones personales desde mi punto de vista.

El día antes de comenzar el evento, tras acreditarnos, acudimos a una fiesta privada organizada por la gente de Xamarin y allí nos encontramos a gente muy crack del desarrollo mobile como Josue Yeray. En la fiesta había un catering de calidad, barra libre y una concentración de talento increíble.

Para el que no lo sepa, Xamarin es una solución para desarrollar de forma nativa (realmente nativa) aplicaciones para Android, iOS, Mac, Windows Phone, Windows y wearables que usen estas tecnologías. Es un proyecto que tiene detrás a la gente del proyecto open source Mono y al creador de Gnome, Miguel de Icaza.

Para desarrollar en Xamarin, debes tener conocimientos de Android e iOS así como de C#, lenguaje de programación estándar de Microsoft.

No sorprende entonces que en un evento de Xamarin no encuentres sólo a gente pro-Microsoft, sino también a desarrolladores de nivel internacional enfocados en Android e iOS.

Al día siguiente acudimos al evento a primera hora para asistir a la primera keynote del evento.

Lo primero que me sorprendió y que fue recurrente en la segunda keynote que tuvo lugar al día siguiente, fue la presentación de aplicaciones profesionales como StaffPad para componer música. Esta aplicación fue creada por el músico David William Hearn, quien escribió una pieza en directo durante la keynote.

Más tarde, la gente de Docker comentó su visión y estrategia de integración con el servicio de cloud Azure y se hizo una demo con Visual Studio y un plugin de docker para gestionar contenedores Linux desde el IDE.

La impresión 3D también tuvo su hueco. Para presentar nuevas tecnologías en Web, crearon una plataforma y caso de éxito ficticio llamado Fabrikam. Me sorprendió cómo tenían desarrollador a nivel de web responsive todos los flujos de diseño de las piezas en 3D y su posterior pedido a través de la web, con la gestión de negocio. Esta demo seguramente se vea en más presentaciones de Microsoft y la verdad si estás en el mundo de impresión 3D, deberías echar un ojo.

Algo que era sutil pero no dejaba de sorprender es que los ponentes hacían todas las demos de la keynote en teléfonos Android e iPhone junto a tablets iPad, no sólo con dispositivos con Windows Phone o Windows.

Pero la sorpresa de verdad fue sin duda cuando se presentó Visual Studio Code. Un editor de código que Microsoft publicó ese mismo día para desarrollar bajo Linux, Mac y Windows.

Posteriormente acudí a una charla donde se presentaron features avanzadas de este editor, especialmente relacionadas con el trabajo con c#, asp.net y javascript. En este último se han volcado en dar muy buen soporte en general.

Es un editor que da lo que puede dar Atom de Github, pero se ha añadido buen soporte de intellisense y debug, sobre todo ahora mismo para Javascript y C#. Se rumorea que podría acabar siendo OpenSource, pero no está confirmado aún.

Yo he sustituido Brackets para editar archivos simples de php. Aunque se me queda corto para programar aplicaciones php y no me sustituye a phpStorm, para desarrolladores Javascript o Asp.net bajo entornos linux o mac creo que puede ser una opción más que interesante.

También fue increíble cuando se anunció que Objective C se incluía dentro del catalogo de lenguajes .net. Se mostraron juegos de iOS programados en este lenguaje, corriendo nativamente en Windows10 e integrados con XBox.

Estos dos anuncios ya dejaron ver que Microsoft estaba apostando por un cambio de visión en la que en lugar de cerrarse, parecía que se abría a otras plataformas.

Otro anuncio ya esperado fue el de Microsoft Edge, que sustituirá a Internet Explorer como navegador.

La keynote se cerró con la presentación de las gafas de visión holográfica HoloLens, lo más alucinante y esperado del evento. Hubo desarrolladores que fueron al evento sólo por este anuncio.

 

Las aplicaciones y objetos holográficos de ese mundo de realidad aumentada se programan como si fuesen juegos pero se puede intuir que las aplicaciones para el mundo de los negocios, I+D, ingeniería y medicina no tienen prácticamente límites.

Algunos afortunados tuvieron la oportunidad de probarlas y recibir formación para desarrollar software para ellas, uno de ellos fue Josue Yeray y escribió un resumen sobre las mismas en su blog.

El resto del evento estuvo cargado de charlas sobre productos más en detalle.

El segundo día empezó con la segunda keynote del evento. Antes de empezar, un Deejay amenizó el ambiente con un set en directo haciendo uso de software bajo Windows10. De hecho la keynote empezó también con las experiencias de Muzik y Propellerhead.

Yo soy muy fan de Propellerhead, a finales de los 90 me flipaba componer con su Rebirth338 y no me esperaba verles presentar en ese evento.

Para mí fue una sorpresa la importancia que Microsoft le está dando a la producción musical.

Otra cosa que me llamó la atención fue el trabajo que están haciendo para emular la escritura con tinta en pantallas táctiles. Esto puede dar mucho juego para software relacionado con diseño o dibujo.

Otra noticia que dejó en silencio a toda la sala fue el proyecto Astoria. Lo que promete este proyecto es la posibilidad de ejecutar aplicaciones en Windows escritas en código Android nativo.

Este anuncio ha provocado polémica y también escepticismo en la comunidad .net de desarrollo Mobile, pero sin duda alguna es otra señal de que Microsoft ha cambiado totalmente su estrategia y forma de ver las cosas.

Hubo más cosas interesantes como el SDK para Microsoft Band (es una pena que este producto no haya llegado a España) y las posibilidades de extensión de Office e integraciones del mismo con Android/iOS.

Además de Cortana, el “siri” de Microsoft, se habló del proyecto Continuum para Windows10. Básicamente han logrado que los dispositivos Windows Phone se integren totalmente con Windows10 de tal forma que las aplicaciones con las que trabajas en el móvil, al conectar el terminal al pc, puedas seguir utilizándolas con los recursos y pantalla del equipo de escritorio. Esto sin interrumpir la experiencia de uso.

En la keynote también se mostró una demo de una aplicación web que se convirtió sin querer en trending topic y que calculaba la edad de una persona en base a su foto de avatar. La demo se usó para mostrar las APIs de análisis y monitorización disponibles en servicios Azure.

Esta última keynote finalizó con la temática Big Data y su aplicación en el mundo de la salud.

Durante el resto del evento acudí a charlas sobre novedades en ASP.net, servicios de búsqueda de Azure (que están basados en Elastic Search) y una charla de negocio sobre Office 365 Online.

El día final no hubo keynote pero sí charlas tecnológicas muy interesantes, en especial la de Azure Media Services, en la que Ming Feiy dio un repaso sobre todas las nuevas características y opciones para gestionar el reto de servir vídeo desde servicios cloud.

Conclusiones

Microsoft no está cambiando, ha cambiado ya y dicho cambio es tan real como evidente.

Mis opciones tecnológicas principales actualmente son Symfony2 para desarrollar aplicaciones web bajo linux y Xamarin para desarrollar aplicaciones nativas en iOS/Android. Por ello, mi interés principal de acudir al evento era el descubrir opciones tanto tecnológicas como de negocio, para desarrollar proyectos open source y servicios de Internet con herramientas Microsoft como c# y Azure que no me atasen a nada.

Me volví del evento con ganas de investigar las opciones que vi en allí y es algo que ya he empezado a hacer y muy en serio.

Por un lado hay herramientas muy maduras a nivel de desarrollo que es interesante tenerlas disponibles ahora de forma abierta bajo entornos linux. Por otro, hay APIs y herramientas cloud de Azure que pueden ahorrar mucho dinero e incluso hacer viables proyectos que antes requerirían una inversión de desarrollo e infraestructura importante.

Poco a poco, Microsoft se está abriendo y facilitando la vida a los desarrolladores para integrarse con otras plataformas como Android y Apple. Algo impensable hace unos años de Microsoft y algo impensable actualmente de empresas como Apple.

Me queda agradecer a la gente de Microsoft que me acompañó en el evento, Jose y Alex. También fue un placer conocer a Pablo Iglesias y Jorge del Casar.

 

Límites y pensamiento lateral

Hay muchas personas que creen erróneamente que la creatividad es algo con lo que nacemos y que no se puede adquirir o mejorar mediante estudio o entrenamiento.

Lo cierto es que cuando pensamos, nuestro cerebro lo hace de forma lógica, buscando patrones con modelos que ya conoce y de no hacerlo, los recuerda y va afianzando en nuestra memoria a medida que nos volvemos a encontrar con problemas similares.

Aunque este funcionamiento hace que seamos increíblemente resolutivos, a veces la solución que buscamos requiere salirse de toda norma, de toda lógica.

La creatividad nos permite encontrar soluciones nuevas o distintas a las que encontramos lógicas y evidentes, que no tienen por qué ser mejores.

Una de las formas de conseguir escapar del pensamiento lógico para encontrar soluciones distintas a lo típico es el pensamiento lateral.

Escuché hablar sobre el pensamiento lateral hace unos ocho años y desde entonces no he dejado de leer libros del creador del término, Edward de Bono, autor también de la técnica de los seis sombreros para pensar.

En uno de sus libros, nos demuestra que nuestro pensamiento lógico nos lleva a asumir ciertos límites que no existen a la hora de pensar y resolver problemas.

Un ejemplo se ve claramente al intentar unir todos los puntos en el siguiente dibujo realizando sólo cuatro trazas sin levantar el lápiz del papel.

dots1

Si lo intentamos como haría una persona normal, llegaremos a la rápida conclusión de que es imposible hacerlo, pero no lo es.

Si vemos la solución en este enlace, rápidamente nos daremos cuenta de que hemos asumido que había un límite que no era real, el borde que forman los círculos exteriores.

Este es sólo un ejemplo en el que se ve de forma simplificada cómo nuestro cerebro nos hace pensar que no podemos resolver ciertos problemas, cuando en realidad la solución es viable.

Ejercitar el pensamiento lateral no es algo sumamente complicado, hay diferentes técnicas en las que nos planteamos ejercicios en los que debemos dar soluciones a cosas que aparentemente no la tienen, sin asumir límites o dejando de lado a priori las razones por las que no se pueden conseguir.

En otro ejemplo se nos retaba a situar cuatro árboles en tal posición que la distancia de cada uno respecto a los otros fuese la misma. En este caso, se debía jugar con la altura del terreno para conseguirlo, pero no es algo en lo que pensemos de forma directa.

Una vez que la solución se muestra ante nosotros, nuestro pensamiento lógico la comprende y en algunos casos la clasificamos de evidente o nos provoca el quejarnos de la existencia de una trampa en el enunciado del problema, cuando hemos sido nosotros mismos los que hemos puesto el límite en primer lugar.

Ya no vale con crear un producto

Quien haya trabajado conmigo desarrollando servicios para Internet, ya sea proveedor, cliente o socio, sabrá la importancia que le doy a crear comunidad entorno al producto o servicio que se esté desarrollando.

Con comunidad no me refiero a followers en twitter o facebook, sino a personas reales, de carne y hueso, que cuando ven cosas que has hecho o avances, sientan tal afinidad con tu proyecto, que se alegren hasta tal punto que la consecuencia sea difusión, por boca a boca o por redes sociales.

Estoy convencido de que ya no vale con crear un producto, o servicio, y desarrollarlo. Además hay que forjar una cultura, y sobre todo una historia, en torno a la empresa o al proyecto.

Por mi experiencia, creo que esto hay que hacerlo antes de que el producto esté terminado. El problema suele ser el tener la percepción de que estás vendiendo humo, pero si realmente vas en serio y sabes hacerlo ver, tus usuarios van a saber apreciar la autenticidad y conseguirás que tengan el recuerdo de una historia, la historia del comienzo del proyecto, de la que ellos han sido testigos e incluso se han sentido partícipes.

Esto puede verse como tremendamente costoso, cosa que sin duda alguna lo es, ya que requiere una constancia, cuidado de detalles y crear un contexto, una personalidad natural del proyecto, para que todo tenga un sentido.

Lo cierto es que esto no todas las personas o empresas son capaces de hacerlo y no se puede forzar.

Sin duda, las empresas y líderes que entiendan esto van a conseguir estar a años luz de su competencia, incluso cuando esta parezca tener un producto mejor, más barato o esté invirtiendo cantidades abismales en publicidad de buscadores.

A mí me encanta trabajar con personas que tienen ese punto creativo, pero a la vez tienen suficiente experiencia para saber lo que el mercado realmente quiere y priorizar con los pies en el suelo.

Creo que esta va a ser la forma de vender productos tipo aplicaciones móviles, juegos o servicios web B2C.

Me ha inspirado a escribir esta entrada en mi blog, el mimo y cuidado con el que el equipo de desarrollo de Crystal Dinamycs que trabaja en la nueva y renovada saga de Tomb Raider está aplicando lo que comento.

Idea: sistema de recomendación de contactos en Twitter

Desde hace un tiempo he estado dándole vueltas a un sistema de recomendación de contactos en twitter.

Filtrar por listas es efectivo para seguir las actualizaciones de las personas que más me interesa lo que suelen decir, pero de vez en cuando suelo consultar el stream del resto para captar nuevos contactos o enterarme de cosas que no veo en estas listas privadas.

He observado que podría automatizar el flujo de entrada y salida de contactos en las listas que he creado, para ello necesitaría crear un sistema que en base a ciertos patrones me sugiriese qué usuarios debo dejar de seguir en mis listas y cuales debo agregar.

Existen herramientas como http://www.muuter.com/ (gracias César por la recomendación), que permiten silenciar actualizaciones que contengan palabras que no quiero leer. Esto no me termina de convencer, ya que es posible que no me moleste que puntualmente un contacto diga “goool” (no me gusta el fútbol), o que mencione lo bueno que es su trabajo como SEO/socialmedia (bueno quizá en estos casos si que me vería tentado a dejar de seguirle :)

El sistema que propongo se basaría principalmente en lo contrario, es decir sería un sistema de recomendación basado principalmente en listas blancas.

De entrada se me ocurren los siguientes requisitos:

  • Dado que el sistema no me podría dar la información nada más registrarme, debería guardar mis contactos en su base de datos y evaluar sus updates cada cierto tiempo para compararlos a los criterios que he especificado en mis listas blancas y negras. Cada semana me podría sugerir nuevos cambios en mis listas privadas es decir, si debo agregar o quitar a alguien de las mismas.
  • Ya que la aplicación seguiría updates de mis contactos, y de los contactos de los demás usuarios, no estaría mal que me recomendase contactos que no esté siguiendo actualmente.
  • La aplicación analizaría mis propios updates, extrayendo las palabras que más repito usando estas como un criterio para distinguir una posible afinidad con respecto a otros usuarios. Podría tomar dichas palabras como criterios para una lista blanca y las que estén tageadas (es decir con #) en un update con la etiqueta #ironic en una lista negra.
  • La aplicación me permitiría poner una serie de filtros basados en expresiones regulares. Las expresiones regulares, aunque son difíciles para un usuario normal, permiten una mayor precisión de filtrado, que es lo que más me interesa. Gracias a ellas podría filtrar mucho más fácilmente usuarios que les guste el fútbol, hagan retweets sin aportar nada sobre temas que no quiero seguir o al revés, el sexo del contacto en base a las terminaciones sintácticas de ciertas palabras e infinidad de filtros mucho más flexibles que pudiese tener con simples palabras clave o la api del propio twitter. Estos filtros podría aplicarlos tanto en listas blancas como en listas negras.
  • Para dar más precisión a las listas blancas, la aplicación me permitiría especificar palabras clave y otros criterios más típicos en una aplicación de este tipo.

El algoritmo que evalúe qué contactos de twitter deben estar en las listas que sigo o cuales no, deberá calcular estas prioridades según los criterios descritos anteriormente y su recurrencia en los updates de estos usuarios. Es decir, si un usuario tiene muchos updates seguidos con criterios en una lista negra, se irá antes de mi bandeja de entrada que un usuario que tenga los mismos updates pero en intervalos de tiempo más largos y con otros updates de por medio que sí me interesen.

Pienso que podría ser una aplicación muy útil, si tenéis alguna sugerencia u os parece una tontería, dejad comentario.

Domo-kun and devil ducks

Siempre es interesante ver otros puntos de vista y aportaciones :)

Emprende Web Bilbao

Hace algunos meses intenté organizar un evento para desarrolladores php en Bilbao. La idea era juntar a personas que desarrollasen aplicaciones web para compartir experiencias.

El problema fue que el mismo tema del evento limitaba a los asistentes y no atraía al resto de la gente que no desarrollaba en php, pero si desarrollaba en otras tecnologías web.

Emprende Web surge como una posibilidad para el que esté interesado en charlar con emprendedores y profesionales técnicos de la web de tu a tu, mientras se toman unas copas.

En Bilbao es muy difícil encontrar eventos tipo a Iniciador o First Tuesday y también lo es encontrar a profesionales y emprendedores inquietos con ganas de desarrollar y exponer sus ideas al resto.

Javi Jiménez y yo creemos que aunque los primeros eventos empiecen con pocos asistentes merecerán la pena, ya que en este tipo de cosas cada persona que conozcas es toda una experiencia.

De momento el próximo Jueves 24 a las 19:30, os esperamos en el Pub Dubliners. Nos vemos en el Emprende Web ;)

emprendeweb.org

Más información: Primera quedada Emprende Web en Bilbao

Hacer un buen brainstorming

Actualmente para poder diferenciarte a la hora de ofrecer un servicio debes innovar. Ésto en algunos campos como en el desarrollo web es una obligación, especialmente si quieres desarrollar un proyecto personal que resulte interesante.

A la hora de pensar en un nuevo proyecto se debe pensar en características que aporten soluciones que el resto de la competencia no han descubierto aun (tarde o temprano, si la competencia está a la altura -que siempre lo está- y dichas características aportan buenas soluciones, las acabarán tomando en cuenta y desarrollando).

A veces esas características son meros detalles, que hacen sentir al usuario de tu servicio cómodo y productivo, pero que pueden ser cruciales a la hora de tener éxito.

El problema es que no es fácil encontrar “killer features” que conviertan nuestro servicio en algo atractivo para los usuarios.

A menudo la dificultad radica en que siempre buscamos información en las mismas fuentes o lugares, debatimos nuestras ideas siempre con las mismas personas y estamos inmersos en una dinámica de hacer siempre las cosas de la misma forma, adquirida tras años de experiencia y auto aprendizaje. El networking es crucial para conocer nuevos puntos de vista.

También un error muy grave es obligar a nuestro equipo a hacer brainstorming. Ésto es especialmente importante ya que alguien no puede ser nunca igual de creativo si se siente obligado a ello, en lugar de si se siente motivado. En algunas empresas se confunde el término obligar con motivar.

Hay algunas técnicas que pueden dar un excelente resultado, cómo la propuesta por Edward de Bono y sus 6 sombreros para pensar.

Por otro lado, en algunas empresas como Dell, se considera el crowdsourcing como estrategia clave para obtener una fuente de ideas, que posteriormente pueden transformarse en características muy interesantes en sus productos, que el usuario valora y que dichas empresas nunca podrían haber detectado con tanta precisión por ellas mismas.

Alexei Kapterev, director de Real Time Strategy, hizo una genial presentación a modo de guía en la que se dan una serie de magistrales consejos, para lograr hacer un buen Brainstroming de una forma amena y productiva.

[slideshare id=196111&doc=brainstorming-for-fund-and-profit-1197076310239179-4&w=425]