The first weekend of the month of October 2019 took place Software Crafters Barcelona 2019, also known as SCBCN 2019. As a member of inLab FIB I had the opportunity to attend. There, I was able to share experiences with passionate and great craftsman of software development. Some of them have gone through the inLab Talent program, such as Pau Trepat, which was part of the organization of SCBCN 2019, and also in the previous SCBCN (2018) he delighted us with the talk Culture and stopper of engine changes which you can see on YouTube. There was also Joan Lopez de la Franca another ex-inLaber, which made a speech about DDD and Go, which I will summarize below. During various talks, I was side by side with Eduard Maura another Talent boy.
The lectures were divided into 4 tracks for 2 days where different conferences agreed time, some in Castilian and others in English were made. I'll just comment some of the talks that I attended.
How the right tools help implement the right architecture
In this talk, Carlos Villuendas told us about his personal experience to bring architecture into production. In particular, he focused on solving architectural problems that teams have been finding, and told us why they chose each solution.
One of the solutions was to prevent that the development teams could play with the configuration of software projects, creating a repository where all projects had the same configuration as a dependency. From this solution came an interesting debate between freedom of the team to try and innovate and the advantages of uniformity of configuration software repositories created emerged.
Engineering Chaos: Breaking things on purpose production
David Lluna explained us the beginnings of engineering chaos, telling the story of how Netflix began to create and use tools such as Chaos Monkey to check the resilience of their production systems in Amazon Web Service. A phrase that sums it all up would be: "To say that works on 'stage' is just as bad to say that it works locally".
To create experiments there are four steps to follow:
- Define a measurable steady state indicating normal behavior.
- Perform a hypothesis state that will continue with a control group and an experimental group.
- Introduce variables that produce errors in the system, such as disk failures, network, etc.
- Finally try to disprove the hypothesis seeking the difference between the steady state in the control group and the experimental group.
He also talked about how it was performing a postmortem without blame, to get to know which parts of the system have failed and seek ways to improve them.
Back to the basics: Modeling our domain
The third lecture I attended, Ferrer Javi González and Rafa Gomez Casas from CodelyTV explained us how we how to model our domain without going crazy with Domain Driven Design (DDD) and SOLID principles. Sometimes we need a simple solution that does not introduce an accidental complexity that does not really add value to solve a problem. We have different nuances code examples to solve some common problems when working DDD. I recommend watching his talks hanging in their YouTube channel.
Vincente Garcia Altés explained from his experience, the advantages and disadvantages of working with serverless, particularly with AWS Lambda. He said you cannot solve everything with serverless, but doing so helped the teams to focus on creating value, developing software product, delegating much of the work of managing infrastructure to AWS Lambda tool.
From chaos to Domain Driven Design in Go
Our well-known ex-inLaber Joan Lopez de la Franca, with Adrián Pérez told us a funny story of how to take a business idea, developed in Go, and how they were implemented gradually DDD. I found it very enlightening and instructive even for someone like me who does not know Go.
Software architecture and quality in a startup
A crack like Cristian Cotes, gave us a pill of wisdom, simplifying a complex issue as the quality of code and architecture. According to the maturation, the stage of a company to develop the code need not have the same quality. If we are in an initial phase where the goal is to validate a business idea, we want to validate it as soon as possible, spending the minimum money. At that stage, rapid and inexpensive prototyping can make the difference of a startup. Once validated the business model in the next phase, you have to find the time to ask whether improving the quality of your software or directly start with new, clean code, as you begin to take into account the costs maintenance and extensibility of your product. And in the final phase, when the company makes money, the quality of code and architecture is very important.
Data Visualization: A new art?
Maria Ballesteros explained the importance of communicating with images. He gave us some reference as Guide visual vocabulary Financial Times we can help you decide which graphics to use, depending on the types of data we have and what we want to tell. And also he referred to WTF Visualizations where we can find in a humorous context, a compilation of actual data visualizations, views on the Internet, television and newspapers.
Do not fear DDD: introducing it to your project
In the last talk I attended, the format was different. Oriol Saludes Y Alvaro GarciaThey showed, programming live, how to avoid being afraid to apply DDD, focusing on the part of entities, value objects, aggregates and repositories. They conducted in-situ different refactoring a code production, using Test Driven Development (TDD) and baby-steps. Talk highly recommended for anyone who wants to start in DDD with Java.
In short, the Crafter Software of Barcelona has been a place where I learned small pills of wisdom and experience of other colleagues that will be very useful to improve as a professional. I recommend attending such events whenever you can.
If you have been wanting to attend the talks in the coming months Autentia hangs up the various talks on their YouTube channel. Here's the link to a playlist of videos of Software Crafter Barcelona 2018