It is no secret that I fired my brother shortly after I hired him. And I dismissed him for two reasons. First, he was not a good programmer due to inexperience. Secondly, as a young company, I could not afford to have my brother learn under my dime.
I think my brother took this event personally to heart, and he worked hard to prove that he can be a great programmer. And grow, he did. He left Singapore today to work for Amazon AWS as a software engineer. He does not even have a degree. I am proud of my little brother Max.
My brother is yet another data point in my personal belief that people need to fail.
The same way, my entrepreneurial spirit was sharpened after I was arrested for computer crimes when I was 17.
The same way I clap for my baby boy when he falls, so he learns to pick himself up.
Alone, fast; Together, far.
My CTO has been repeating the same mistakes I did, even as the development team has been growing. He is still coding a lot. Instead, he should be writing more specs and performing more code reviews.
Just a few days ago, I told him to code less and focused on leading the team. He argued that he might as well do it himself since it takes a long time to write detailed specifications. And that is precisely the problem.
While it might be slow(er) right from the get-go, imparting knowledge with detailed specifications forces the team to get their hands dirty. Eventually, everyone will gain experienced, and the average pace will recover and compensate for the slow start.
Alone, he can go fast. But together, we can go the mile.
Letting them fail
This was not intuitive to me, and I only learned this in my 30s.
I let my staff fail so that they can learn.
When they apply for last-minute leaves, I reprimand them.
When we go out for a sales meeting, I have them speak even if I know the product better.
Without failures, how will they learn?