You learn from your mistakes, and if you share them, you grow.
In our society in general and in technology in particular, we have the strange habit of publishing success stories (opinion of the writer, wrongly called successful case) and few, if any, occasions where mistakes are shared (opinion of the writer, wrongly called failure).
As you might be suspecting below I am going to share some mistakes, which I learned from them and even more how much I grew and understood about the industry by sharing them.
Lesson 1:
Write a step-by-step, share it, validate and re-validate it before executing anything
My first productive development was in 2012 (?) approximately, it was a website for a company that needed to publish its product catalog, I list technologies to have some context:
- digitalocean, just released, in addition to the droplets, I don’t know how many more products I had in my portfolio
- angular js (angular 1)
- I think nodeJS for the backend
This development was done with one of the people I respect and admire the most, Victor De Grandis -Vitor-.
My experience configuring servers was null, I had the delirious idea of telling Vitor:
_my friend, can I set up the server, and then you try to break it?
Then I started to make several configurations, among them, I started to play with the ports, until I proudly told him:
Vitor, try to see what happens.
After a while I receive a message,
my friend, could it be that you closed port 22?
Beautiful, I left the house, locked the door and threw the key into a pond.
As the digitalocean people are prepared for people like this writer, they have a feature that if accessed from the web (I have no idea how to solve it from behind) you can run a terminal in the browser and access the droplet.
I reconfigured the ports, and the rest is history.
Lesson 2:
Document knowledge, no matter how trivial we consider it, and invite others to do the same. In addition to avoiding several “knowledge transfer” meetings, we will save several arrobas, remind you anything?
@fulanito may be able to help you
In another team that I had the fortune to work in, small in number of people but from which I learned a lot, a lot from each one of them, unfortunately the adventure was very short in time.
What I did find very strange as one by one people were leaving the team is that we were losing a lot of knowledge to the point of stopping engines (literally) and going weeks without delivering features to production because we had to sit down and figure out how to leave that local line of code and expose it to the internet.
What mistakes did I detect and what did I learn?
Document knowledge, however trivial we may consider it, document it.
Or perhaps, and I invite you to think for a few seconds, did you find yourself one or more times holding “knowledge transfer” meetings because someone was leaving the team?
Or was it you who was leaving him?
Lesson 3:
Job promotions should not be the only or the main objective, but the guide should be to share and acquire knowledge.
Lesson 3 bis:
Thinking and testing before implementing anything is a fundamental guide to understanding the behavior of our systems or the domain knowledge we have so far. Always, and let’s repeat, always, it is a gain in time.
Finally, and in another place I worked, I met one of the best problem solvers, Juan Moreno, what is better for me, simple solutions to complex problems.
After this small parenthesis and dedication to the one who today is one of my sources of consultation, reference and mentor, I am going to try to explain teaching number 3 and 3 bis.
In pre-pandemic times, I used to - a habit I still have from afar - start early, having a couple of hours “alone” allows me to focus and prioritize as much as possible the things I want to do and have committed to do.
One of those mornings and as a consequence of a functionality that we were developing in the team, the leader arrived a little angry (to be kind) and grabbed the first ones he found from the team, thus being able to vent his anger because he had “looked bad” to his superiors because of all the casuistry there was a case that broke.
Famous Take a breath and after a few minutes I joined him alone, I asked him a question:
how many people are involved in this functionality?
He understood with the question that he should have waited and told the whole team responsible what had happened and not grabbed the first people who crossed his path.
Finally, I told him that I understood but did not share his anger or how he had handled it.
I want to clarify that my intention is not to judge, but to share that I learned from that mistake, again:
Job promotions should not be the only or main goal, you run the risk of being under enormous pressure not to rise to the occasion. Sharing and acquiring knowledge should be the guide.
Thinking and testing before implementing anything is the fundamental guide to understanding the behavior of our systems or the domain knowledge we have so far. Always, and let’s repeat, always, it is a gain in time.
To conclude, I understand that I will continue to make mistakes and share the experience they left me with, that does not make me any worse or better than anyone else.
I am convinced that it is a healthy way of going through life where the “normal” thing to do is to be “successful” or as I like to make parallels with soccer, “playing for the stands”, but at the end of the day it is only an appearance.
Thank you for reading! 👋🏽