Hola Mundo, en Español Chileno

Rodrigo Aliste
Ingeniería Prey
Published in
4 min readApr 12, 2016

En Prey, nuestra misión es ofrecer la mejor solución anti-robo del mundo. En efecto, facilitar la recuperación de dispositivos perdidos o robados. El desafío es ambicioso y complejo, pero hemos logrado posicionarnos como una de las mejores aplicaciones de su categoría. Queremos contarlo todo: cómo funcionamos, qué problemas resolvemos y cómo nos la ingeniamos para encontrar las mejores soluciones.

En este primer post nos presentamos: somos el equipo de Tecnología de Prey, y estamos aquí para contarles la firme sobre cómo abordamos nuestra metodología de desarrollo, cómo desarrollamos sistemas, y cómo mantenemos un ecosistema de desarrollo continuo.

El Equipo

Desde que el cóndor desplegó sus alas por ahí en el 2009 el equipo ha ido creciendo y madurando: el mayor valor del equipo está en su grupo de personas. Críticos, apasionados y con un gran talento.

La diversidad es clave en nuestro equipo: de distintas formaciones (músicos, artistas e ingenieros) y de distintas partes (hola Colombia, Nicaragua, Venezuela, Marte y San Felipe) que constantemente se ponen al servicio de los desafíos del día a día.

Todo el equipo trabaja en su propio espacio desde los HQ en Santiago de Chile, lo que nos permite poder tener discusiones técnicas sin interrumpir los flujos de los equipos de Marketing y Soporte.

El Equipo, representados por Héctor Astete — Diseñador Web

Metodología

En toda nuestra historia hemos probado varias metodologías. Algunas con muy buenos resultados y otras con resultados un poco desastrosos.

Pero, porque no hay mejor aprendizaje que aprender a porrazos, hemos logrado generar estabilidad y práctica en nuestra implementación de SCRUM. Al día de hoy contamos con más de cincuenta iteraciones de experiencia, y si bien no hemos encontrado el Zen, creemos fielmente que su conjunto de prácticas nos provee con todas las herramientas que necesitamos para reiterar de forma segura.

Nuestras iteraciones duran dos semanas y realizamos una planificación en el primer día y un demo al equipo el último día. Todos los días nos juntamos a las 10 am a repasar los objetivos de ayer (si se lograron o no) y qué objetivos se pondrá cada uno para el día. Semana por medio hacemos un TGIF, que es una especie de mini-evento en donde conversamos sobre Prey en general y aprovechamos de sacar una que otra cerveza.

Mantener la disciplina en toda la metodología es quizás lo más importante para que funcione bien, o como dice un viejo amigo, mantener una sola línea en el transcurso de la iteración.

Desarrollo de Sistemas

Prey cuenta con más de 7 millones de usuarios. Generalmente, cada usuario tiene al menos dos dispositivos registrados, por lo que cada día recibimos millones de solicitudes a nuestra infraestructura de producción, desde todo el mundo. Por cada segundo de tráfico existen más de 150.000 dispositivos conectados.

Todos los dispositivos se comunican con el Panel, construido sobre Rails. Programado y codificado originalmente por Tomás Pollak (Sensei), es la aplicación que utilizan los usuarios para controlar sus dispositivos en tiempo casi real. Esta aplicación ha evolucionado en tamaño y complejidad, convirtiéndose en el monolito tecnológico del equipo. Miguel Michelson (cinturón negro Ruby desde 2005) nos contará más adelante sobre cómo hemos ido deconstruyendo esta aplicación en un set de engines y micro servicios.

Tras bambalinas, contamos con un equipo de Infraestructura que se dedica a la administración y monitoreo 24x7 de todas nuestras instancias en la nube. Algunos recordarán nuestra presentación en el Startech Conf del 2011 sobre cómo nuestros viejos sistemas solían atacarnos. Le hemos puesto mucha cabeza a nuestra plataforma de conectividad, y como resultado, la mayoría de nuestros sistemas de mega-alto tráfico, como notificaciones y eventos, fueron migrados a Go.

Los viejos amigos Java, Objective-C y Node.js son los encargados de recibir las líneas de programación que escribe la comunidad y nuestro equipo de Clientes. Atentos: para los que no sabían, todo el código fuente de los clientes de Prey está publicado en GitHub.

Desarrollo Continuo

Aún no hemos perfeccionado nuestra capacidad de desarrollo continuo, pero cada vez nos acercamos más a nuestra meta de N deploys por día.

Creemos que la automatización es una de las claves para mantener un ecosistema de desarrollo continuo. La regla de oro es que si alguna operación toma más de 10 minutos, debería ser automatizada. Luis Sanchez (Sys Master) nos irá contando sobre cómo administramos de forma eficiente más de 65 instancias sobre Google Cloud Platform.

Pruebas, pruebas y más pruebas es otra de las claves. Desarrollar buenas pruebas es más un arte que una ciencia. A veces resultan difíciles o lateras, pero en su conjunto conforman uno de los pilares fundamentales para que todo funcione. Así como dicen que comprar propiedades es una buena inversión, no hay mejor inversión que implementar tests. La ventaja de programar sobre una base de tests suficientemente grande es que nos permite desarrollar más rápido.

Durante las próximas semanas estaremos publicando nuevos artículos sobre distintas categorías. Otra de las gracias de poder escribir públicamente, es poder recibir cualquier comentario o pregunta. Así que ya sabe, escríbanos de vuelta no más.

--

--