October 27, 2023

Recap of Software Crafters Barcelona 2023: things I learned and loved

I had the opportunity to attend the Software Crafters Barcelona event last weekend. It was the 10th edition but for me, it was my first in-person tech event and I've collected some notes, learnings, and thoughts that I wanted to share about this experience.


Junior 2.0

The event started on Friday with an open-space discussion. I joined a group exchanging views on a subject proposed by Concha Asensio: the challenges of transitioning to tech with years of experience in another field, which is my current situation.

The conversation went around how to manage expectations being a junior again and having an impact that is not the same that you used to have in your previous field. How is it possible in this scenario to leverage all your existing skills to provide real value to your team?

Some highlights from this conversation:

  • Strive for a safe space where open conversations with managers and mentors can happen. It is essential to distinguishing between expectations from your manager and team and the ones that you are setting for yourself.
  • Be proactive and look for any opportunity for your existing skills from other fields to be applied.
  • Stay open to sharing what you know.

Ideation to integration

This was a workshop session by Daniel Phillips, Head of Engineering at Trainline. He shared with us their approach to delivering high-quality software, from the idea to the merge of a pull request.

We discussed the importance of thinking beyond coding to adopt a problem-solving-focused approach, embracing collaboration, and the importance of setting from the beginning on the same page with all the team members, in which documentation plays a key role.

One of the things Daniel highlighted during the workshop was the importance of having clear acceptance criteria defined upfront to start working on a specific requirement. Well-defined acceptance criteria will provide clear guidelines to developers but also will align the expectations and smooth communication among the team because it will reduce misinterpretations of the requirements. It will also contribute to having a clear basis to test against, as it will be clear when a product or feature works as expected.

How to write a clear aceptance criteria. GIVEN: description of some initial context to an event to occur. Provide the necessary information to understand the scenario. WHEN: An event or action triggering the behavior described in the user story. Use a verb to describe the main action. No "and" clauses, keep it to one action!. THEN: Expected outcome. Describe observable changes applied after the action.

Pair programming

On Sunday, I joined a session about pair programming hosted by Elena Navarro Molina and Josep Ma Rocamona. Even though I could only attend the final part of the session, it was great to learn more about the different roles involved, benefits, and common anti-patterns that can get in the way and prevent us from getting the most out of our pairing sessions.

Defining these roles thoughtfully has been particularly helpful for me to become aware of my tendencies and approach pair programming more effectively. Pairing sessions have been a great source of learning for me, and the workshop provided useful strategies to better prepare for and have more productive and enjoyable pair sessions.

Navigator: - observer position,  - think about how to solve a big scale problem, possible next steps and obstacles,  - give directions, - review code. Driver: - type position, - write the cod eto solve one little problem at time, - talk about what is doing. Dos: set a clear objective for the session, wait before interrupting/ask for time if needed, swap roles, share feedback frecuently. Don'ts: keyboard hogging: take the keyboard and start writing, passive pairing: don't apport actively to the session, distractions: not being present, pair affinity: pairing always and only with the same person.

Attending the Software Crafters Barcelona event was an amazing experience. The atmosphere was welcoming and inclusive, making it a great opportunity to learn and connect with other professionals in the tech industry.

If you are a newcomer to the field, attending an in-person event is an excellent opportunity to learn new things and expand your network. During the event, I had the chance to listen to insightful talks, ask questions to experienced engineers, connect with new people, and share experiences.

Thanks for reading and stay tuned for more insights from other talks coming soon.