A recommendation letter can be given by anyone who has monitored your work closely.
A professor, whom you worked with for your final or major project.
A professor, under whom you have taken the most classes with.
A manager whom you report to at work.
A peer or a professor, with whom you share a research paper as a co-author.
An alumni, who studied at the same university you are applying for and is in a distinguished position.
Generally, the higher level the person who is recommending you the better.
We suggest you do, if you trust the recommender.
It is not mandatory and the chances of not waiving your rights is not a bad idea.
Some people think it is unprofessional for various reasons.
Ultimately, it is a personal choice.
Ideally no. Let them speak their mind.
However, make it clear to them about the purpose of recommendation letter.
They may prefer to stress on your academic abilities or area of interest if you keep them aware.