One of the advantages of failing early is that you get to learn early, and thus you don't have to repeat the same mistake again. But if you think about it, this does not apply only for the mistakes, but the entire process of learning and doing stuff. Especially in Tech, we don't have to learn it from the scratch if we encounter the similar problem again.
I have been working on a project which deals with CICD automation. It is a microservice architecture and building and deploying newer features is a task. Or so I thought when I deployed the first microservice.
I have to admit, the entire process of automating the build in a container image and deploying the required number of pods on K8s cluster for the first microservice, was daunting. It took a complete month for me to do this successfully.
But when this was done, I was relieved. I felt like now there is no stopping to automate the entire product's CICD here onwards. All I had to do is to follow the pattern I had learnt and established for the first one. It would then take me a couple of days to onboard any new microservice.
And it is true for everything we do. Suppose we are building the first product of our life, and we just implemented the user management module to suit our needs. If we decide to create more products after this, we would not spend time to reiterate the process of building user management module from scratch. Right?