Reinventing the wheel is not always a bad thing, and sometimes it is even called for. If you are engaging in reinvention of some wheels, just ask yourself if you have a reason for doing it.
Good enough reasons:
- Self education
- “The existing thingy doesn’t quite do what I want”
- Creating an open source alternative
- Simplifying an existing idea
- Bringing “a lib for X” to a new language
- You find a particular thing enjoyable to write
Bad reasons:
- Ego at the expense of project progress
- Thinking it will win you an argument
- NIH syndrome (though there can valid reasons for NIH, too!)