Perfectionists and Optimalists
Tal Ben-Shahar, an Israeli teacher and writer in the areas of positive psychology and leadership, writes in his book, The Pursuit of Perfect that, unlike traditional psychology, which mostly focuses on neurosis, depression, and anxiety, positive psychology focuses on the conditions that lead people, organizations, and communities to flourish.
He also discusses two key types of individuals: the perfectionist and the optimalist. A perfectionist rejects reality, whether in the form of failure, painful emotions, or success. What this means is that he does not embrace reality and instead acts on what he believes should have happened. We cannot truly feel or know success if we embrace perfectionism, because doing so means that we will always be looking for the next goal to conquer while avoiding choices that may produce failure (which, ironically, could eventually lead to success). An optimalist on the other hand, accepts reality and failure and keeps moving forward.
Positive psychology differentiates between positive (optimal) and negative perfectionism. The perfectionist limits himself with the worry of failure, producing anxiety and procrastination. The optimalist, however, accepts failure, painful emotions, success, and reality; he lives the full scope of the human experience. Though the optimalist may fail, he accepts the reality of the situation and moves forward.
Let’s look to Plato for the intellectual roots of perfectionism.
According to Plato, the primary building blocks of reality are the forms, which are perfect archetypes and ideal models from which particular objects arise. Each object that we perceive in the illusory world is a projection of the perfect form that exists in the real world. Plato believed that it is possible to know reality only through philosophical contemplation not affected by our experiences, emotions, or what our senses tell us about the world. For Plato, the forms are primary, in that the world around us is derived from them.
The waterfall model assumes that the requirements, architecture, and design can be defined by the customer and the project team up front. For many of us, this assumption has been proven wrong over and over again. Think back to Plato who believed that it is possible to only know reality through philosophical contemplation that is not affected by our experiences; this is not possible in real life. Similarly, proponents of the waterfall model believe that it is possible to control and manage requirements by defining all the details up front. In doing so, however, they choose to ignore the reality that changes cannot be defined completely up front; we need to develop in an iterative and incremental manner to address this fact. This key aspect connects Plato’s teachings to the waterfall model of software development: ignoring and not observing reality.
Eventually, Aristotle broke away from Plato by preaching realism and became the father of optimalism. The optimalist recognizes and accepts that human nature has some constraints and believes that we need to accept the fact that we have instincts and inclinations that do not change easily. An optimalist takes into account the constraints of reality and works towards creating not the perfect life but the best possible one. This underlies the key principle that in agile, people make up the first order effect and process makes up the second order. As indicated earlier, proponents of the waterfall model favor the process over the people, whereas supporters of the agile model focus on the people. In the agile model, the process is used as an aid to the people, which is a more reality-centric point of view.