You can make a case for human beings, at least that the in the most fundamental way, that we inhabit a space that comprises of chaos and order. Dr Peterson makes the analogy that chaos and order are like explored territory and unexplored territory. So for developers, explored territory would be that which we are so familiar that it is almost like it has become ingrained into our set of skills, and conversely unexplored territory would be that which we are so unfamiliar with, that the very idea of trying to reason about it gives us anxiety because we do not know anything about it. To bring this forward, order would be a language, or framework, or a way of getting things done that is all too familiar with you. In the developer context, getting things done could be anything from whatever process you use to manage the project, all the way down to what language you are going to write the project in. So if you are a C# .NET developer like me who is well versed in leveraging Kanban, completing a slew of projects using the same language, and the same framework, and the same process, you might find yourself at home and at ease. Why? Because it is comfortable, and that is what you get when you live in order. The double-edged sword with doing everything using the same tools, is that it might get boring, and as Dr Peterson puts it, (and I para-phrase) “If you constantly live in order you will get bored, however if you constantly live in chaos, you will be constantly terrified”. Added to that is living in constant order can be detrimental to your growth as a human being and a developer, it can lead to depression. Why? Because living in order is routine, it is bland, you have conquered it already, there is no excitement in that space. Living in constant order also can guarantee that your growth as a developer and a human being will cease. Growth comes from exploring the unknown to you. However, living in unexplored territory too much can leave you terrified, paralyzed, and constantly anxious. Have you ever heard of the term ‘Analysis Paralysis’? It is when you are trying to solve something, be it an architectural or engineering problem, and the problem poses questions so foreign to your level of comprehension, that the act of trying to come up with a solution to that problem leaves you in a constant loop of exploration, thus leading to an ever decreasing sense of confidence in your ability. This constant looping is paralyzing, it is terrifying, and worst of all, if you encounter it in your professional capacity, it can be perceived from your peers as you being not adequate to solve the problem. If this happens enough times it can leave a developer feeling woefully inadequate and in a state of perpetual anxiety.
So what is the solution? Well we don’t want to live in constant order because that is boring and it leads to depression, it leads to monotonous growth which is practically none. At the same token we do not want to live in constant chaos because it is unfamiliar territory, unfamiliar territory can leave you paralyzed in defeat constantly because you’re dealing with that which you do not know. This leads to a feeling of inadequacy because you cannot perform, and a feeling of constant anxiety because you are fearing that which is unknown. The solution is to live right slap bang in the middle of chaos and order, on the edge. On the edge of chaos and order is where we can find meaning. Sustainable growth, a feeling of achievement and a sense of control. All these things are required to feel adequate (because you are productive), excited (because the future challenges are reasonable) and happy (because you have found meaning right at the meeting point of order and chaos.
The Daoists understood this concept of chaos and order with yin & yang. Roughly translated to bright and dark. It makes sense that to live on the edge between chaos and order one must plant one foot in chaos and the other foot into order. Use one half of yourself as a foundation and a place of safety, whilst using your other half to forge into the unknown.
So finally let me explain why I think developers are in a very messy psychological state. Technology is an exponentially expanding domain, even more specifically the set of tools, theories, methods, and technologies to do software development is expanding at a rate not comprehensible by anybody in the realm of software development. All of my peers and colleagues know this. So even if you’re the most studious developer who keeps on wanting to further herself and keeps on practicing and learning, you will still never explore all of the unexplored. You wont even explore all of the unexplored that you thought was reasonable to even explore. So to go back to the chaos and order analogy, our domain of order is tiny, insignificant, compared to the vast deep dark set of domains that exist in the realm of chaos. Not only is this true, but the domain of chaos is constantly growing. it is growing exponentially. So the keen eyed developer may notice that the pool that they’re swimming in is getting deeper and deeper and darker. This is what leads developers into a deep dark place psychologically, and I am no different, I feel this now as I write this blog post. So for us I am afraid to say that there might not be a solution actually, rather that we should just be pragmatic about this and take things on to the best of our ability. We will never know it all, we will never experience it all, so long as we do not stay stagnant in our pursuit of knowledge, we will have a sense growth with our set skills.
There are a slew of books out there which sort of encourage you to tread further into the realm of chaos (but within reason). One such book is “The Pragmatic Programmer” by Andrew Hunt and David Thomas reminded me of one of Uncle Bob’s pretty cool simple way to live: “Learn at least one new language every year”. I would even further go on to try and learn how to think differently as well because that is what learning different programming languages can lead to, a different way of thinking. If you think about it, learning a new language every year is “reducing” the size of whatever is unfamiliar to you and is increasing the size of what is familiar to you, so it is a win-win situation.