It might be obvious, but I am not sure.Should the analyst who interview the client, gather and analyse requirements then give an estimate, also specifies how many and with how much experience developers should be required to develop it?Maybe I'am not so sure on how I go about this allocation thing, maybe this is just not my work.
Should the analyst define the programmers and their seniority needed by the project?
project management;skills;requirements
If your organization isn't very big, then you won't have enough programmers to choose from and you should give the work to the programmer who is least busy.  They can tell you if an assignment is beyond their technical abilities or their ability to meet the artificial deadline you have probably set for them.If your organization is big enough that you have lots of programmers to choose from, then the programmers probably have a more or less formal management structure and you should leave the decision of who does what work to that management.  The team leads and seniors know who can do what and who is busy and who isn't.As for giving estimates, I think the days of analysts sitting between users and programmers and making all of the design and project management decisions have passed.  If you want the people doing the work and the people paying for the work to own the decisions you need to put them face to face and let them work together.  This is what Agile is supposed to be about.