Coder, programmer, developer, team leader if they were on the road.
Coder. A passenger on a bus. It is easy for him/her to complain about how car drivers are driving, what mistakes they make. Because coder knows everything. He is sitting on a bus and observes everyone. He/she is the smartest one. When coder is not on a bus he is a pedestrian. When he needs to cross the road, he is doing it right away, because he is right and all drivers around should stop immediately to let him cross the road.
Programmer. A driver of a small and agile car. It can accelerate, manoeuvre, and stop very fast. Programmers have more thing to worry about. Other cars, pedestrians, etc. Loves to complain about buses that only there to interrupt his awesome ride with its stops and all those passengers who also happen to be pedestrians crossing the road. Truck drivers are also annoying programmers because they are slow and big and also only there to be annoying our precious programmer.
Developer. A truck driver. Big truck, that has crazy inertia, limited view angle, a lot of blind spots. Has to predict the actions of other drivers and pedestrians. If pedestrian starts crossing the road far away, truck driver should slow down already, keep a distance from a sedan ahead of him. Because sedan would break very quickly in front of a pedestrian. The truck can’t stop that fast. A truck driver cannot afford to chat on the phone like all those above usually do.
Team leader. A bus driver. Not only his bus is super fat and slow and hard to navigate with all inertia. Like a truck driver, he needs to pay attention to other cars and pedestrians. He also has several dozens of coders aboard and his driving affects them as well. While they sit there and complain.