I'm curious if there's a way to accomplish those things without a single designated boss. For example, having coders taking turns every week or two being the person people go to for typical boss purposes. Of course some people just aren't good leaders or have no desire to be, so maybe some people can have a promoted status they get over time, allowing them to be in the "pool" of managers chosen on a biweekly basis.
There can be many factors to play around with. After everyone on a team has had the chance to be manager couple times, the team could vote for who should be the manager for the next month. Etc, etc. The idea is to still give a team the sense of control, rather than feeling that you're imposing a boss on them.
Rotating the boss would expose people to more advice. Like switching dance partners during a dance lesson the rate of learning would increase.
However, I think a boss is more like a person you go teach a dance workshop with that a person that participates in it. Maybe the intern can have a new mentor every week. But I see some obstacles doing this do experienced team members.
It is already hard to find people that are both an expert at the work and a great boss. Finding multiple bosses in a team seems hard.
Frequently your boss needs a long term view on your activities. Career planning, performance reviews, and performance improvement plans are multi-month affairs.
Coordinating with other bosses and team also happens via social capital. Having to deal with a new persons for all other teams every month might be hard.
There can be many factors to play around with. After everyone on a team has had the chance to be manager couple times, the team could vote for who should be the manager for the next month. Etc, etc. The idea is to still give a team the sense of control, rather than feeling that you're imposing a boss on them.