Some of the conversation that happened last night at the Hudson Valley Programmers gathering made me think about reinvention. There was a fundamental search engine problem that a few people were working with, which seemed like a solved problem, with good open source tools around it. When I asked the question, there was a lot of dismissal on those existing solutions as too slow. That could be true. It could also be that the existing solutions solve a lot of problems that they don’t realize they’ve got to solve yet. Honestly, I don’t know.
It raise and interesting general question, when is it appropriate to reinvent a solution to a solved problem? The answer isn’t never, that leads to staleness in progress, as the solutions of old sometimes aren’t appropriate any more. But the answer isn’t always either, because that’s just navel gazing with no forward progress. My experiences with Drupal have made me lean a little more towards less reinvention, if only because my time is precious, and if I’m going to do anything interesting in my hobby time I’ve got to build on top of the shoulders of giants. After building a dozen password reset systems over the years, I don’t really find that that interesting.