Lo de la IA

En esta época de hype, se ve que no puede haber nada sin Inteligencia Artificial. Está en todas partes y no hay innovación posible si no pasa porque tengas que hablar con un agente automático (el bot de toda la vida, que ahora parece más listo), o si no lleva la etiqueta IA (o AI) como coletilla.

Para no ser yo menos que nadie, a pesar de que en general lo de la IA no me gusta demasiado, voy a entrar en materia, a mi estilo, explicando las cosas de un modo claro y conciso. Creo que es un buen modo de volver a escribir sobre tecnología, entrar en un tema tan omnipresente y a la vez tan desconocido.

A pesar de que en agosto se cumplirán 5 años desde que la médica me dijo aquello de «te tengo que dar la baja, no puedes seguir trabajando así», creo que todos mis años de experiencia desarrollando soluciones de lo más variado me acreditan lo suficiente como para no decir demasiadas tonterías. Tened en cuenta que mucho de lo que viene es una opinión, un modo de ver las cosas, que irá en contra de lo que hayáis leído hasta ahora, puede que por mi simplificación absurda 🙂

Vamos al lío.

¿Qué es?

¿Qué es la Inteligencia Artificial? Menuda preguntita, tiene muy mala leche. Podríamos entrar en que es un tipo nuevo de inteligencia que acerca a las máquinas al conocimiento humano, con todas las implicaciones filosóficas que conlleva. Sin embargo, eso me parece meternos en un auténtico barrizal.

A mí me gusta verlo como que es un «nuevo» paradigma de programación.

Para los ajenos al mundo del desarrollo de software, un paradigma de programación no es más que un modo de hacer programas. Algunos de ellos son:

  • Imperativo: se especifica qué y cómo se tiene que ejecutar un programa paso a paso.
  • Declarativo: se especifica el qué ha de hacer el programa, pero no el cómo.
  • Funcional: el programa se forma por la composición de funciones de manipulación de datos.
  • Dinámico: algunas cosas como los tipos de datos se establecen en el momento de ejecución y no cuando se hace (compila) el programa.
  • Orientado a objetos: se definen tipos de datos complejos que encapsulan la información junto a las funciones que se les puede aplicar.

MovGP0, CC BY-SA 3.0, via Wikimedia Commons

Hay muchos paradigmas de programación y varios se pueden aplicar a la vez, o se puede aplicar distintos paradigmas con una única tecnología. Por ejemplo, en PHP se suele ver mucho script dinámico e imperativo, aunque se pueden crear programas estáticos y orientados a objetos.

Pues bien, la IA no es más que otro paradigma. Específicamente, es uno en el que se le da al sistema un conjunto (masivo) de datos y se le marca un modo de aprendizaje automático, y el sistema aprende por sí mismo a trabajar con los datos para crear un programa que los procese en adelante. A ese programa resultante se le llama modelo*.

* No el 100% de lo de la IA es esto, pero permitidme la reducción para facilitar la explicación.

Al usar términos distintos de los habituales se puede caer en el error de que es algo totalmente distinto, pero no, si lo piensas con detalle verás que definir un conjunto de datos y decidir que se use K-means para catalogarlos, no es muy distinto de declarar una lógica en Prolog, o definir un conjunto de clases y sus interacciones.

Las principales diferencias con los paradigmas más habituales son:

  • Los recursos (tiempo y potencia) que se requieren para la «compilación» (la creación del modelo).
  • En el momento de la declaración (cuando estableces los datos y los algoritmos estadísticos a usar) no se puede predecir el resultado. Ni siquiera usando lógica difusa se puede aventurar la exactitud del modelo, aunque con experiencia se pueda intuir una aproximación.

Ahora, como con todo paradigma, se puede conocer a varios niveles, desde ser un experto a no tener ni idea, pasando por infinitos puntos intermedios. Del mismo modo que puedes conocer lo básico de programación funcional sin saber lo que son las mónadas, o hacer programación dinámica sin siquiera entender lo que hace la reflexión, puedes usar sistemas y librerías de IA para crear modelos (programas) sin conocer, por ejemplo, cómo funcionan las redes neuronales.

¿Es nueva? ¿Por qué este boom?

La Inteligencia Artificial es un campo de estudio que existe desde hace décadas, casi desde el momento de alumbramiento de la informática. La mayoría de técnicas usadas ya existían el siglo pasado. Entonces ¿por qué ahora?

Creo que influyen dos circunstancias muy concretas que se han dado en las últimas décadas y han hecho que surja este auge actual:

  • El boom del Big Data, que también estuvo hasta en la sopa aunque ya nadie se acuerde de él, que hizo que se almacenasen cantidades ingentes de información que luego se intentaban explotar con las técnicas de la época.
  • Los avances en procesamiento paralelo que se dieron principalmente desde el surgimiento de la PlayStation 2, con los chips de tarjetas gráficas que han permitido usar técnicas de programación concurrente (otro paradigma) para procesar el Big Data en un tiempo computacional aceptable.

Parafraseando a aquella: «mezclando ácido clorhídrico con sulfato de sodio, ha hecho una reacción que flipas».

¿Es inteligente?

Deberíamos, primero, filosofar sobre qué es la inteligencia y qué tipos hay, pero muy a grosso modo podemos concretar en: NO.

Hablando de Inteligencia Artificial es seguro que todos tenemos en mente ChatGPT que es un LLM (modelo «largo» de lenguaje). Parece muy inteligente, pero en EGB un profesor (hablando con él de un niño que memorizaba la enciclopedia) me dijo que la memoria es muy diferente de la inteligencia entendida como la capacidad de razonar y resolver problemas.

ChatGPT recuerda muchas cosas, en concreto recuerda especialmente bien la cercanía estadística entre unas palabras y otras. También puede simular cierto razonamiento, haciendo deducciones básicas a partir de datos, pero le falta mucho para que podamos llamarlo inteligente en cuanto a un caso general.

Por ejemplo, las IAs generativas actuales que crean respuestas de texto, música o imágenes, no pueden actualizar sus modelos insertando en ellos nuevos casos aprendidos mientras se usan (aunque sí que se aprovechan esos datos para entrenamientos de futuras versiones del modelo). Esto es, no pueden aprender sobre la marcha (por ahora).

IA General

Lo que entendemos por inteligencia (inteligencia cognitiva al nivel de un humano), es lo que en el campo se conoce como Inteligencia Artificial General.

Es SkyNet en Terminator, la «voz del pinganillo» de Her, o el científico de Trascendence. Esa que Hollywood nos ha mostrado innumerables veces, que es capaz de realizar razonamientos lógicos y dado su acceso a todo el conocimiento humano puede convertirse en una super inteligencia que lo arregle todo.

Como el resto de la gente, no puedo ver el futuro, pero ahora mismo esa IAG no existe y estamos lejos de conseguirla.

De hecho, hace poco Apple sacó un controvertido paper (The illusion of thinking) en el que explicaba que lo que hay ahora no es más que una «burda» imitación de pensamiento. ¡No se podía saber!

Aunque es muy probable que en este caso la opinión de Apple tenga un gran sesgo por estar quedándose muy atrás en el campo de la IA y de los agentes (LLMs) con su otrora popular Siri y sus experimentos no demuestren nada, eso no hace falsa a la conclusión: los sistemas de inteligencia artificial actuales no piensan como lo haríamos los humanos.

¿Acabará con los trabajos?

¡Ojalá! Un sistema capitalista como es el mundo actual, requiere necesariamente que la gente tenga ingresos para poder ser consumidores. Si se acaba con los trabajos, el sistema debería reformularse para que la gente siga teniendo ingresos, o bien abandonar el capitalismo de manera inmediata. ¡Doble win!

Desde el momento en el que el luteranismo calvinista instauró ese «amor» por el trabajo, por el progreso (económico) y prosperar, el sistema se ha alimentado de la mano de obra que era a la vez productora y consumidora. No me pondré muy anarquista con esto, pero el «trabajo» remunerado es un pilar del capitalismo y no se puede acabar con uno sin hacerlo con el otro.

Sí que es cierto que introducirán modificaciones. Del mismo modo que la máquina de vapor cambió, por ejemplo, cómo se producían tejidos en las fábricas inglesas, la Inteligencia Artificial y los agentes conversacionales están cambiando algunos procesos que se irán depurando con el tiempo y afectará significativamente a algunas profesiones.

Sin embargo, toda introducción de una nueva tecnología ha traído cambios de este tipo y ha hecho que los profesionales se especialicen o se conviertan en artesanos, dando un nuevo valor a la producción. Volviendo al ejemplo inglés, tras la revolución industrial hubo (además de hambre y miseria) quienes se especializaron en controlar y arreglar las máquinas, y quienes siguieron haciendo las telas de un modo tradicional dándoles un extra de valor por la exclusividad.

Uno de los campos que más rápido está adoptando estas tecnologías es la programación de software, pero esto dudo que vaya a tener más implicaciones que el dejar de ver valor en el número de líneas de código, centrándose en lo importante: entender el problema y determinar la mejor solución. Esto dejaría la profesión de programador relegada a ser operadores y supervisores de estos nuevos sistemas de generación de código (especialización) o a seguir haciendo las cosas como «antiguamente» de un modo artesano que tendrá más valor simplemente por la componente «artística».

Ahora que lo dices ¿Y el arte?

Bien, hemos dado con una piedra bien gorda. Es una de las críticas más grandes que hay de las IAs generativas (además del gran consumo de recursos).

¿Se puede considerar arte algo hecho por una Inteligencia Artificial? ¿No deja de tener alma? ¿Para que queremos que las IAs hagan arte en lugar de recoger la basura?

A estas alturas de la batalla, todos hemos escuchado argumentos en una línea y su contraria. Desde que las técnicas que se usan para crear imágenes son las mismas que se usan para predecir la forma de plegar proteínas, hasta que es un robo y un plagio a los artistas.

Sin entrar en gustos, el arte generativo existe hace mucho tiempo. Es una modalidad artística en el que el artista crea máquinas o algoritmos que a partir de datos pseudoaleatorios producen piezas de arte. Por ejemplo, ahora mismo en el Centro Botín (un museo de Santander) se puede ver una exposición en la que el artista ha generado unas pistas de audio a partir del análisis de datos de la bahía de Santander como la altura de las mareas o la velocidad del viento, el artista ha hecho un algoritmo que es el que genera como resultado la obra final.

Si se considera el arte generativo como arte, hay que permitir llamar arte a las obras creadas por la IA. En este caso, los programadores de la IA serían los artistas y el operador no sería mucho más que un generador de datos pseudoaleatorios.

¿Y los datos? ¿Me van a robar? ¿Me han robado ya?

Como ya hemos dicho, para programar uno de estos sistemas de Inteligencia Artificial, uno de los elementos necesarios son datos. Muchos.

Aquí hay mucho debate por la fuente de esos datos. Por ejemplo, en el uso de descargas ilegales por parte de Meta (Facebook), o la venta de datos tan personales como puede ser el ADN.

Los temas legales suelen ser complejos y más en estos campos en los que hay que observar legislaciones de diversos países y continentes. Simplificando mucho, en España (Europa) hay dos puntos clave a tener en cuenta:

  • Datos de caracter personal. Son aquellos que permiten identificar a una persona como nombre, teléfono o dirección. Si se almacenan estos datos ha de ser por el menor tiempo necesario, haber informado claramente de que se van a recopilar y cómo se van a procesar. En principio, dado el funcionamiento de la IA, no deberían ser parte del entrenamiento porque luego no se podrían sacar del modelo generado si el usuario lo solicita.
  • Copyright. Aquí, la autoría no se puede transferir de ningún modo, sólo se pueden ceder derechos para el uso que sea hasta 70 años después de la muerte del autor, momento en el que pasa a dominio público. Por tanto, si yo compongo una canción tendría que ceder sus derechos para que una empresa de IA pueda usarla para entrenar sus modelos generativos.

Esto es lo que dice la teoría y la teoría está estupenda pero sabemos todos que la realidad es otra. Las multas que se imponen a las empresas que hacen mal uso de la información suelen ser irrisorias y los términos de uso que aceptamos para poder usar servicios en Internet acostumbran a ser tremendamente abusivos ya que no te dan opción y sólo puedes decidir entre tener el servicio o no tenerlo.

Además nos preocupamos mucho de datos tan comunes (y públicos) como el número de DNI mientras aireamos alegremente nuestras relaciones sentimentales o que estamos de vacaciones (y nuestra casa vacía), que son cosas mucho más íntimas.

Por tanto, no puedo hacer más que dar el mismo consejo que me dió Paula en su día: si no estás dispuesto a que lo sepa tu abuela, no lo pongas en Internet porque en cualquier momento puede quedar expuesto.

Si creas una obra del tipo que sea y no quieres que se use para entrenamientos, puedes poner unos términos de uso y no ceder el copyright, pero si realmente no quieres que se use lo único que está en tu mano hacer es no subirlo a Internet.

¿Cómo funciona todo esto?

No es porque lleve varias horas escribiendo, ni porque crea que no voy a saber explicarlo de un modo comprensible, pero me vais a permitir que de una explicación muy somera de cómo se hace lo de la IA. Si tenéis interés y os gusta como explico, siempre me lo podéis decir en un comentario y entramos en otros posts en materia de cómo se enseña a las IA.

Lo primero es obtener una fuente de datos y prepararla para su procesamiento. Estos datos se separan en dos paquetes, uno de entrenamiento (por ej. con el 80% de ellos) y el resto para comprobar el modelo resultante.

Con estos datos, se determina que tipo de algoritmo estadístico sirve mejor para el trabajo que queremos que haga el modelo y se entrena el modelo con ellos de tal manera que el sistema aprende por comparación.

Una vez que el modelo ha sido entrenado, se testea con el resto de datos. En caso de que el porcentaje de acierto sea suficientemente alto (un 90% por ej.), se da el modelo por bueno. Si no es así, hay que volver atrás y enfocarlo de otro modo.

En este proceso influyen muchas cosas, desde cómo se selecciona qué datos serán para entrenamiento y cuales para test, hasta cómo determinar si un resultado es satisfactorio, pero la base es esta.


Visto todo esto, la única conclusión que me gustaría dejar es que lo de la IA ni es tan nuevo, ni es tan bueno, ni es tan complejo.

Y como decía la entradilla de mi primer libro de Inteligencia Artificial:

Todo conocer depende de la estructura que conoce.

Historias para CTOs y responsables de tecnología

Es duro y arduo el camino de los responsables de tecnología, ponga en su LinkedIn CTO o no.

CTO son sólo unas siglas sin importancia y lo que importa en realidad son las responsabilidades asociadas a ellas. La gente que acaba asumiéndolas suele tener un arranque poco planificado, al fin y al cabo no existe la carrera de CTO. Muchas veces se trata de una persona que se dedicaba a algún área de tecnología y que por circunstancias se ve obligada a tomar decisiones en cuanto a qué y cómo, crecer y gestionar equipos, estar al día, anticipar el futuro… A algunas les gusta y lo buscan, a otras no y se adaptan o lo sufren.

responsable de tecnología

Como siempre dice tía Azu: «cortando cojonitos, se aprende a capar». Es cierto que a base de tortas todos podemos llegar a aprender y cuanto más tiempo lleves en esto más aprendes, sin embargo, apoyándote en las historias y aprendizajes de otros puedes hacer que ese camino sea un poco menos solitario, un poco menos duro, darte menos contra paredes que no se van a mover.

Siempre puedes tomar un té o una caña con un colega (si no tienes un colega a mano te lo puedes tomar conmigo :P) para compartir opiniones y aprender de experiencias ajenas, pero vamos a ver algunos recursos que tenemos a mano en Internet para aprender de otros que ya han pasado por un camino similar:

De personas concretas
  • Empezamos por el blog de una mujer que no sólo ha aprendido mucho en su camino, si no que sabe explicarlo y compartirlo . Se trata de Camille Fournier que además escribió un libro buenísimo que puede servir de guía a quien tenga que hacer esa transición de técnico a manager: The Manager’s Path.
  • Hablando de libros, no puedo dejar pasar la oportunidad de recomendar The Phoenix Project que cuenta la historia ficticia de un tío al que de buenas a primeras le encaroman muchas responsabilidades y de cómo lidia con este hecho. Se centra mucho en DevOps pero aunque sea sólo por lo entretenido que es, te lo tienes que leer.
  • Los blogs de los fundadores de Stack Overflow no tienen ningún despedicio. Tanto Jeff como Joel escriben artículos de temas variados e interesantes que le vendrán genial a todos los responsables de tecnología.
  • Están los artículos de Paul Graham, uno de los fundadores de Y Combinator, que ha visto pasar por delante de él un montón de empresas tecnológicas y suele plantear temas que dan que pensar.
  • Otro Graham pero Graham-Cumming, tiene una seríe de artículos en los que explica como fue el camino desde entrar como programador en Cloudflare y acabar siendo CTO con todo lo que conlleva.
  • La sección Management 101 de James Stanier cubre de una manera muy concreta distintas situaciones a las que se enfrenta quien tiene que tomar decisiones en ingeniería (el resto de los artículos también están muy bien).
De personas random
  • Aunque no soy muy fan, hay algunos sitios con entrevistas escritas o en formato pocast que hay que reconocer que son muy interesantes, por ejemplo Modern CTO o Developer to manager.
  • Por último, pero no por ello menos útil, buscando un poco puedes encontrar ciertos checklists que te ayudarán al acometer tareas en las que no seas experto pero de las que serás responsable como son el cumplimiento de la GDPR o la seguridad general de los sistemas de la empresa.

Estos son algunos recursos, pero a sabiendas de que hay muchos más, me encatará saber cuales recomendaríais vosotros. No os pediré que los dejéis en los comentarios que ya nadie escribe, pero siempre me podéis escribir a través de la web, en Twitter, LinkedIn o por donde sea.

PD: Para suplir un poco esta soledad, hemos creado un grupo sin más pretensiones que hacer una quedada al mes para charlar, pedir consejo, contarnos cosas… llamado CTOs Anónimos Valencia («responsables de tecnología anónimos de Valencia» no quedaba tan cool). Mañana será la primerísima quedada, así que ¡no dudeis y apuntaros!

Proyecto tipo: CTO/CIO as a Service

PROBLEMA

El cliente es una empresa tecnológica en la que no hay un CTO, o hay un CTO al que le falta experiencia en cuanto a la toma de decisiones estratégicas en lo referente al apartado tecnológico.

La empresa ha realizado un proceso de evaluación (o ha sufrido algún problema recientemente) y ha determinado que tiene una gran carencia en el área tecnológica, y que esta es una pieza clave para el futuro de su empresa.

El personal del área técnica suele invertir su tiempo en cosas urgentes pero no importantes: «están siempre apagando fuegos». No se dedica tiempo a las cosas que tienen importancia a medio/largo plazo.

Normalmente no se han automatizado procesos, ni se han estandarizado procedimientos. No hay metodologías organizativas implantadas, ni ágiles ni no-agiles.

Por norma, se hace todo a nivel interno sin hacer uso de proveedores para nada, o se hace todo de modo externo sin tener nada de tecnología dentro de la empresa.

Cuando hay un CTO, suele tener el conocimiento de toda la tecnología que usa la empresa, pero no acostumbra a tener una comunicación fluída con el resto de la empresa. Acostumbra a ser un buen desarrollador, siendo un perfil alto de la tecnología que maneja, pero evita el uso de otras tecnologías y muchas veces de la reutilización de código de otros.

El cliete no tiene capacidad, volumen o ambos para contratar el perfil que precisa y cubrir todas las necesidades que ha detectado.

Propuesta

Se ejercerán funciones como CTO, analizando la situación de la empresa, marcando líneas estratégicas, ayudando en el crecimiento del equipo técnico y la selección de proveedores, automatizando procesos y definiendo procedimientos.

Se harán análisis de requisitos, definición de arquitecturas, desarrollo de software si fuese necesario, validación, despliegue…

En los casos que hay un CTO no se le suplanta, se le asesora y acompaña en la toma de decisiones para que pueda crecer y ejercer las funciones que le habían sido asignadas.

Si es necesario se mediará con clientes, inversores, o cualquier persona de interés que requiera un contacto técnico.

Se establecerá un número de horas a la semana en función de las necesidades e intereses del cliente.

Precio

Nº horas/mes Precio mensual Resto horas
4 295,50€ 73,88€
8 579,50€ 72,38€
12 850,50€ 70,88€
16 1.110,00€ 69,38€
20 1.375,50€ 67,88€
24 1.593,00€ 66,38€
28 1.816,50€ 64,88€
32 2.028,00€ 63,38€
36 2.227,50€ 61,88€
40 2.415,00€ 60,38€
Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

Actualmente, con los cambios que ha habido en cuanto a las posibilidades existentes, la propuesta podría ser diferente en estos momentos.

Se han omitido nombres de empresas y productos.

Por favor, si tuviese necesidad de algo similar, no dude en ponerse en contacto.

Tecnología útil que incluya a todos

A veces, cuando nos paramos a ver el mundo, nos damos cuenta de que hay problemas que hoy en día son fáciles de resolver pero que paradógicamente siguen sin estar resueltos. Normalmente, la raiz de que esto sea así es que nadie con los conocimientos adecuados se ha enfrentado al problema. La tecnología es útil cuando resuelve problemas, pero para resolver problemas hay que saber que existen.

Top4ELA

Hace un par de semanas fui invitado por la Fundación Luzón a una especie de hackathon. En él se pretendía conseguir soluciones tecnológicas a los problemas que tienen en su día a día un colectivo con muchas dificultades. Ellos se encargaron de poner a gente con conocimientos de tecnologías dispares enfrente de los problemas que rodean a la ELA (Esclerosis Lateral Amiotrófica).

El evento fue organizado conjuntamente con Samsung España, quienes pusieron todo de su parte para que estuviésemos cómodos y centrados en el trabajo que teníamos por delante. Además nos prestaron sus últimos juguetes para que pudiésemos validar todo lo que planteásemos . Fueron de mucha utilidad todos, desde las cámaras 360, hasta su nuevo asistente virtual Bixby o sus teles con el nuevo sistema operativo Tizen.

La fundación trabaja para que la vida de los pacientes de ELA pueda ser mejor mientras se encuentra el origen de la enfermedad y esperemos que una cura.

La ELA es una enfermedad muy dura porque va destruyendo la capacidad motora de los pacientes mientras su cabeza sigue funcionando a la perfección. ¿Alguna vez habéis tenido la sensación de que vuestro cuerpo se ha dormido pero vuestro cerebro no? ¿De que os enteráis de todo lo que pasa a vuestro alrededor pero no tenéis modo de reaccionar? Imaginad que fuese así constantemente.

En las fases avanzadas de la enfermedad, los pacientes sólo pueden mover los ojos. Nada más.

La realidad de la ELA

Así, lo primero de lo que se encargó la fundación fue de ponernos en contacto con la realidad de la enfermedad. Pero esta no es sólo la de los pacientes, es también la de sus médicos, sus familias o sus cuidadores. Ejemplos de esto fueron Carlos Espada (Socio de Everis y enfermo de ELA a quien podéis ver en una charla a continuación), María Bestue (neuróloga que trabaja con pacientes de ELA), los hijos y la mujer de Francisco Luzón (el fundador de la fundación) o Angélica y Alexandra (dos de las cuidadoras de Carlos).

Los problemas de la ELA

La siguiente parte del trabajo, que gracias a la coordinación de Mario fue muy efectiva, se centro en identificar los problemas de cualquiera de estos actores que creyesemos que podríamos solucionar de un modo sencillo.

Uno de los problemas más graves de esta enfermedad es que convierte a los pacientes en grandes dependientes que necesitan hacer una inversión muy grande para vivir. Además, en la mayoría de los casos, estos dejan de poder realizar los trabajos que realizaban antes. Este es un problema muy grande debido a que dificulta el acceso a soluciones que podrían mitigar otros problemas más «pequeños». Siempre he creído que las necesidades de todos deben de cubrirse desde las administraciones públicas, aunque mientras esto se consigue es de agradecer el trabajo de fundaciones como esta.

En algunos sitios se está intentando resolver ese gran problema, como en Japón dónde han creado un bar en el que los camareros son robots controlados por gente que sufre algún tipo de parálisis.

En nuestro caso nos quedamos con 4 problemas que creíamos que podrían tener alguna solución en el corto plazo:

  1. El desconocimiento que hay de la enfermedad.
  2. La perdida de identidad de los pacientes.
  3. La dificultad de comunicación de los pacientes (haciendo sólo uso de sus ojos).
  4. La fragmentación de los datos clínicos de los pacientes.
Soluciones

Cada uno de estos problemas, y sus posibles soluciones dan para largo y tendido.

Yo trabajé en el cuarto de estos, de la mano de dos cracks de los datos que ya han hecho público su resumen y análisis: Ana y Josep; y con María Bestue que nos ayudó tremendamente a entender las implicaciones de este problema básico.

En mi caso, voy a dejar para más adelante la creación de un «proyecto tipo» con un análisis más completo del problema y la solución que planteamos, que no sólamente afecta a los pacientes de ELA sino que a cualquiera nos podría resultar de utilidad en un momento dado, como cuando me estuve pegando con Sanitas por conseguir todos mis datos.

Para acabar, como punto y seguido, os dejo con un vídeo de César de La Hora Maker, que creo que resume muy bien el fin de semana además de lograr otros objetivos.

Tech roundup 1: a journal published by a bot

Read a tech roundup with this week’s news that our powerful bot has chosen: blockchain, AI, development, corporates and more.

Gooooooood morning, Y’all!!! Hey, this is not a test, this is a tech roundup. Time to rock it from the Delta to the DMZ.

AI, bots and robots

Blockchain and decentralization

Woman computer scientist of the week
Carolina Cruz-Neira is a Spanish-Venezuelan-American computer engineer, researcher, designer, educator, and a pioneer of virtual reality (VR) research and technology. She is known for inventing the CAVE automatic virtual environment. She previously worked at Iowa State University (ISU), University of Louisiana at Lafayette and is currently the director of the Emerging Analytics Center at the University of Arkansas at Little Rock.

Cloud and architecture

Development and languages

Quote of the week

The best code is no code at all.

Enterprises

Other news

Suscríbete al blog por correo electrónico

Introduce tu correo electrónico para suscribirte a este blog y recibir avisos de nuevas entradas.

Cómo crear un equipo tecnológico desde cero

No, no hablamos de montar un PC. Montar un equipo técnico tiene muchas complicaciones, muchos pequeños logros que conseguir para que todo funcione como los engranajes de un reloj suizo. Lo he tenido que hacer en diferentes ocasiones, la última en eldiario.es en donde monté un equipo para desempeñar tareas de desarrollo, data scientist y UX research de un proyecto avalado por Google. Aquí tenéis los pasos que creo que hay que dar:

  1. Definir claramente para qué se quiere montar el equipo. Si es para un proyecto concreto que empieza y acaba, si es para mantener algo que ya existe, si es para hacer I+D, … cada cosa requiere unas aptitudes y actitudes distintas. No puedes poner a alguien superinnovador a realizar mantenimiento de un software, ni a alguien que sea muy poco flexible a hacer I+D pululando por proyectos y tecnologías.
  2. Buscar un match entre requisitos/necesidades, dinero y tiempo. Cuanto menos tiempo, gente más senior necesitas, que también cobrarán más. Si tienes poco de ambos, tendrás que reducir los requisitos al mínimo aceptable, para que encajen todas las piezas.
  3. Hacer prospección del mercado de empleo para ver que tipos de perfiles puedes conseguir que sean lo mejor posible para llevar a cabo los requisitos dentro de tu presupuesto. Puedes, por ejemplo, buscar en Infojobs ofertas similares a ver que ofrecen, aunque desgraciadamente la gente no detalla demasiado las condiciones en las ofertas. Otra opción es buscar algunas personas que te puedan encajar en LinkedIn y preguntarles si podrían tener interés y cuales son sus condiciones actuales.
  4. Elegir el stack tecnológico. En realidad esta es una tarea que irá realizándose paralelamente a los puntos 1, 2 y 3, puesto que irán surgiendo detalles que marquen el stack a emplear. El proyecto es el que debería de marcar la tecnología (ya quedamos que «nos la suda» la tecnología ¿no?), ya sea porque hay una que reduce el tiempo sustancialmente, u otra en la que los desarrolladores son más baratos y encajan mejor en el presupuesto. Cualquiera que sean las motivaciones serán buenas, siempre que estas no sean usar el mismo martillo de toda la vida porque es lo único que conoces. Eso es sólo un buen motivo cuando se tiene un empate técnico, o cuando hay un gran riesgo de que el equipo se desmiembre y que tengas que hacer, a parte de tus tareas de gestión, las tareas de desarrollo para garantizar que todo tira para delante.
  5. Iterar. Hay que iterar entre los pasos previos tantas veces como sea necesario hasta que se tenga un match perfecto. En el que sepas que vas a poder cubrir todas los requisitos con el mejor equipo que te puedes permitir en el tiempo que tengas. Tienes que identificar qué perfiles necesitas, qué condiciones podrás darles, qué cosas son importantes y qué cosas no lo son realmente.
  6. Caza. Es el momento de buscar a los mejores candidatos, tal vez ya tengas alguno de cuando hiciste la prospección, pero necesitas más ¡no hay proceso de selección si sólo hay un candidato! Si tienes tiempo, puedes dejar una oferta en Infojobs o LinkedIn, en plan trampero y sentarte a esperar. Yo nunca lo he tenido, y confío más en las tácticas más activas, aunque las otras puedan ser un gran apoyo.
    • Si pones una oferta, tomate el tiempo de poner alguna preguntilla para cribar y que no entre todo. Tampoco te pases de difícil, la mayoría de la gente no se tomará tiempo de hacer algo que le lleve trabajo o pensar más de 30 segundos. Si no pones alguna pregunta para cribar, te entrarán 200 o 300 curriculums en las dos primeras horas y te servirá de muy poco.
    • Si pones una oferta en algún portal de empleo, úsala. Puedes usarla como campo base, redirigir ahí todo el tráfico, aprovechar las herramientas que te proporciona para filtrar y realizar la selección de un modo más sencillo. No tiene ningún sentido que pongas una oferta en un Infojobs, y en otro sitio pongas un correo para que manden el CV, y en otro digas que te manden un mensaje directo. Te has gastado las perras en ese portal, aprovéchalo.
    • Si no pones una oferta, publica un post, un pdf o lo que quieras, pero ten un sitio al que mandar a la gente donde esté toda la información. Habla del trabajo que se va a realizar, de los requisitos que sean indispensables y separalos muy bien de las cosas que serían un extra. Habla de las condiciones, de todas, que no todo el mundo se mueve por dinero. Del proyecto. Yo soy partidario de poner el salario que se pretende pagar, aunque si la política de la empresa no te deja, pon al menos un rango si eso sí te lo permiten.
    • Sal a buscar candidatos, LinkedIn es un sitio dónde se pueden encontrar muchos tipos de perfiles, aunque tal vez busques algo tan específico que te tengas que ir a algún otro lado, ¿tal vez un grupo de meetup? Averigua a que eventos acuden los candidatos del tipo que quieres y ve tu también.
  7. Lee a todos y contesta a todos. La gente se ha molestado en enviarte el curriculum, creo que es ético que te tomes la molestia de leer sus cartas de presentación y leer sus curriculums y contestarles para que sepan que lo has recibido. Sí, aunque te vaya a suponer salir un par de días a las 12 de la noche. Aunque no te aporte a tu negocio, sí. Es ético y educado, seguro que tú también has mandado curriculums y te ha gustado que mostraran un mínimo interés.
  8. Entrevista telefónica. Es muy complicado quedar con mucha gente, pero hacer una llamada de 15-30 minutos es más fácil. Prepárate una lista de cosas que quieres saber antes de colgar. A ser posible ten alguna pregunta técnica preparada, no tiene porque ser complicada, pero algo con lo que puedas validar que tu interlocutor sabe de lo que habla. ¿Que tú no sabes? No hay problema, pídele a alguien que conozcas que te explique algún tema básico de ese área, o léelo, la Wikipedia está ahí para todos gracias a las donaciones que pide Jimmy Wales. No necesitas ser un master (para eso vas a contratar a uno), sólo seguir la conversación, y créeme, cuando hables sobre un tema con 20, 30 o 40 personas distintas, sabrás suficiente para saber quien controla y quien no. Es importante que estés atento para distinguir a quien no sabe de quien tiene problemas de comunicación (pasa mucho en el mundo técnico), ya que te puede hacer perder un gran candidato. También es el momento para plantear las condiciones económicas si no te han dejado publicarlas en la oferta, no tiene sentido continuar si las condiciones no cuadran por ambos lados y suele ser uno de los principales motivos de bloqueo.
  9. Entrevista presencial. No hay que volverse loco, no hay que hacer entrevistas a todos los candidatos. Tienes que entrevistar al que más te ha gustado para cada puesto, también deberías de entrevistar a otro que tenga un perfil muy similar y otro que tenga un perfil totalmente distinto a los dos anteriores. Sí, los dos últimos sirven como elementos de control del primero y reservas por si el primero se cae, para asegurarte que no te equivocas. Puede parecer poco ético, pero la verdad es que en varias ocasiones me he dado cuenta en la entrevista que uno de los de control encaja mejor que el candidato estrella. Tienen posibilidades, menos, pero las tienen. Intenta que la entrevista no dure más de dos horas, que eso ya se puede considerar tortura. Intenta que esté disponible todo el mundo que vaya a tener que dar el «ok», para intentar que el candidato no tenga que ir repetidas veces, aunque no sea durante toda la entrevista y sólo entren 5 minutos a «saludar». Ofrécele agua, se puntual, intenta que esté a gusto. Tienes que tratarlo como si de un cliente se tratase, en cierto modo lo es, y en este momento le estás vendiendo la empresa y el proyecto y tú quieres que te lo compre.
  10. Cierra e informa. Si todo ha ido bien, a estas alturas tendrás el «sí» de todos los candidatos que necesitabas y es hora de que la gente de administración prepare los contratos, pero tú no has acabado. Informa a todo el mundo de que el proceso se ha acabado, no dejes a todos los candidatos esperando y expectantes. Sé que puede parecer que no aporta valor a tu negocio (como en el punto 7) y que vas a perder mucho tiempo, pero la comunicación clara y sincera es muy importante y lo agradecerás cuando tengas que hacer otro proceso de selección en el futuro o cuando uno de los candidatos se te caiga después de haber dicho que sí y tengas que recuperar a los otros.

Sé que es muy fácil poner estos puntos aquí pero luego es más complicado seguirlos, sobre todo si tienes otras tareas que ir desempeñando durante el periodo en el que tengas en marcha el proceso de selección, pero hay que tener claro que es una parte muy importante y que ha de ser prioritario ya que una mala selección puede cargarse el más simple de los proyectos.

Busco nuevos proyectos

Así es, la temporada en eldiario.es llega a su fin, y toca buscar nuevos retos atrayentes y echar una mano en otro lado.

Con un perfil como el mío es fácil pero a la vez difícil. Desde que empecé con mis empresas tengo un pie (muy adentro) en lo técnico y otro (también hasta la rodilla) en el negocio. El otro día lo comentaba con un amiguete: ahora soy lead developer, antes he sido arquitecto de Azure para Produban (Grupo Santander), antes analista en SofCloudIT (Ingram Micro), antes… ¿cómo me puedo definir con una sola etiqueta?

Al final en todos los sitios me he encargado o he ayudado a contratar equipos técnicos, he gestionado proyectos internacionales, mantenido a los equipos focalizados en lo que tocaba hacer en cada momento, he estado pendiente de las innovaciones del entorno para ver como las podíamos aprovechar para hacer nuestro trabajo mejor, he estudiado los requisitos técnicos y de negocio, he diseñado arquitecturas, he buscado clientes, hecho presupuestos… y además siempre hablando de tecnologías variopintas.

Donde creo que más puedo aportar es donde se necesite un nexo de unión entre la tecnología y el negocio dado lo heterogéneo de mi perfil. Aunque ame la tecnología, esta, pierde importancia si no se tienen en cuenta las variables de negocio (tiempos, presupuesto, objetivos, …). Debe ser una herramienta y no un fin. Creo que no hay tanta gente que pueda hablar con un matemático que ejerza de data scientist, con un frontend que habla en javascript dialecto framework X, con un cliente que quiera comprar valor, un inversor que quiera ganar dinero o un CEO que quiera crecer, crecer y crecer.

Lo primero en que me fijo de una nueva posición es en que sea interesante, que el proyecto sea un reto y sobre todo que (aunque no sea conmigo) vaya a tener un futuro y una continuidad. Me gustan las cosas distribuidas, sobre todo los entornos cloud, me gusta pensar en como hacerlas fáciles. Se me da bien encontrar la gente adecuada para cada tarea, así como lidiar con los problemas y mantener a la vez en marcha un montón de cosas, y eso que aprobé raspado malabares en el instituto. Sé delegar (aprendí a la fuerza) y asumo responsabilidades sin estresarme, ya sea porque me las asignen o porque hace falta cuando nadie más toma las riendas. Todo el mundo se alegra de tenerme cerca en los momentos de crisis, por algo será.

Obviamente las condiciones me tienen que encajar, pero en general estudio todas las propuestas y aunque ahora estoy en el centro de Madrid todo es planteable, y no me importaría volver a la Tierruca o a la Terreta, o a cualquier otro lado siempre que sea un sitio agradable.

Con este panorama es complicado preparar un curriculum vitae, porque en general creo que si le paso a alguien mi perfil completo con todas las cosas que he hecho, se puede perder antes de llegar a lo que le interese. Por eso, por el momento he preparado dos, uno para puestos de CTO y otro para los de Team líder que son los que me están planteando ahora, porque por el momento no se me ha ocurrido una forma sencilla y versátil de plasmar toda esa información. ¿Se os ocurre a vosotros algún modo?


EDITO: Gracias a vuestros consejos, he conseguido resumir todo a un «one pager» (de momento sólo en inglés). No es especialmente bonito y por supuesto no tiene el detalle de la información que se puede ver en el perfil completo de Linkedin, pero es un avance. ¡Gracias!


Quiero elegir bien, porque me gustaría encontrar el sitio dónde más pueda aportar y como sé que con sólo dos ojos y dos oídos no se puede controlar todo, os lanzo este anuncio-petición: amiguetes que pasáis por aquí de vez en cuando ¿qué proyectos interesantes conocéis? ¿Dónde creéis que me pueden necesitar? ¿Dónde creéis que podría aportar valor?