Developing Frogtek

El blog del Departamento de Tecnología

Página 2 de 18

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

Oferta ingeniero de SW

El Grupo Frogtek es una empresa social con ánimo de lucro cuyo objetivo es ayudar a los tenderos de países emergentes y del tercer mundo, lo hacemos ofreciendo una aplicación Android que el tendero puede usar para gestionar y optimizar su negocio y sostenemos el proyecto a través de la venta estudios de mercado basados en los datos de ventas de los tenderos que almacenamos y procesamos en nuestros servidores en Google App Engine y en Amazon.

 

Nuestra empresa es global y trabaja de forma distribuida. Las operaciones de venta, formación y soporte a tenderos están en México pero la creación de tecnología se ha hecho hasta la fecha en España aunque cada día más trabajamos en remoto y es menos importante dónde puedas estar. Buscamos una persona que venga a reforzar al equipo de tecnología y nos ayude a dar un salto de calidad. Las tareas a realizar serían, entre otras, las siguientes:

 

  • Ayudar a entender las peticiones y diseñar las soluciones que nuestros clientes internos nos hacen.
  • Participar en nuestro proceso de desarrollo de código ya sea para crear nuevas funcionalidades, para optimizar nuestra infraestructura o para resolver incidencias, un trabajo variado que permite tratar con múltiples tecnologías tanto en el lado cliente como en el servidor. Esto implica:
    • Colaborar en la definición de objetivos del equipo.
    • Desarrollar y/o validar requerimientos.
    • Crear, solo o en compañía, código de calidad, legible y cubierto por tests.
    • Revisar y leer el código de otros compañeros.
    • Probar funcionalidades.
  • Colaborar en el despliegue de los productos.
  • Asesorar técnicamente dentro y fuera del equipo.
  • Aprender de los demás y enseñar a los demás.
  • Integrarse en la cultura de mejora continua del equipo basada en los datos y en EFQM.

Se requiere:

  • Conocimientos Android
  • Conocimientos de programación web
  • Conocimientos de programación Python, CherryPy, Django…
  • Conocimientos mySQL y SQLite
  • Experiencia con las plataforma Google App Engine y AWS
  • Soltura con Linux
  • Conocimientos de Scripting (ruby, bash, python)
  • Experiencia en la plataforma de integración continua Jenkins
  • Experiencia con TDD
  • Interés por la mejora continua
  • Alto nivel de inglés

Se valorará muy positivamente:

  • Cualquier otra tecnología que venga a mejorar lo que ya tenemos
  • Experiencia en metodologías ágiles (Scrum, Kanban, Scrumban…)  y extreme programming (pair programming, TDD…)
  • Experiencia con Gradle
  • Conocimientos de R
  • Experiencia en proyectos Big Data
  • Capacidad para trabajar en remoto un gran porcentaje del tiempo
Se ofrece:

 

  • Sueldo competitivo
  • Grandes posibilidades de desarrollo y aprendizaje
  • Integración en un equipo dinámico, sin miedo a aprender, cambiar y mejorar
  • Formar parte de un proyecto puntero a nivel mundial que está recibiendo los más altos reconocimientos (menciones en el MIT, premios de Vodafone en el NewYork Times…)
  • Horario totalmente flexible, posibilidad de realizar gran parte en teletrabajo y buen ambiente (nuestra oficina está en Walqa, Huesca, si vives cerca nos vemos allí una vez a la semana, si no también podemos hacerte un hueco en nuestros standups virtuales).
  • Experiencia internacional y multicultural.

 

Si te interesa tener una primera entrevista con nuestro equipo, por favor envíame un mensaje y CV actualizado a guillermo arroba frogtek punto org

La regla del boy Scout

Desde mi último cambio de trabajo le he estado dando vueltas a un tema que me parece interesante.

Por un lado en el traspaso de conocimiento que hice antes de irme de Zentyal, la persona que se incorporaba llegó con energía, cuestionándose las cosas y mejorando en general todos los sistemas que yo le estaba traspasando. Había cosas que él proponía que me costaba aceptar. Seguramente porque no quería reconocer que me había acomodado, ya no buscaba las mejoras con el mismo ímpetu y ganas; y había dejado que ciertas áreas se estancaran bastante.

Al entrar de nuevo en Frogtek sí que fui yo el que se puso a buscar dónde aplicar todo lo aprendido desde mi última vez por aquí, planteando mejoras y buscando sitios donde aplicar mis conocimientos para el provecho del equipo. Ahora voy con mucha energía y ganas, pero me da miedo que dentro de un tiempo vuelva a acomodarme otra vez y me cueste buscar mejoras y realizarlas.

Creo que el problema tiene mucho que ver con la teoría de las ventanas rotas. Al principio, al llegar, quiero mejorarlo todo porque creo que el edificio esta nuevecito, para mí obviamente lo está. Pero conforme pasa el tiempo y voy conociendo más los entresijos de la empresa, el equipo, el código… se me van rompiendo las ventanas y me va dando más pereza intentar arreglarlas. Porque me parece el estado normal, total una ventana más o menos qué más da,  ¿no? ¿ Qué importa un archivo sin usar en el repositorio, una librería desactualizada, un proceso mejorable o unos tests de más o menos?

¡¡Mucho!! Por eso creo que es muy importante La regla del boy Scout, pero no sólo aplicada al código, sino a todo. Cada vez que toquemos un archivo del repo, cambiemos una configuración de Jenkins o simplemente asistamos a una reunión del proceso. Hay que estar atentos para buscar esos pequeños cambios o mejoras que nos van a permitir poco a poco llevar nuestro trabajo, y el del todo el equipo, a otro nivel.

Hay que tener paciencia y no desesperar, no sólo los grandes refactors pueden ayudarte a saber vivir con tu deuda técnica, pequeño paso a pequeño paso se puede llegar muy lejos. A ver si soy capaz de tener paciencia y aplicarme esta última frase.

Oferta beca de formación – programador junior

BECA – PROGRAMADOR JUNIOR:

Ofrecemos para el departamento de Tecnología del Grupo Frogtek, una beca de formación de un año, con altas posibilidades de incorporación a su finalización, el comienzo de la beca sería inmediato.

Requisitos exigidos:

  • Estudiante de los últimos tres años o de postgrado o a falta del proyecto fin de carrera de las universidades de Zaragoza o San Jorge.
  • Programador con buena base de programación, con conocimientos de programación orientada a objetos.
  • Con potencial, motivado y con ganas de aprender.
  • Alto nivel de inglés.
  • Inteligencia, curiosidad, meticulosidad y atención a los detalles.
  • Ganas de trabajar en una start-up.
  • Facilidad para la comunicación y el trabajo en equipo, flexible.

Se valorará conocimientos o interés en alguna/s de las siguientes áreas:

  • Conocimientos en tecnologías web HTML, JavaScript, CSS, jQuery.
  • Conocimientos de Java y/o Android.
  • Conocimientos de Cloud Computing, en especial Google App Engine.
  • Conocimientos en bases de datos.
  • Conocimientos de metodologías ágiles y programación extrema.
  • Haber realizado un Erasmus.

Tareas:

  • Integración en el ciclo de vida de desarrollo de producto de Frogtek junto con el resto del equipo
  • Desarrollo de nuevas funcionalidades y soporte técnico para validación de hipótesis de negocio (filosofía lean startup)
  • Programación XP: TDD, revisión de código, pair-programming, integración continua…

Se ofrece:

  • Beca del IAF/Walqa mejorada por Frogtek (1000€/mes).
  • Involucrarse en un proyecto social.
  • Grandes posibilidades de desarrollo: aprenderás Android, Cloud Computing y programación extrema entre otras muchas cosas.
  • Formar parte de una empresa joven usando las metodologías y tecnologías de desarrollo más avanzadas.
  • Buen ambiente y horario totalmente flexible, posibilidad de realizar parte en teletrabajo, parte en la oficina de Huesca.
  • Experiencia internacional y multicultural
  • Grandes posibilidades de incorporación como empleado al finalizar la beca en función de la valía y la disponibilidad de la empresa (hasta ahora el 100% los becarios seleccionados han sido contratados al finalizar el año).

 

Interesados mandar mail adjuntando el CV a guillermo at frogtek punto org

Oferta ingeniero QA Global, España – PROCESO CERRADO

El Grupo Frogtek es una empresa social con ánimo de lucro cuyo objetivo es ayudar a los tenderos de países emergentes y del tercer mundo, lo hacemos ofreciendo una aplicación Android que el tendero puede usar para gestionar y optimizar su negocio y sostenemos el proyecto a través de la venta estudios de mercado basados en los datos de ventas de los tenderos que almacenamos y procesamos en nuestros servidores en Google App Engine y en Amazon.

 

Nuestra empresa es global y trabaja de forma distribuida. Las operaciones de venta, formación y soporte a tenderos están en México pero la creación de tecnología se ha hecho hasta la fecha en España. Buscamos una persona que lidere la función de QA desde el departamento de tecnología de España, en Huesca. Las tareas a realizar serían, entre otras, las siguientes:

 

  • Gestionar las fases de revisión de código y pruebas del proceso de desarrollo de producto de Frogtek.
  • Responsabilizarse del proceso de generación de releases y despliegues de las diferentes soluciones.
  • Tomar en propiedad el proceso de gestión de incidencias: entenderlo, medirlo y evolucionarlo.
  • Gestionar el trabajo de los ingenieros de QA locales de las distintas regiones (por el momento uno en Latam que da servicio a México y Colombia).
  • Trabajar activamente en la resolución de bugs y problemas que no hayan podido ser atajados localmente.
  • Colaborar y asesorar a los distintos departamentos de la empresa en Latam en materia técnica.

Otras tareas que no son las principales del puesto pero que también surgirán son:

  • Desarrollo de cualquiera de los productos o herramientas internas.
  • Mantenimiento y optimización de servidores y bases de datos.
  • Homologación y pruebas del hardware sobre el que corre nuestra solución.
Se requiere:

 

  • Conocimientos Android
  • Conocimientos de programación web
  • Conocimientos de programación Python, CherryPy, Django…
  • Conocimientos mySQL y SQLite
  • Experiencia con las plataforma Google App Engine y AWS
  • Conocimientos de Scripting (ruby, bash, python)
  • Experiencia en la plataforma de integración continua Jenkins
  • Experiencia en testing
  • Interés por la mejora continua
  • Alto nivel de inglés
Se valorará muy positivamente:

 

  • Cualquier otra tecnología que venga a mejorar lo que ya tenemos
  • Experiencia en metodologías ágiles y extreme programming
  • Experiencia con plataformas de atención al cliente como Zendesk
  • Conocimiento de herramientas de monitorización estilo Crashlytics
  • Conocimientos de Chef o similar
  • Conocimientos de R
Se ofrece:

 

 

  • Sueldo a convenir
  • Grandes posibilidades de desarrollo y aprendizaje
  • Integración en un equipo dinámico, sin miedo a aprender, cambiar y mejorar
  • Proyecto puntero internacional y multicultural
  • Formar parte de un proyecto puntero a nivel mundial que está recibiendo los más altos reconocimientos (menciones en el MIT, premios de Vodafone en el NewYork Times…)
  • Horario totalmente flexible, posibilidad de realizar gran parte en teletrabajo y buen ambiente.
  • Experiencia internacional y multicultural.

 

Si te interesa tener una primera entrevista con nuestro equipo, por favor envíame un mensaje y CV actualizado a guillermo arroba frogtek punto org

Oferta Ingeniero QA Latam, México DF – PROCESO CERRADO

El Grupo Frogtek es una empresa social con ánimo de lucro cuyo objetivo es ayudar a los tenderos en países de Latam, lo hacemos ofreciendo una aplicación Android que el tendero puede usar para gestionar y optimizar su negocio y sostenemos el proyecto a través de la venta estudios de mercado basados en los datos de ventas de los tenderos que almacenamos y procesamos en nuestros servidores en Google App Engine y en Amazon.
Nuestra empresa es global y trabaja de forma distribuida. Las operaciones de venta, formación y soporte a tenderos están en México pero la creación de tecnología se ha hecho hasta la fecha en España. Buscamos una persona que nos ayude a hacer de puente entre ambas divisiones y que, trabajando estrechamente en México, con el equipo de soporte en México (y Colombia) y con el equipo de tecnología en España, refuerce la posición de Quality Assurance para Latam. A priori las tareas que dicha persona debería hacer son muy variadas:
  • Atención temprana a incidencias reportadas por tenderos que el equipo de soporte técnico no sabe atender por ser demasiado técnicas (requieren el análisis de la base de datos interna o de trazas de código de error…) (Android/Web)
  • Atención temprana a incidencias en las herramientas internas de la compañía (Python)
  • Atención temprana a incidencias de los procesos de envío de datos tanto internamente como externamente. (Jenkins/Scripting)
  • Gestión del despliegue de nuevas versiones de la aplicación en los distintos países.
  • Creación, implementación y ejecución de planes de test (Android/Web/Python)
  • Colaboración en la búsqueda, pruebas y homologación de HW (tabletas, lectores de códigos de barras, de tarjetas…)
  • Asesoramiento técnico y creación de prototipos de producto y herramientas para los distintos departamentos. (Android/Web/Python)
Se requiere:
  • Conocimientos Android
  • Conocimientos de programación web
  • Conocimientos de programación Python
  • Conocimientos mySQL y SQLite
Se valorará muy positivamente:
  • Experiencia con la plataforma Google App Engine
  • Conocimientos de Scripting/Jenkins
  • Experiencia en testing
Se ofrece:
  • Sueldo a convenir
  • Grandes posibilidades de desarrollo y aprendizaje
  • Proyecto puntero internacional y multicultural
  • Formación inicial y visitas periódicas en el departamento de tecnología en España
Si te interesa tener una primera entrevista con nuestro equipo, por favor envíame un mensaje y CV actualizado a guillermo arroba frogtek punto org

Oferta Científico de Datos – PROCESO CERRADO

Ofrecemos para la oficina de Huesca, en Walqa, un puesto de Científico de Datos para integrarse dentro del equipo de Datos del Grupo Frogtek.

Responsabilidades:

  • Trabajar integrado dentro del equipo de Datos del Grupo Frogtek.
  • Colaborar con el equipo de Tecnología en la implementación del roadmap del departamento de Datos.
  • Elaboración de dashboards y visualizaciones de datos
  • Generación de algoritmos
  • Aseguramiento de la calidad de los datos

Requisitos exigidos:

  • Licenciado o grado en Matemáticas, Estadística, Empresariales o Económicas, Ingeniero…
  • Fuerte capacidad de análisis de datos estadísticos.
  • Manejo avanzado de R y SQL principalmente, SPSS y SAS de manera secundaria.
  • Conocimiento de la plataforma Shiny de RStudio.
  • Experiencia en la construcción y modelado de algoritmos.
  • Alto nivel de inglés.
  • Inteligencia, curiosidad, meticulosidad y atención a los detalles.
  • Motivación, proactividad, autonomía y flexibilidad.
  • Facilidad para la comunicación oral y escrita y el trabajo en equipo.
  • Disponibilidad para viajar a otros países.

Se valorará positivamente conocimientos o interés en alguna/s de las siguientes áreas:

  • Conocedor del mundo de la empresa (inventarios, demanda-oferta, elasticidades, gestión de costos y precios, márgenes, categorización de productos…)
  • Experiencia en generación de paneles y de muestreos polietápicos.
  • Experiencia en gestión de paneles.

Se ofrece:

  • Sueldo competitivo según experiencia
  • Involucrarse en un proyecto social trabajando con las empresas de datos más importantes del mundo.
  • Enormes posibilidades de desarrollo, posibilidad de colaborar estrechamente con profesores de la Universidad de Zaragoza y expertos mundiales en el tema.
  • Formar parte de un proyecto puntero a nivel mundial que está recibiendo los más altos reconocimientos (menciones en el MIT, premios de Vodafone en el NewYork Times…)
  • Horario totalmente flexible, posibilidad de realizar gran parte en teletrabajo y buen ambiente.
  • Experiencia internacional y multicultural.

Interesados enviad CV actualizado a guillermo arroba frogtek punto org

¿Es el pair programming más rápido?

Hace ya unos meses tuvimos el placer que tener a Teresa Oliver compartiendo un día con Frogtek. Nos visitó, le contamos cómo trabajamos, qué herramientas nos gustan, cómo recogemos las métricas, qué hacemos con ellas… y luego por la tarde ella lideró una retrospectiva y nos dio ideas sobre cómo hacerlas en el futuro.

Cuando revisábamos nuestras métricas Teresa se mostró bastante interesada en conocer los datos que tenemos sobre historias de usuario (USs) programadas en pair con la idea, imagino, de validar si se puede defender el argumento de que hacer hacer pair-programming es más rápido. Validar algo así con datos empíricos sería algo bastante radical dado que podría servir para cambiar la mentalidad de muchos “managers” usando el argumento más simple y, por qué no decirlo, simplista “si pones a dos ingenieros a trabajar en la misma tarea la acaban en menos de la mitad de tiempo”.

Yo no tenía la respuesta a la pregunta de Teresa pero sí tenía los datos en bruto para hacer una primera aproximación, así que me apunté la idea y hoy, más vale tarde que nunca, he hecho un pequeño, breve y simple análisis.

Tomando las historias de usuario implementadas en Frogtek en los últimos 20 meses y eliminando los bugs, es decir, sólo tareas de añadir o cambiar funcionalidad, tenemos:

  • El tamaño medio de las USs hechas en solitario: 0.38 puntos.
  • El tamaño medio de las USs hechas en pair: 0.75 puntos.

Primera conclusión, lógica por otro lado, el pair programming se usa especialmente cuando las tareas son complicadas, largas o arriesgadas.

  • Días brutos desde que se empieza el desarrollo, hasta que se termina, cuando se hace en solitario:  11.5 días, es decir 30 días por punto.
  • Días brutos desde que se empieza el desarrollo, hasta que se termina, cuando se hace en pair: 24 días, es decir 32 días por punto.

¡Oooohhhhh!… El gozo de nuestro “manager” en un pozo. Hacer pair programming no acelera el desarrollo… de las USs (ni siquiera considerando a los dos programadores, pair programming con tres es ya vicio, como una única criatura bicefálica mitológica… aunque esto bien puede deberse a que las tareas que se acometen en pair en Frogtek son siempre las más complicadas y habitualmente se infraestiman), otra cosa muy distinta es si hacer pair programming, en casos justificados, puede acelerar la velocidad del equipo en el medio plazo. Desgraciadamente ese es un análisis mucho más complicado de hacer y en Frogtek no tenemos los datos que validen nuestra opinión que es que sí, que hacer pair-programming acelera la velocidad del equipo ya que:

  • Dota de consistencia al trabajo del equipo.
  • Se crea código de mayor calidad que contendrá menos bugs.
  • Sirve para trasmitir conocimientos y reducir el bus-factor.
  • [inserte aquí su razón]

Todos estos aspectos son difíciles de medir de forma cuantitativa para convencer a un “manager”, en cualquier caso ojalá sólo fuera este factor el que complica el análisis de la velocidad de un equipo de desarrollo. Y si no que se lo pregunten a Michael Dubakov… que por cierto ¡no mete el pair-programming en su modelo! (WTF)

 

Conclusión: seguimos teniendo que creernos que el pair programming (en su justa medida) es más rápido… a la larga. Al menos hasta que alguien nos dé mejores datos que los nuestros y un modelo para aplicarlos.

Bienaventurados los que creen, porque ellos irán más rápido.

Libro de las bienaventuranzas del software.

« Siguientes entradas Recientes entradas »