I attended the 2019 New Crafts Conference and I wanted to share my experience with you. I only attended the last two days but it was a really great experience as usual 🙂
The first day started with a keynote from Ulrika Malmgren and she talked about the power of software developers. « Without the programmer, there is no software. Without the software, there is no company ». She did emphasis the fact Software Developers should be aware of their power, be responsible and use their power for good. This was an inspiring talk to start the conference with.
Afterwards there were different talks on different topics. You can find below my feedback/notes on some talks I really enjoyed.
Tests && Commit || Revert a.k.a TCR

Being a huge fan of all Tests Driven Implementation practices (TDD, BDD, …), I couldn’t go to New Crafts without attending the great talk from Xavier Detant.
TCR technique was invented by Oddmund Strømme, Lars Barlindhaug, and Ole Johannessen. Kent Beck wrote an article about it.
The principle is simple. Like TDD, start to write a test. Then write the code (it is important to write just the code needed to pass the tests). Then if the test is Green then it’s great, the code should be committed (pushed). But if the test fails then all the new code should be reverted and start over.
I hated the idea so I had to try it. Kent BECK

The idea could sound crazy and the fact to revert code could be frustrating. That’s why it’s important to try it in order to know if it’s suitable for you. I believe one important fact about TCR is developers will have to make tiny changes (baby step) for each commit like playing the Limbo Dance -:)
Talking with Tech Leads

This great talk from Patrick Kua was about how Tech Leads should behave and what it takes to be a great Tech Lead. He gave the following definition of a Tech Lead:
A Tech Lead is a software engineer, responsible for leading a development team, and responsible for the quality of its technical deliverables

According to Patrick, Tech Leads should spend 70 – 80% of their time leading technical topics & Teams (Aligning Team, Technical Vision, Technical Risk Management, Tech Debt Management, Growing Technical Knowledge). It is also important for Tech Leads to code with the team (At least 30% of their time). Besides, Tech Leads should learn how to delegate. You can find more inspiring thoughts in his book.

Non-Euclidean Software Delivery
This great talk from Anna Savarin was mainly about XP (Extrem Programming)
Style of Software Development focusing on application of programming techniques, clear communication and teamwork. The goal of XP is outstanding software development.
She shared a story about how her current team managed to very successfully deliver a software in 3 months using XP techniques.
Her team used Mob Programming very often. I believe Mob Programming is very important to share knowledge within a team and a great way to learn from each other. Her team used Continuous Integration & Delivery. They also used TDD/BDD for each development. I believe the important thing about using BDD is that it enables PO and software teams to work better. Indeed once a scenario is validated/implemented by PO, developers could implement reliable code. Besides TDD/BDD enables to write simple code without over-engineering.
Her experience reminds me one of my experiences. I juste have been working in a team for almost 3 years (as a Tech Lead) and we did use the same XP techniques and it felt quite nice. We really worked great as a team and always learned from each others.
Brutal refactoring, lying code, the Churn, and other emotional stories from Legacy Land
Legacy code is code without an owner
This also great talk 🙂 from Matthias Noback was mostly about Legacy code, how to work and avoid Legacy code.

Matthias shared some thoughts regarding why legacy occurs (Different developers with very different development styles, Bad management, Bad developers, …).
As a developper, we need to take some actions in order to avoid Legacy Code.
Here are some actions we should do as a developer:
- Write tests from the start
- Agree on a coding style
- Enforce a coding standard (I would say like TDD, BDD, …)
- Read books (This is my favorite, I strongly believe reading and practising are the best way to improve ourselves). You can find below, books he recommended.
- When working with Legacy Code:
- Add tests before implementing changes (Refactoring)
- Do NOT afraid to read Legacy Code. « Look your monster in the eyes » 🙂
- How did we get here? Make sure not to end up on the same situation
- Refactor only code that change often (I couldn’t agree with him more).
- I will add my personal idea. I believe using Mob Programming is great way to avoid/improve Legacy Code.

Churn vs Complexity
Matthias shared an interesting idea on what kind of files (classes, methods) we should focus on when we want to improve Legacy Code. (You find his article about this subject here).

The Churn is described as the change rate of a file in a project (number of commits). By using the Churn and the Complexity we can figure out which files (classes) we should focus on. Files that never change (like auto-generated files, common files,…) don’t need to be changed (refactor) at all. No need to refactor files for which the churn is very low. On the other hand we should really pay attention on files that change AND have higher complexity (represented by the ones above the green curve in the picture).
Conclusion
I really enjoyed the 2019 New Crafts conference for several reasons.
- Most of the talks were about programming techniques that I strongly believe are a great way to create well crafted softwares, to make sure developers are really working together, to make developers to really enjoy their job. As a Software Craftsman, I was really thrilled to find out talks were about TDD, BDD, DDD, TCR, XP (Pair Programming, a lot of Mob Programming,…) It’s a really great feeling to know that there are a lot of people out there who share the same values.
- I met some Craftsmen friends/ex coworkers and it’s good to know they always try to better themselves.
I’m really looking forward for the 2020 New Crafts Conference 🙂