Long ago we have implemented a simple traffic model, Nagel-Schreckenberg model (see this post). This model demonstrates how small errors or perturbations to traffic flow could amplify and cause traffic jams.
While these errors are the reason for the jams, avoiding them is not that easy. Sometimes these errors are even useful as they help us drive safer. From individuals perspective it is obviously better to be overly cautious than overly bold. In this way you can avoid traffic accidents.
So how to fix traffic? It appears that obvious answers, such as building more roads or adding lanes, do not work that well. To understand why it is so and for some ideas on how to fix traffic we invite you to watch a video by SciShow.