Ciao!
I had a wonderful life.
I’ve been privileged not to have many obstacles in between me and my curiosity. I studied at a renowned university, spent one year in South America, and was spared most hardships.
Looking back, I had an even bigger privilege: I met kind people who shared their inspiration with me.
I still remember the secretary on my campus in Santiago de Chile, who always greeted me with positive vibes. Or the clerk at a supermarket in Poland, who helped me learn Polish by pointing at things and spelling their names. In Jordan, on the first day of travel, a man hugged me and taught me a few words in Arabic, and told the wonders of his country.
In my professional career, several people took me under their wings and mentored me. A designer encouraged me to develop my artistic side, a tester shared the secrets of their trade, and a programmer guided me throughout my first ever professional project.
Just because I was trying, they gifted me with their wisdom without asking for anything in return.
I won’t name all of them. It’s too many to compile a list. But I’ll cite one, Romeu.
We first met at DDD Europe four years ago. Since then, I learned from him about property-based testing, power dynamics in society, and a ton more. I also hated him when he played the client’s role while facilitating his Kebab Kata.
Romeu is a brilliant and kind human being. You should get in touch with him.
The seed he planted in my mind four years ago produced this:
Make Your Tests Fail Randomly (and Profit) — Embracing the inversion principle with legacy code: don't try to make it perfect; just make it less awful for the next round of changes.
Cedric Chin (Commoncog) on Tacit Knowledge and Learning from Experts by Todd Nief — Cedric Chin has researched and written extensively about the academic literature on skill acquisition and expertise—and has made these concepts extremely practical for knowledge workers looking to improve their career skills at his Commonplace blog.
(Riccardo: Software development is all about skill acquisition and tacit knowledge. Plus, this made me discover the Naturalistic Decision Making Podcast: adieu 15 hours of my time!)
Zippers—Learn You a Haskell for Great Good! by Miran Lipovaca — One thing we can do is to remember a path from the root of the tree to the element that we want to change. We could say, take this tree, go left, go right and then left again and change the element that's there. While this works, it can be inefficient. If we want to later change an element that's near the element that we previously changed, we have to walk all the way from the root of the tree to our element again!
In this chapter, we'll see how we can take some data structure and focus on a part of it in a way that makes changing its elements easy and walking around it efficient. Nice!
(Riccardo: Zippers are cool! If the link does not work, please use http://learnyouahaskell.com/zippers)
Domain Invariants & Property-Based Testing for the Masses by Romeu Moura — Domain invariants are all around you. In every business rule your domain expert ever tried to give you. You should use them to guide your design.
You should also be testing them! Not only an example representing them: but testing the invariant itself.
You can do them with property-based tests (PBTs). If you think you cannot do PBTs on legacy codebases (or outside FP) this talk should show you otherwise.
Let’s also use Property-based tests to reduce test-debt. Create smaller, fewer tests that: test more, are more readable & document the problem. Challenge your understanding of the domain and communication with domain experts.
(Riccardo: Ever watched Inception? This is where, four years ago, Romeu planted the idea for this week's article.)
Thanks from the bottom of my heart to all the people who enabled me. It makes me a bit sad this won’t reach all of you. But I promise one thing.
I treasure your teachings, and I’m trying to pay them forward.
Consider writing a thank you note to one of your teachers and share something you know to a potential student. It will make you both feel damn good!