What makes a software successful especially when it is a public domain?
Actually it’s not how efficient your functions are and how good the code is. Yes you have to sweat a lot to write that perfect code. But success depends more on the feeling that users get when they use it.
At every moment they should feel that they are working with a well polished , well finished product. A lot of spit needs to go into polishing the software you write and hardly you will get it right in the first shot.
Its really a steep learning cuve.