* It's a problem lots of programmers have (programmers always solve problems they themselves have first) * It's a problem that seems like it should be easy to solve * It's a problem that doesn't require a large team to bootstrap an MVP
So you get a lot of "version 0.1" type solutions, as people set own to scratch their own personal itches. But then once version 0.1 is out the door they start looking at other peoples' itches, discover that there's a bazillion little wrinkles and corner cases that make it hard to evolve a specialized tool into a more general-purpose one-size-fits-all-one, so they just settle for leaving their own tool as it is rather than trying to address all those corner cases to get it to a "version 1.0" level.