en Programación

Los errores técnicos de BiciMad: fallos de la plataforma y mal planteamiento sin API pública

API-BICIMAD

Según BiciMad, el éxito de su lanzamiento en el primer día tumbó sus sistemas informáticos. ¿En serio que 1.000 usuarios no concurrentes a lo largo de un día fueron capaces de hacerlo? Recordemos que es un sistema que debería estar planteado para dar servicio a 123 estaciones con 1.580 bicicletas de forma ininterrumpida 24 horas.

Fallos técnicos y mal planteamiento de la plataforma

Hay que distinguir el apelativo de fallos informáticos de un mal planteamiento técnico de la plataforma. En el primero podemos asumir que durante un tiempo tengan problemas con la carga de los servidores, fallos de conectividad o algun bug descubierto. Pero después de ver los errores, agujeros de seguridad y la pobre implementación del sistema informático de BiciMad está claro que no se hizo un análisis de lo que suponía el despliegue técnico de este proyecto en el que la tecnología forma un papel fundamental.Parece que el estándar de calidad de la administración es mucho más bajo de lo que podríamos pensar.

Enbicipormadrid hace un excelente resumen de las 12 pruebas que tiene que superar el usuario de BiciMad, prácticamente todas son por problemas de la plataforma, nadie se queja de las bicicletas, por ejemplo. Entre ellas nos encontramos el registro, conseguir el descuento de abono transporte, obtener el código para recoger la tarjeta, incluso descifrar el código con mayúsculas y minúsculas confusas, encontrar un totém operativo o, finalmente, devolver la bici sin problemas.

¿Qué debería manejar el sistema informático de Bicimad y no hace bien?

Inscripciones de usuarios. Nadie pensó que si un usuario se registra por la web o el totem puede que no reciba el código de recogida de abono al instante. Asumamos que existe un fallo en el servidor de correo o SMS y no se envían. ¿No sería más fácil que el usuario pueda consultarlo en la web o incluso solicitar el reenvío de ese código en otro momento. De esta forma se podría evitar que cientos de usuarios tengan que reclamar el envío del código por el teléfono de incidencias. Otro asunto es la expedición del abono en la propia estación que provoca problemas, algo que debería ser instantáneo al asociar el identificador del usuario con la tarjeta expedida.

Monitorización de las estaciones, es decir, número de bicicletas libres y plazas disponibles de aparcamiento. Posiblemente el punto más delicado de información. La web de BiciMad se supone que debería contar con un mapa en tiempo real con la información de cada base mostrando su disponibilidad pero fue eliminado por su pésimo rendimiento.

Totem. Curioso las instalaciones de una versión completa de escritorio de Ubuntu, además con una versión desatentida, (hasta con libreoffice instalado) en los totem. Matar moscas a cañonazos. Bien, por el software libre pero mal por elegir una distribución que debería ser más limitada básicamente para mostrar la aplicación del totem y evitarían imagenes como estas.

Anclajes de las bicicletas en las estaciones. Una cosa es que la web lenta y otra que todos las estaciones estén caídas por el mismo problema. Hay que hacer una separación clara de tu backend y de lo que se expone. Recordemos el riesgo que supone que falle un sistema que requiere de esos anclajes inteligentes para dejar las bicicletas. Un usuario puede llegar a una estación que no funcione y ser incapaz de dejar la bicicleta en el anclaje con el consiguiente riesgo de que sea robada o que se le cargue un tiempo extra. La realidad es que es difícil encontrar una estación que funcione correctamente, sólo las “sagradas” que cuenta con un operario de Bonopark está operativas.

anclajes-bicimad

La pseudo API que usa la app de Bicimad (sólo Android, de momento) no dispone de ninguna seguridad intermedia, key, token ni https para securizar las llamadas de usuario, lo que representa un auténtico problema de seguridad para ciertas peticiones con datos de usuario. Se abusa del envío del DNI (un grave error que se usado como identificador en el modelo de datos del sistema).

Detalles que han aflorado los errores, trazas de excepciones es algo curioso. La web parece haber sido implementada con Spring Framework (un robusto framework si se usa bien) quizás demasiado si vemos lo que es la web. Pero lo grave es que la pseudo API de Bicimad está hecha en PHP no tengo claro si a pelo o con framework mediante. (Oh, wait) Lo hizo gente distinta seguramente. Quizás no sabía que Spring cuenta potentes herramientas para crear APIs RESTful.

Sin API pública ¿dónde está el Open Data?

Después de una petición pública se ha conseguid que se publique el dataset de la localización de las estaciones de Bicimad, pero eso no es suficiente. Un servicio como BiciMad debería contar una API pública para desarrolladores, lo cual permitiría integrar la información de alquiler de bicicletas en aplicaciones como Citymapper o crear aplicaciones, por ejemplo, como el mapa de disponibilidad creado usando CartoDB por @iamzenitraM usando la pseudo API actual de la app móvil.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

  1. ¿Por qué «Bien, por el software libre»?

    Me refiero, si hubieran creado un sistema abierto e interoperable que pudieran reutilizar todas las ciudades y así ahorrar dinero a la administración y como consecuencia a los ciudadanos lo entendería, pero en este caso qué más dará que el sistema operativo que hay por debajo sea un Ubuntu. Claramente no hay ninguna necesidad de modificar el código, por no modificar, no han ni cambiado los programas que vienen instalados por defecto y han dejado la instalación de libreoffice.

    De hecho en este caso concreto, tal vez sería mejor que hubieran utilizado Windows, visto que éste es gratuito para pantallas de menos de 9″ y ofrece soporte profesional gratuito, cosa que por el de Ubuntu hay que pagar.

    Por eso pregunto ¿por qué «Bien, por el software libre»?

    Tal vez empieza a ser hora de desmitificar que todo el software libre es bueno por que sí y el propietario no.

  2. ¿Desmitificar el software libre?

    Usando software libre se puede hacer una instalación como estás con un ARM ,256 mb de RAM y una distribución especialmente diseñada para esto. Ahorraría en gastos de hardware, eliminaría el problema de «ups, me ha salido un escritorio» y otros potenciales hackings y permitira tener control total sobre el sistema, ya que al fin y al cabo lo has diseñado tu y sabes como funciona.

    Intenta hacer eso con Windows.

    Ahora si, viendo como lo han implementado, aquí es cierto que da igual windows, ubuntu, Mac o lo que quieras. Es una chapuza independientemente del OS, ubuntu no lo hace menos «cagada».

  3. Qué pesados con lo de que han tumbado la web con 1000 usuarios. Es que nadie se informa lo más mínimo antes de escribir semejante burrada?

    Los datos de cuántos usuarios han visitado la web no los ha dado nadie. Lo único que han dicho es que el primer día hubo unos 1000 usuarios registrados.

    Si tenemos en cuenta que registro ha tenido que pagar entre 10 y 25 euros, y que el servicio se anunció el lunes a bombo y platillo en muchísimos medios digitales (y no digitales), y fue trending topic en twitter durante gran parte del día, quién en su sano juicio, después de pensar en esto durante más de 5 segundos, se atreve a decir que sólo tuvieron 1000 usuarios durante todo el día? Pues por lo que veo los hay, y muchos. Alucinante.

    A mí no me sorprende que el primer día (o incluso dos) se caigan algunos servicios por sobrecarga, esto le pasa a todo el mundo, incluídas esas grandes empresas con cientos de millones para quemar en infraestructura y los mejores ingenieros informáticos, así que no nos pasemos de listos.

    Lo que me sorprende es el resto que se menciona en este post, al que no le falta razón, y además es sólo la punta del iceberg a día de hoy; en cuanto al gran desconocimiento, falta de planificación, y total descuido con el que se ha llevado a cabo toda la parte técnica. Lo más preocupante es que parece que gran parte de estos problemas no quieren o no saben arreglarlos.