The danger of rebuilding instead of finishing
I easily get excited with new ideas. Especially those, that promises an elegant solution of my problems. In software development space nothing is impossible, and well crafted demo can convince me pretty fast. But reality has a completely different perspective on a shiny object perspective. And these moves of adopting „the latest and the greatest” has costs - direct and hidden.
Among direct costs these are: costs of experimenting (you don’t think it’s real, huh? Playing around with new tech is a great way to spend time!), costs of implementing and costs of learning. This might confuse you right now. Yet I believe techs can be implemented quite straightforward, without learning much in the beginning. Especially now. But the costs of learning comes later - when on Wednesday night customers can’t login. Or it’s Saturday morning and bunch of customers can’t access the portal. Many teams learn techs the hard way - by testing things in production.
New technologies, until learned and integrated into the team (of any scale) is also hard to test. Your team may not even understand what are the weak points, what can get affected and therefore - can’t focus on proper testing. This also leads to testing in production.
What are the hidden costs? These costs especially applies to indie builders, solo-builders, small teams. Everyone and every team that has no pressure from a business, a group of investors, market or customers. For smart engineers this often becomes a trap for years. It starts with „It’s not good enough”. Or maybe you have seen a new library or a service, that looks better than the existing. And without considering the real amount of effort and costs - we are rushing towards that new cool thing that changes everything.
Cycle starts again: implementing, learning, polishing, fixing. „Not good enough”, „2 more features must be added”. And then again something happens. The biggest danger here is: time to market. The product or service may never reach the market. So team/builder never actually tried to sell it and gather the feedback. The variation of this danger is getting late to the market. When there are other options present, when attention is taken and name has been established. Even worst when you know your product is better. But they acquired customers, while you’ve been captured by „best language” or „best library” dilemma.
And the last but not least. In long term this creates a closed loop. Putting an effort into the idea, delaying the release while maintaining own comfort of „polishing”, „improving” and „fixing”. Till the moment motivation is lost. After a few attempts lost motivation becomes a demotivation. Why would I even start? This is the huge cost of giving up on the potential many engineers might face.
Have you ever experienced perfectionism delays and how did you manage to get through it?