Following The Rules Vs. Acting Responsibly And With Passion.
If you have been a reader for this blog for any period of time; you probably know how much respect I have for Processes and Rules.
On one hand; I detest nine-to-five organizations with rules or policies for everything.
On the other hand however; when it comes to my own project; I spend countless hours tweaking my code; fixing the casing of my variable names; measuring lines-of-code-per-function; constantly looking the cyclomatic complexity of the functions; desperately trying to bring the complexity down and indulging in dozens of other painstaking exercises which might sound un-necessary to a young and budding developer.
I even push the idea of constantly following 'DRY' and 'YAGNI' --- sometimes a little too strongly to disappoint others.
Isn't all of what I do in my projects a classic illustration of me contradicting myself?
Am I not going against the very core thought-process of having little or no respect for rules?
While I go out there; comment and claim that contradictions do not exist; isn't my behavior on my projects a classic example me contracting my own thought-process of having very little respect for rules and the status-quo?
Of-course it is not.
Allow me; dear reader; to put my point across to you using a rather inspiring post written by Jurgen Appelo. Jurgen describes the idea of following rules using the example of driving. He explains:
I love driving my car. It’s a male thing, I suppose. It’s somewhere in my Y-chromosome. I embrace every opportunity I can find to hop in my car and start driving.
And (like every other male on the planet) I think I’m a good driver.
You see, I always watch the other cars around me on the road. When changing lanes I check all sides and mirrors. My distance to the cars in front of me is enough to allow for occasional extreme speed reduction.
I match my speed with the weather conditions. I play music in my car (loudly) but I don’t wear headphones. I don’t use my mobile phone while driving. And, as far as I can tell, I am the only person in the world who is able not to cross the lines that mark my lane while taking a curve to the left or the right.
I have adopted this behavior myself.
I might have copied some stuff from other people, but it was my choice to learn these rules and use them, always.
Jurgen illustrates the difference between following-the-rules and acting-responsibly. He explains:
Only thinking and talking about something doesn’t make it so. Just like making up official rules won’t turn your business into a success, traffic signs won’t make you a good driver.
In fact, I often don’t notice many of the signs.
It is my attitude and actual behavior on the road that makes all the difference.
Craftsmanship is something agile doesn’t introduce by itself. And just thinking and talking about it doesn’t give you successful projects.
Managers who want better results must acknowledge that they have to actively change the attitudes and behavior of their people. They must stimulate craftsmanship and discipline. Or else...
Or else accidents will happen.
They say changing people's behavior starts by giving them a good example. So let the world know that yesterday night, while many people were watching the Champions League Final, I myself was learning how to do test-driven development with Python.
I hope to have inspired you.
If you live in the same planet as I do; you will be given rules at every step and corner of your personal and professional life. Every time you are given a rule; you can do multiple things with it. You can follow it; question why; bend it; tweak it; work around it or sometimes even break it outright blatantly and shamelessly.
Remember; what you do with your rules will *not* decide anything --- your attitude; passion for what you do; wisdom; competence; ability-to-make-good-judgment-calls and responsible behavior will.
Go break the rules that don't make sense to you and make new ones that do.
If nothing makes sense fly free --- but flock responsibly.
I wish you good luck.