At my new company the common practice is to invite the Product Owner and any interested stakeholders to the end of sprint retrospective. When I first heard this it surprised me as I've always believed that the retrospective should only be comprised of members of the development team. The reason for that being that the team may not be comfortable discussing some things with those outside of the team. It's essentially a safe place to discuss issues. As a ScrumMaster, the only times I've allowed managers, product owners etc in is if they are also members of the dev team. That said if a team is truly happy with others being there and vote to include them, who am I to say no.
When I brought this up with my manager, his counter point was about transparency. If the team feels that they need a safe space then there's something wrong.
I can definitely appreciate that as I always try to surface conflict and promote open discussion within the dev team. I'm also a great believer that transparency is crucial. Talking about issues behind the PO's back goes against what I'm trying to do with the team. That said having the PO at the retrospective can drive conversation underground when there is conflict.
What are your thoughts on the subject? Do you include people from outside the team in your retrospectives? What about transparency?