To be successful does software need to (check off what you think would matter):
* Make money directly
* Make money in-directly
* Be used by at least 1 user (not including dev + dev friends and family)
* Be alive and working in 6 months
* Be alive and working in 2 years
* Be alive and working in 10 years
* Simply ship so dev gets a positive yearly review
* Be bug free
* Only crash N% of the time (who cares just re-run it and don't do the bad thing)
* Quality / features don't matter as long as marketing is talking about it and people play with it so it looks successful.
* Simply exist, but be subsidized by some one or something so devs keep hacking on it even if no one uses it.
* Still be useful when there are zero devs working on it.