There is so much to choose in today’s software world even compared to 10 years ago. And it’s growing very fast, new libraries and languages pop up everyday. Should thing A be built from ground up or just use library X, Y or Z instead? What about programming language? Do I need to support this and that, etc.
I think the only way to make good choices is to have actual experience in said choice. But in the end, I think every choice is valid if one has right justification for it. And what right is comes down to one’s feeling, experience and company guides or culture. If one can find clear focus and zen of choosing then software development becomes much easier.
It’s hard or impossible to make right choices as in the end, you don’t know what you don’t know 🙂