Software is successful is useful software. Software is primarily successful if it meets the users' needs. Period. Anything else is bonus material. If a software tool has everything else but lack usefulness then it has failed.
There are two type of users: consumption users and production users.
Consumption users engage with the software's public user interface to meet their needs. Given that the universe of the user's needs are unknown at creation time then it is expected that the initial incarnation of the tool will evolve with time.
Production users engage the software's application programming interface (API). Similarly, these evolve with time.