Systems thinking is an approach to problem solving that views problems as parts of an overall system, rather than reacting to individual parts or events in isolation. It involves understanding the linkages, relationships and interactions between system components. Some key aspects of systems thinking include viewing a system as self-organizing, constantly changing, tightly linked, governed by feedback, nonlinear, history dependent, counterintuitive and resistant to change. Systems thinking helps provide context, anticipate consequences of changes, and identify points of control within the overall system.