Complexity based estimations are so abstract as to be useless.
I honestly haven't found a good way of estimating, in my many years of working in software teams.
The best seems to be: set a reasonable "deadline" that seems achievable, agreed with the team, and work towards that. At least that gives everyone a goal, a focus, and a sense of "cutting your coat according to your cloth".