Developing Frogtek

El blog del Departamento de Tecnología

Autor: Miguel Julián

Trello y nuestro workflow de trabajo

Ya contamos en un post anterior parte del proceso de selección en el área de tecnología de Frogtek. Pero todavía podemos desvelar algún secreto más, y es que una de las primeras cosas que recibes al entrar el grupo de tecnología es una cuenta de Trello. Hasta ese momento podías conocer Trello o no; podías haberlo usado un poco para algunos proyectos, o tal vez para gestionar tus propias tareas. Pero ahora, con el acceso a los tableros de Frogtek… ya no hay vuelta atrás.

Fue una de las cosas que más me impactó: todo tiene una tarjeta de Trello. Y sí, lo admito, al principio es un poco overwhelming, tantos tableros, tantas notificaciones. Pero ahora ya está en el ADN, ya forma parte de uno mismo. Y si no está en Trello, seguramente, no ha pasado. De todas los procesos que tenemos trellificados me gustaría centrarme hoy en uno: las peticiones que se realizan a tecnología.
Seguir leyendo

Somos ágiles, hacemos stand-ups

Como crítica constructiva o destructiva, la frase se utiliza muchas veces. Uno lee artículos, escucha podcasts, ve charlas, … Stand-up para arriba, stand-up para abajo. Uno ya no sabe que pensar, casi mejor me quedo en la cama un rato más, que ahora en invierno se está muy “agustico”. ¡No! analicemos nuestros stand-up.

PRIMERO UN POCO DE REALIDAD

La realidad es que desde el teletrabajo los stand-ups solemos hacerlos sentados. Pero conservan el nombre. Y sí, a veces se alargan. En lugar de ver un círculo de gente rodeada de post-its y tareas en los cristales, veo los caretos de todos mis compañeros en primer plano (un porcentaje muy alto no nos hemos peinado, pero los auriculares lo disimulan). Eso sí, en lugar de post-its tengo mi libreta y un tablero de Trello con lo que he hecho, las siguientes tareas y lo que quiero comentar.

Empieza el stand-up, suele empezar el que ha compartido el enlace, tradición (todavía no es automático, ¡por el amor del MEV!).
Lo normal:
– Sujeto 1: Ayer hice esto y aquello, me queda pendiente esto que lo hago ahora por la mañana. Luego me pongo con aquello. Hoy trabajaré a partir de las 11:00 que me voy al médico.

Normalmente la cosa acaba aquí. Pero hay diferentes casuísticas interesantes.
Seguir leyendo

Sobre código, revisiones y despliegues

Lo sé. Lo admito. Me encanta la sensación de acabar de programar algo a las 5 de la mañana. Satisfecho. Orgulloso. Tal vez con un exceso de cafeína. Mergeas, despliegas y a dormir con una sonrisa. En tus sueños un cowboy se monta en su caballo, llega al pueblo y desmonta bajo la mirada de los pueblerinos. Captura a los malos, se sacude el polvo y se va triunfal con los suspiros de aquellos y aquellas a sus espaldas. Sí, ese desarrollador cowboy que es capaz de hacerlo todo, sin hablar con nadie, sin consensuar nada.

Te levantas con la sonrisa todavía en la boca (dejemos de lado babas y otros sucesos paranormales). Vas al ordenador y ¡boom!, algo ha ido mal. La explosión despierta hasta al cowboy de tus sueños, que se tapa con una piel y se acurruca junto a la hoguera, ahora hay miedo en ojos del valiente cowboy. Creo que esta historia nos suena a muchos y a muchas. Y sí, los sueños y las sonrisas, e incluso las risas molan; pero mejor dejar las explosiones para nuestros proyectos locos y no para los serios, o para el trabajo.

Historias de usuario públicas. Ramas. Revisión de código. Pruebas manuales. Pruebas automáticas. Despliegues. El cowboy puede hacer lo que quiera, que vamos a hacer que esto no explote (o mejor dicho, que explote cuanto menos, mejor).
Seguir leyendo

Cronología del error

En muchos artículos, incluidos muchos de los que hemos escrito, se acaba haciendo un poco de «autobombo» sobre las bondades de un proceso o de un equipo. Pero no sólo de los éxitos se aprende, también de los errores, ¡y mucho! Así que hoy te invitamos a un recorrido por parte de nuestra arquitectura y nuestras mejoras a través de un error (o dos, o tal vez tres, bueno, unos cuantos). Acompáñanos.

En Frogtek desarrollamos Tiendatek, una aplicación para Android que sirve como TPV. Para buscar ese valor añadido tenemos un botoncito en la aplicación que dirige al usuario a una web (con un webview) donde podrá obtener mucha más información sobre su stock, mejores productos, histórico, … Además tenemos una serie de APIs para usos diversos. Perdone, estamos en el 2016, si no expones una API para registrar las veces que uno va al servicio no eres nadie. Pues eso, servicios varios, que digamos, usa toda la empresa de una forma o de otra (no, lo de ir al baño no está implementado).

Comienza la historia: la motivación del cambio

Medir y mejorar tiempos de respuesta. Fin de la sección.

Hace unas semanas desplegamos una prueba de concepto para monitorizar y mejorar la forma en la que estaba expuesto un servicio. Lo que nosotros llamamos «el pedido sugerido». Al final siempre hay rincones del código y de nuestra infraestructura que reciben menos mimo del que merecerían. Y este era un claro ejemplo. ¿Un servicio con una tasa de errores del en torno al 7-8%? Un poco de chapa y pintura y ya lo tenemos en torno al 1-2% (principalmente timeouts por un socket que cierran los clientes impacientes).
Seguir leyendo

Comunicación: ajustando una máquina compleja (Work In Progress)

En Frogtek trabajamos personas desde diferentes sitios de la geografía mundial. Principalmente trabajamos desde varias ciudades de tres países: México, Colombia y España. Pero también tenemos que trabajar con gente en los EEUU y otros países. Y este aspecto en una empresa, sin duda alguna, es todo un reto.

Si ahora volvemos la vista atrás se podían ver varias máquinas (una por país) trabajando cada una con su entorno, dando lo mejor de ellas mismas, y de vez en cuando interactuando con las demás. Diferentes procedimientos, diferentes expectativas y prioridades, diferentes zonas horarias, diferentes culturas, … al final demasiadas diferencias que hacían que las interacciones entre las diferentes máquinas estuvieran lejos del óptimo.

Desde hace unos meses se ha realizado un esfuerzo notable y global en toda la empresa por homogeneizar la comunicación y los procesos. Un esfuerzo donde cada una de las máquinas debe entender la forma de trabajar del resto, buscando empatía en los diversos problemas que aparecen en otros engranajes, mejorando de forma proactiva todo lo que se puede.

Todavía hace falta mucho “3 en 1”, pero esas máquinas independientes que había antaño se han convertido en varios módulos que se relacionan de forma constante los unos con los otros. Parece que los primeros pasos se han dado y ahora la máquina evoluciona de forma autónoma. Las relaciones se estrechan y se agilizan, se minimizan las esperas. ¿Qué ha cambiado en este tiempo?
Seguir leyendo

FOSDEM y Config Management 2016

Acudir a diferentes charlas y eventos creo que es una parte imprescindible de la mejora continua de cualquier persona. Más importante todavía me parece cuando hablamos de personas que trabajan dentro del mundo de la tecnología, donde, siguiendo el tópico, todo avanza muy rápido. No es oro todo lo que reluce dentro de toda esas nuevas tecnologías, a veces tienen mucho de hype, pero lo cierto es que un año es mucho tiempo. Estar a la última en cuanto a tecnología a veces puede ser la diferencia entre un éxito y un fracaso estrepitoso.

Dentro de esa mejora continua Julio y Miky (el que escribe) tuvimos la suerte de poder ir a la FOSDEM y a la Config Management. Dos eventos que viven hermanados, pues son en días consecutivos en ciudades cercanas. Para mí ya es el cuarto año que acudo a la FOSDEM, pero el primero en el que acudo a la Conf Management. Primero explicar un poco de las charlas, pero luego, con permiso, entraré en detalles de lo que nos traemos en el zurrón de cada una de ellas.
Seguir leyendo

Ansible: un gran poder conlleva una gran responsabilidad

Dentro de la Conferencia Agile Spain 2015 tuve la oportunidad de asistir a un taller de casi dos horas de Ansible impartido por David González. Ansible es una de esas herramientas a las que le echas el ojo pero por una cosa u otra (muchas veces pereza, de esto nadie se libra) acaba, por más tiempo del debido, en la lista “cuando tenga tiempo me hago un proyectito”. Los primeros cantos de sirena serios vinieron en febrero, en la FOSDEM 2015, llegaba la hora de mancharse un poco.

Por lo visto un taller sobre Ansible no se veía cercano a las metodologías ágiles. Y por lo visto a menos de 10 personas, sobre las cerca de 700 que iban a la conferencia, nos interesaba el taller. Una pena, pero una suerte para los que pudimos aprender, probar, debatir y compartir ideas y experiencias. Por lo visto una herramienta de configuration management (CM) no aporta nada a tener software funcionando sobre documentación excesiva o tampoco facilita la respuesta ante el cambio frente a seguir un plan.

El estado del arte

Por primera vez hace unos cuatro años empezaba a leer sobre estas herramientas de CM, y hace un poco más de tres años me metía en el barro con Puppet. Hace poco se añadía al set de tecnologías a dominar Chef, y de paso Fabric (que complementa bastante algunas carencias). A día de hoy administrar un servidor en una empresa y no utilizar alguna de estas herramientas sería como plantearse desarrollar código sin tests o sin un control de versiones. Impensable. Mala idea.
Seguir leyendo

Seleccionando: un día de convivencia con un candidato con kata incluida

Kata en Frogtek

Si nos sigues un poquito seguro que te habrás enterado, buscamos candidatos, ingenieros de software. Detrás de un producto como Tiendatek hay muchas personas trabajando, un equipo que fluctúa y se adapta a las nuevas necesidades, algunos se han ido, otros hemos llegado, incluso algunos se van, aprenden y mejoran buscando nuevas aventuras, y vuelven con fuerzas renovadas. Nos sentimos orgullosos del equipo que formamos, y una parte importante para construir el equipo es el proceso de selección.

Si las personas sólo fuéramos recursos, números o conocimientos, la selección de personal sería muy fácil, seguramente sólo se necesitara una prueba que garantizara que en el CV no se ha mentido. Pero afortunadamente para todos, menos para RRHH, supongo, somos mucho más que números y conocimientos. Somos unos cacharros normalmente con brazos y piernas que tienen sentimientos, que tienen aficiones y afinidades. Y es que cinco personas bien avenidas garantizan mejor trabajo y durabilidad que cinco personas malavenidas.

Por eso nos gusta ofrecer a los candidatos que entrevistamos, y vemos que pueden encajar en el puesto, un día de convivencia en la oficina de Frogtek. Es un día especial. Ahora ya he vivido esa experiencia desde los dos bandos, y desde ambos dos se ve muy enriquecedora. Desde uno de los lados se ve con bastantes nervios e inquietud; acabas con la cabeza llena de demasiada información y, en mi caso, vuelves a casa con un buen dolor de cabeza. Desde el otro lado lo esperas con impaciencia, intentas enseñar y hacer que la otra persona se sienta cómoda, y al final siempre aprendes algo nuevo de la persona que ha venido.
Seguir leyendo

Continuous learning, un ‘must’ para todos

El pasado 4 de diciembre dentro de la Conferencia Agile Spain 2015 tuve la oportunidad de asistir a una charla de Miguel Grazziotin. La charla fue justo después del descanso para comer, apenas éramos un poco más de diez personas en la sala, no entendíamos muy bien el título de la misma, pero al final, resultó ser, personalmente, una de las charlas más inspiradoras.

La charla tenía el título de “Jacket on, jacket off – Stop working and start training!”, no demasiado amigable, pero el contenido era sencillo. ¿Qué es entrenar/aprender? ¿Por qué entrenar/aprender? ¿Qué entrenar/aprender? Al final de la charla tenía un revuelo de mis propias creencias sumadas a lo que acababa de escuchar en una buena charla (aunque tal vez un poco aséptica). Nada mejor que escribir para poner orden, compartir, discutir y mejorar.

Como individuo: el aprendizaje como elemento clave

¿En el trabajo también? Desde hace ya algunos años he visto el trabajo como una oportunidad única. Entre otras cosas, trabajar es la oportunidad de aprender y vivir en un entorno positivo y exigente; una oportunidad por la que además te van a recompensar con dinero (principalmente) que te va a servir para invertirlo en más aprendizaje y vivencias. Un puesto de trabajo debe aportar de forma activa a nuestra mejoría como persona.
Seguir leyendo