Normally, I think this isn’t the best idea. Putting effort towards a solved solution seems like a waste of time. Why go with the crowd? Development should be fun. Below are a few reasons why some deviate from the path.
Complexity can be a reason to do this. When you are trying to write code there are probably at least a dozen libraries that you can use to solve your problem. Any library can have the functionality you need and a lot more. As a developer I have asked myself the question, why learn this API? I can write a solution on my own before I finish learning this API. I think some of us lived through this once or twice. A great thing about development is this, you can write just about anything. However, it’s going to cost you.
Speaking of cost, cost can be another reason to restart an effort. For example, Microsoft’s Visual Studio has a few hundred dollar price tag. I can easily see someone saying, “That costs too much. I will write [fill in the blank] on my own.” Great packages have come from this line of thinking. The word Linux comes to mind.
Finally, the need to reinvent. I know, I am really ground breaking with this one. But sometimes, people feel they have to re-do what has been done. It’s not logical at all, but it happens. A non-logical epiphany inspires a new logical approach. Now that is irony.