What happens if we don’t do it? – 4 ways to speed teams up


I became Certified Scrum Master (CSM) on 2010. I took a CSM course at beautiful Oporto. My instructor was Mitch Lacey (https://www.mitchlacey.com/). Amazing instructor. If you can attend any of his courses, go ahead. On 2012, he published an amazing book about Scrum, I totally recommend, “The Scrum Field Guide: Practical Advice for Your First Year” (http://www.amazon.com/Scrum-Field-Guide-Addison-Wesley-Signature/dp/0133853624). So practical, so full of examples to understand how to properly apply Scrum and get most of it.

During the CSM training session, when talking about INVEST (https://en.wikipedia.org/wiki/INVEST_(mnemonic)) in your product backlog, value of User Stories and priorities he said, “the first question to ask yourself about a user story, task or process is what happens if we just don’t do it?”. Everyone laughed. Not doing something useless you were supposed to do, it’s a high productive activity.

The more I meet teams, project managers, developers, sysops, etc., the stronger my feeling is that we always try to improve things adding stuff not removing waste. More process, more abstraction, more code, more tools. My recommendation is that the best way to speed teams up is to remove useless or low value things. Let’s see some suggestions.

Continue reading

Hi @xing_bcn and @xing_de!


After leaving Atrápalo, it’s time to jump to a new challenge. As I explained, I need to get out of my confort zone and check other things that will make me learn new things. Some of you already know, but for the rest, the chosen company is Xing. So, I’m more than happy to announce that I’m the next B2B Head of Engineering at @xing. I’d like to share some thoughts about the reasons that took me here.

Continue reading

Adiós Atrápalo


Después de más de 2 años trabajando en Atrápalo, ha llegado el momento de partir a nuevos horizontes. Los que ya me conocéis un poco sabéis cómo soy: llegar, simplificar y marchar. Mis objetivos se han cumplido y es hora de ayudar a otros equipos. Después de estos dos años, Atrápalo es una compañía respetada técnicamente por la comunidad de Barcelona. En 2015, consiguió se le premiara por esa evolución.

Cada integrante del equipo técnico ha hecho un trabajo increíble adoptando las nuevas dinámicas y prácticas de trabajo, tanto en desarrollo, UX y Sistemas. Casi siempre, un equipo grande es una desventaja, normalmente es lento, pero me ha sorprendido cómo un equipo de casi 100 personas, aplicando Scrum, eXtreme Programming y otras buenas prácticas ha conseguido reducir deuda técnica muy rápidamente. Lo que me lleva a la frase que repito entre amiguetes: “There is no legacy code, just legacy teams”.

Continue reading

Working at the same time in a project and its dependencies: Composer and path type repository

With the Domain-Driven Design, Microservices and API explosion, I see more teams working in a base project, such as a Web, and integrating other private packages they develop in a different repository. For example, working on the Web and an API client for a external REST service at the same time.

For example, at @AtrapaloEng, our sales development team (checkout process, purchases, orders, payments, etc.) integrates different payment methods into the web so users, specially Latam ones, can be happier using their preferred payment methods. They create a repository for each of the new payment methods we support as a external package. Sometimes a developer in the team must work with different projects at the same time, the Web and the payment method in development.

In this scenario, one option is work on the payment package, tag, push, go to the base project and update dependencies with Composer. As you can see, it’s a bit slower, how we can improve this process? Composer to the rescue!

Continue reading

First tests with #PHP7 in production at @AtrapaloEng


On Monday, Badoo blogged about its migration to PHP7 (https://techblog.badoo.com/blog/2016/03/14/how-badoo-saved-one-million-dollars-switching-to-php7/). Those are great results! At @AtrapaloEng, we’re running already tests in production to perform the same step. We could have started some months before, but we’ve been struggling with the php-msgpack extension and its (un)support for PHP7. We hope to deploy PHP7 in all our server during this week but we would like to share with you what we have seen so far. What we have done is adding another FPM node with the same capabilities as the current ones running in production with PHP 5.6. The new node is getting the same amount of traffic as the other ones. No special configurations or tweaks such as Huge Pages, just PHP7 upgrade. Data after more than 24 hours running.
Continue reading

RESTGames – More than katas


Today, Christian (@theUniC) and I (@buenosvinos) would like to introduce you “REST Games“: Games based in REST Services for learning and practicing coding.

Its goal is to provide some coding challenges that go beyond katas. You will have to implement a small JSON REST API that will play a well known multiplayer game, such as battleship, connect-4, tic-tac-toe, etc. The best part comes when two mates develop the same JSON REST API and you can use our referees programs two make them play one against the other. Who will win?

Continue reading

Rendimiento con Domain Events, Proyecciones y principios de CQRS


Cuando desarrollamos una aplicación nueva, todo va muy rapidito. Hay poco tráfico, pocas queries y si hay alguna más “dura” usamos alguna cache como Memcached o Redis. Pero a medida que agregamos más funcionalidad a una página, el número de queries a base de datos u otras infraestructuras va creciendo. Hasta que sin saber cómo, haces 300 queries, y no es broma, en la ficha de algún producto.

El problema es que estamos acostumbrados a hacer muchas queries de lectura y muy pocas de escritura en estructuras bastante normalizadas. Eso escala mal en base a nueva funcionalidad. Un buen approach en busca del máximo rendimiento es la consistencia eventual, estructuras desnormalizadas y proyecciones.

Os dejo el video de la formación de @AtrapaloEng sobre cómo el uso de Eventos de Dominio y el uso de conceptos de CQRS nos pueden ayudar enormemente a mejorar el rendimiento de nuestras aplicaciones.

Continue reading

Setup your MacOS (or other OS) development team with Ansible


Imagine that a new developer joins your team, installing everything needed for developing, including the application being developed is not an easy o fast task. I’m sure you have a wiki process, a markdown file in your repo or something similar. For a normal PHP web application, there is so much to do: installing PHP, composer and global tools, npm and/or bower, mysql, redis, etc. or setting up you Docker/Vagrant environment if you choose an isolated environment.

I remember when GitHub released Boxen in 2012. A tool for managing Mac development boxes with love. It’s based in Puppet. The main idea is use Puppet for provisioning not remote machines or servers but you local Mac. Let’s see a silly idea about how to do it with Ansible.

Continue reading