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 notice? You can spent you're 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 deparments 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 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 dont you not ask them?
This is something that you can do. Today.
Why is this more effective?
You can act now on these problems now.
You do not have to ask for permission to change yourself.
Why waste any energy on stuff that you can not do? It is absurd to change, if you think about it. It shows a lack of trust into your fellow programmers and why should they follow you? You are not doing it yourself?
The things that you can not accept in others, are a mere reflection of you. You can not 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 the victim. You will feel much better and in the end you might be surprised, that the problem just disolves over time.
After a few of these experiences you might even notice, that the biggest problem might have been you're perception of the "situation".
This is for the brave
Do not forget that changing oneself is only for the brave. It hurt's to see that all the bad things that we think "others" do, we do on our own.
Forgive yourself and through forgiving yourself, come to terms with others.
Beautiful isn't it?