Next step is of course to find understanding that users' reactions are based on numerous reasons, rather than originating from one source. Losing access to features previously found is one cause, but so is the lack of rational and balanced discussions explaining why the features were removed, and missing instructions on how to get similar functionality in Gnome 3, or the lack of tools to migrate old Gnome 2 applications to Gnome 3. To take a comparing example of Gnome2->Gnome3, lets look at Python 2->Python 3 and see what the Python Software Foundation did right.
#1: Features removed were announced years before they were removed, with clear instructions on how to migrate to better and improved features.
#2: 2to3 was invented, an automatic translator for source code from Python 2 to Python 3, to make it easy for developers to migrate over to new version.
#3: Any feature that was removed had clear documentation and discussion that explained why it was removed, and what users could do to move forward.
#4: New features were back-ported from Python 3 and made available in Python 2. This allowed users to test out things from the security and familiarity of Python 2, without getting tangled in all the changes at once in Python 3.
#5: Python 2 and Python 3 was/is developed in parallel, giving people plenty of glimpses (and warnings) of the future, and insight over what would be future safe activities.
Gnome 3 did none of these things. One could argue that there were practical reasons why, but not doing any of those things will hurt a project. At any rate, I have not seen Gnome 3 give any practical reasons why they did such an abrupt move from Gnome 2 to Gnome 3, beyond that they "had to".
(Written by a Gnome 3 user, on Gnome 3)