Proyecto tipo: Recomendador para app de relatos

PROBLEMA

El cliente solicita la elaboración de dos apartados:

  1. Sistema recomendador basado en Machine Learning
  2. Sistema de detección de tendencias

En la entrevista con el cliente se llega a la conclusión de que lo que en el fondo quiere es aumentar el tiempo de uso de la app y la recurrencia de uso: la retención.

Además, necesita comenzar a almacenar datos para posteriormente explotarlos.

Actualmente el volumen de relatos es de aproximadamente 300 y se espera un crecimiento de aproximadamente uno al día.

PROPUESTA

Para el primer problema (el recomendador) empezaría por implementar algunas estrategias que no requieren servicios externos, para así comenzar a tener datos y ver cuales de ellas son las que mejor funcionan. Por ejemplo:

  • Al acabar una historia proponer de 1 a 3 recomendaciones: una random, otra random de la misma categoría, otra random de el mismo autor.
  • Si se incluyesen tags para afinar la categorización de las historias, incluiría una cuarta recomendación en el punto anterior.
  • Cuando se abandona una historia preguntaría si se quiere guardar el progreso (y así saber si hay interés en ella).
  • Gestionar el progreso que se lleva en cada historia.
  • A las 6h, 12h, 24h, 48h del último uso lanzaría una notificación con texto del último párrafo leído de la última historia si se dejó a medias, o el primero de una recomendación del tipo que mejor esté funcionando para ese usuario (por categoría, autor, random, o tags si se implementan).
  • Incluir fotos de los personajes y una vista de su perfil.

Todo esto se puede gestionar con facilidad desde la propia aplicación, y entendiendo que la empresa dispone de desarrolladores para esa parte, por el momento no se presupuestará.

Para la captación de datos para su explotación, los principales actores son 3:

  1. Google Analytics. El problema que tiene es que en el momento que se quieren exportar datos se necesita la versión premium que tiene un coste de $150.000 USD al año.
  2. Mixpanel. Una solución de análisis que dispone de APIs para integrarla con cualquier sistema y poder exportar los datos. Su precio es de $999 USD al año. Es una buena solución siempre que no se vuelva poco flexible, ya que a la larga te tienes que amoldar a sus posibilidades.
  3. Una solución a medida que permita guardar cuantos datos se desee en el formato que se prefiera, para que posteriormente se les puedan dar distintos tratamientos para obtener distintas informaciones ya sean en modo de servicio para proveer de nuevas funcionalidades a la aplicación, informes, datos tratados para su venta. Es una buena solución en cuanto a relación flexibilidad y coste.

Dado que las dos primeras opciones sólo requieren realizar modificaciones en la aplicación, se presupuestará sólo la tercera.

A partir de tener los datos almacenados mediante cualquiera de los sistemas, posteriormente se podrán tratar para cubrir cualesquiera necesidades surjan:

  • Obtener perfil de uso y progreso de un usuario.
  • Obtener recomendaciones a medida de un usuario.
  • Creación de informes.
  • Búsqueda de patrones de comportamiento.
  • Envío de notificaciones personalizadas.
  • Etc.

CONCEPTO

Elaboración de un servicio que reciba datos para identificación del dispositivo/usuario y una colección de eventos (1..N) para almacenar todas las acciones que haya realizado el usuario. El paso de datos se hará en formato JSON de tal modo que la definición de la estructura pueda ir variando con el tiempo sin necesidad de modificar el servicio.

El hecho de permitir mandar varios eventos, permitirá que no se pierda información cuando la aplicación se use offline. Además permitirá no estar realizando comunicaciones constantes si por ejemplo se decide registrar cada uno de los “scroll” que se hacen en las historias para seguir leyendo, pudiendo guardarse cada 10 scrolls por ejemplo.

A petición del cliente se usaría Azure.

Se propone para la computación usar Azure Functions, ya que permite que el sistema escale de manera automática y no pagar nada cuando no hay uso del servicio.

Para el almacenamiento se sugiere el uso de Azure Cosmos DB, una base de datos orientada a documentos, que permite almacenar cualquier tipo de estructura de datos, pudiendo cambiarse esta sobre la marcha, permitiendo así introducir nuevos datos que se haya visto con el uso que pueden ser útiles.

PRECIO*

El precio total es de 2.800€.

* Se omite el desglose en componentes por simplicidad.

TIEMPOS

El proyecto tiene una estimación de tiempo de entrega de 1 (un) mes, desde la fecha de inicio de los trabajos.

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.

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

La falacia de la protección de datos

Hablando de protección de datos hay muchas cosas que no funcionan y que podríamos tratar: desde la manipulación para que aceptes cookies, a la delegación de la agencia de protección de datos en las entidades para cumplir o no tras la aparición de la GDPR. Sin embargo, hoy vamos a ver un caso muy concreto y real de como se manejan datos que deberían tener la protección más alta según la “antigua” LOPD. Hoy hablaremos de como se gestionan los datos sanitarios por entidades de nuestro país.

Cuando trabajas en multinacionales, es típico que parte de tu salario sea un seguro médico privado. En mi caso tenía un seguro médico de Sanitas, que decidí mantener cuando dejé de trabajar para aquellas ya que viajo de un lado para otro y es complicado que te atiendan en centros públicos cuando no estás en casa.

Tras un tiempo y ver que no me daban el servicio que en mi opinión cabría esperar, decidí darme de baja. Me pareció importante tener una copia de todas las pruebas e informes de consultas que hubiese tenido con ellos, por si en el futuro la pudiese necesitar, así que haciendo uso del derecho de acceso (pág. 19) me dispuse a consultar a Sanitas y aquí es donde comienza la odisea.

Para empezar, Sanitas no es una única empresa, son varias con lo cual no es trivial saber a quien tienes que preguntar. Para esto yo tiré del contrato, pues el seguro estaba firmado sólo con una empresa (Sanitas S.A. de Seguros).

Les solicité todo lo que indica la guía del ciudadano y estos me remitieron toda esa información, pero mi sorpresa llegó cuando en los datos no encuentro ni un sólo dato médico. Me informan de que ellos sólo se encargan de cobrar y me pasan un listado con las facturaciones indicándome que tengo que remitirme a esas empresas (que en la mayoría de los casos llevan la palabra “Sanitas” en su nombre legal o comercial).

Preocupante que no estuviese ninguno de los informes a los que tenía acceso a traves de su web, pero decidí no pelearme ya que habría que ver de quién es la web y cómo está todo programado para ver quien toca los datos en cada momento y en especial cuando no están cifrados. Iba a ser una pelea muy ardua.

Aunque en ese listado sé que falta alguna (no he ido en ese periodo tanto al médico como para no saber a dónde he ido, presupongo que es debido a que con alguna entidad tienen convenios tales que no precisan facturarse), decido ponerme en contacto con estas haciendo uso del mismo derecho de acceso con el mismo tipo de comunicación:

  • IGUALATORIO MÉDICOQUIRÚRGICO COLEGIAL, S.A. DE SEGUROS
  • IDCQ Hospitales y Sanidad, S.L.U.
  • SANITAS, S.A. DE HOSPITALES
  • SANITAS NUEVOS NEGOCIOS SL
  • DENTAL SANTA MARÍA DE LA CABEZA, S.L.
  • INSTITUTO ANTIASMÁTICO CENTRO ALERGOLÓGICO, SL

Aquí cada uno ha hecho lo que le ha dado la gana. No voy a entrar en qué ha hecho quién, o qué cosas están mal RGPD en mano, pero os plantearé algunas anécdotas para que veais que todo es un chiste de muy mal gusto y que nuestros derechos, aunque muy bonitos en el papel, en la práctica no sirven siempre.

  1. Sólo uno me informa de la finalidad, destinatarios, derechos, etc. El resto sólo me proporcionan la historia (si llega).
  2. Hubo uno que me remitió una nota manuscrita diciendo que no tenía ningún dato mío. Mal, sea mentira o sea verdad.
  3. Dos me mandaron los datos en un cd, que poniéndonos pejigueros podríamos considerar que en 2018 ya no es un medio común y de uso general.
  4. Dos me hicieron personarme para obtener mis datos.
  5. Uno se lió y en lugar de una copia me dió el original, y como son tan cutres que reutilizan material, tengo en mi poder datos de una paciente que pasó consulta hace unos años.
  6. De uno conozco sus sistemas (porque parte los programé yo), y no me proporcionaron todos los datos de los que disponían.

Podría haber quien diga que me ponga en contacto con la agencia de protección de datos para denunciarlo, pero la experiencia (la mía, que otros tendrán otra) me dice que es un movimiento que no sirve de nada. Además que tengo casi todo lo que quería y mucho más de lo que pensaba que obtendría cuando empecé (hace meses).

En resumen. El papel dice que tenemos unos derechos sobre nuestros datos, pero aquí tenemos un claro ejemplo de que no es del todo cierto, una falacia. Las empresas, que aquí son el fuerte mientras los consumidores somos los débiles, hacen lo que quieren esperando que nadie se quiera engarrar y si llega alguno preguntando ni se molestan en intentar hacer las cosas medio bien.

Si eres una empresa, mi consejo: no te desentiendas de la gestión de datos y la privacidad, puede parecer trivial, pero en realidad es vital.

Si eres un cliente, mi consejo: haz uso de tus derechos y solicita siempre una copia de tus datos importantes, les tendrás a buen recaudo y cuantos más lo hagamos más fácil será que se pongan las pilas y estandaricen el procedimiento.