Estimation should be done by those who are supposed to do the work. This is done by the Development Team.
The Development Team is the second role in Scrum (the first one was the Product Owner). There are 3 to 9 developers. “Developer” is a term referred to analysts, designers, programmers, testers, UI designers, and anyone else who has a part in the production of the solution.