Socialism will always fail because Humans are unable to collectively put the goodwill of the society above their own desires. The root idea in socialism is envy, the group as a whole will always envy that which others have, the problem is you can only expropriate material things where as other stuff like beauty, intelligence and athletic ability can not be taken away and still cause a point of envy among those who do not have it.
Humans are also lazy animals and we try our best to do things as easily possible and why we continue to improve on things we already can do to make them even easier (this is not a flaw). The problem with that is, if you give 100 people the choice to sit on their ass and do nothing while getting an equal share of the reward or work their ass off to feed and provide for the ones who won’t work you will likely see a 9:1 ratio of people who will do nothing which is what causes the system to fail.