A few weeks ago I experienced something interesting about legacy code in the office. One was really upset by the fact that the legacy code base he has to work with makes it much harder to make new changes. It does not matter what the exact situation was but this inspired me to write this post.
I see a parallel between life and programming. Of course I do because I am a programmer. Everyone from every profession would compare the world to their profession. This statement is maybe a cliche but the idea is much more interesting when you compare actual problems between the two contexts. The same skills are required to resolve legacy code issues as the skills required to move your life from A to B. You have to make smalls steps and do those steps constantly.
When someone says “this is our code and we cannot do anything about it” it is exactly the same attitude you experience from people who are constantly waiting for others to solve their problems and who always blame others for their problem. This is of course a dead end. In most of the situation you are the one who makes things happen. Lets change things. Make it a little better. If you think that you cannot do it then you gonna end up in the exact same situation over and over again. For some people this can be comfortable just like prison. You know the rules. You may not like them but you know them and this gives you confidence. Once you have to leave your comfort zone you find yourself in a new world with new rules that you may not understand on the first day. Just like Brooks Hatlen.
To go forward on this analogy let’s define what is a prison. My understanding is that a prison is just a place where rules are more restricted than you got used to. This is why it is a punishment for most of us. If you would born in a prison you may not realize that this is actually a prison. If this definition is correct then the actual free world is a prison too, only the rules are more flexible and the possibilities expanded. Real world supports this idea because humanity as a whole always try to expand our world to break from the current prison. Which is the current level of development. When you have to deal with legacy code base your current level of development is well under the possibilities. When you cannot make a change that means the rules are too restrictive at the moment. In a real prison your best bet in this situation is to sit until they let you go but fortunately you can freely break out from the legacy code prison and bend your own reality to expand your possibilities.
That is what we do. We expand the possibilities, we change the rules, we alter reality and there are no prison guards only yourself. You should not run away but face the problem and solve it.