God, grant me the serenity to accept the things I cannot change,
The courage to change the things I can,
And wisdom to know the difference.
Reinhold Niebuhr (1892 – 1971)
Life is full of problems. Haven’t you noticed? You can spend your whole energy and creativity on fixing them.
Here are a few examples that you might encounter as a programmer:
- Your team does not test code
- You want to use Git, but everyone else just feels fine with SVN
- No department speaks to another one
- Scrum sucks
I had quite a hard time trying to fix all these things only a few years ago. It was quite impossible for me to “fix” these things in my team.
Do not try to change people
This is my advice: Do not try to change people.
It sounds simple. But it isn’t easy to do it.
Start with yourself
Here are a few examples:
Example 1: Everyone else uses SVN and you want to use GIT
What you can change today is use git-svn. It is not perfect, but you can commit as often as you like, squash commits and only push quality code into SVN.
You don’t have to ask anyone. Just do it. Be patient and wait. Someday, some other colleagues might use GIT. Tell them about git-svn. Before long, you all might use GIT.
Example 2: Your team does not test code
And what about you? Do you really test-drive or test code? No? Then why not start now. You don’t have to ask for permission. If you believe it’s what professionals do, then do it. Today.
If there is a point to testing, then someone might notice. If there is no point to testing, you might notice.
Example 3: The debarments do not speak to each other
Speak to another department. Invite a colleague that you don’t know to lunch. Are you willing to do this? Are you willing to do this weekly?
Are there any colleagues that might be willing to do it? Can they join you? Ask them :)
Is there a question in your daily work, that only another department can answer? So, why don’t you ask them?
This is something that you can do. Today.
Why is this more effective?
You can act immediately on these problems. You do not have to ask for permission to change yourself.
Why waste any energy on stuff that you cannot do? It is absurd to change, if you think about it. It shows a lack of trust into your fellow programmers. Without trust, why should they follow you? You are not testing your code as well. You are not talking to other departments — why should they?
The things that you cannot accept in others, are a mere reflection of you. You cannot accept them because you haven’t come to terms with yourself.
Try to change yourself.
You might not change the “situation” at all — but you will stop to be its victim. You will feel much better and, in the end you might be surprised, that the problem just dissolves over time.
After a few of these experiences, you might even notice, that the biggest problem might have been your perception of the “situation”.
This is for the brave
Do not forget that changing oneself is only for the brave. It hurts to see that all the bad things that we think “others” do, we might actually do ourselves.
So be gentle to yourself :)