This article assumes a specific intuitive notion of complexity as a difficulty to generate and/or assess the plausibility of models. Based on this intuitive understanding of complexity, it identifies two main causes of complexity, namely, radical openness and contextuality. The former is the idea that there are no natural systems. The modeler always needs to draw artificial boundaries around phenomena to generate feasible models. Contextuality is intimately connected to the requirement to simplify models and to leave out most aspects. Complexity occurs when contextuality and radical openness cannot be contained that is when it is not clear where the boundaries of the system are and which abstractions are the correct ones. This concept of complexity is illustrated using a number of example from evolution.