I believe that there are two types of people in this world: those who adjust themselves to the world, and those who try to change the world. For example, when my wife and I come across one of our dogs sitting on the sofa, Abbie’s reaction is to reprimand herself for not having trained the dog properly (trying to change the world), while I regret not putting a blanket on the sofa to protect it from the dog’s inevitable presence (adjusting to the world).
I have noticed that certain jobs seem to attract only people who view the world in a particular way. For example, I have worked as a computer programmer and a systems administrator. Programmers are masters of their domains–they create software from nothing, and crave consistent processes and clean organization. In other words, they can determine and change their world at work, and they carry that attitude on in other aspects of life. Systems administrators, on the other hand, spend all day dealing with software bugs and user errors, and they are rarely in a position to dictate conditions to either the users or the people who make the software. So, their job consists almost completely of creating work-arounds cobbled together in less-than-ideal circumstances.
The self-segregation of world views can be an issue when the best way to solve a problem requires a different way of seeing things. I now work as a systems architect, and recently, I needed our programmers to write a program that could process partially-corrupted data files–and we weren’t sure exactly what the corruption would look like. The programmers saw that if they were to change the world, they would have to understand the world, and so they believed the project was impossible. The systems administrators, however, had real-world experience with data corruption, and were able to suggest a duct-taped solution that would handle the majority (but not all) of the data we received. The programmers viewed the resolution with disdain; they would prefer no solution to a partial one.
I do not mean, however, to suggest that my world view–adjusting to the world–is the “right” one. For in adjusting to the world, I lose my idealism, and my life loses structure. To pure programmers, I am ultimately a failure because I do not care about anything but the result, and my programming is not easy for other programmers to understand and maintain.
I believe that the key to building successful software, and also to building a successful life, is to use people with both world views in a large-scale version of the serenity prayer: let us change the world when we can, let us adjust to it when we cannot, and let us listen to each other to know the difference.