It's a law here in Poland that everybody has to let the buses leaving a bus stop to enter the lane before them.
I think most people complaining about buses in this thread just live in a city where public transport isn't a priority so it barely works :/
The city buses I've seen in USA have 1 or 2 doors. It's already wrong - it makes the boarding time unnecessarily long. Then there's the tickets - drivers shouldn't be selling or checking the tickets. You should buy tickets in a ticket machine or on your smartphone. And they shouldn't be checked every time - it takes too long. Have a group of people who board random buses and check the tickets there while the bus is driving so as not to waste anybody's time.
Bus schedules and routes should be designed with randomness in mind. There should be a small buffer (1 minute is enough if boarding is quick) to zero the randomness on each bus stop. Most bus stops should be mandatory so that 3 consecutive bus stops without passangers don't wreck the whole schedule (and then it spreads to other buses because you have to wait for 5 minutes at a bus stop for your departure time and you block entrance for other buses' passangers which makes boarding longer).
If you just put an intercity bus (that can work with 1 door and driver selling the tickets) and use it as a city bus that stops every 1-5 minutes - it won't work.
City buses should be optimized for latency not throughput.