I am a firm advocate of Paul Feyerabend regarding his philosophy of science and I think it also applies in IT.
To illustrate, individuals are like atoms. You are free to do what you want, when, where, how and why. It is anything goes. You are free to tinker, learn, play, work and teach anywhere, anytime. You are free to experiment and learn on demand. You can do what you want as long as there are no constraints.
This is the first part of an African proverb:
If you want to go fast, go alone.
The trouble appears when it’s time to go far.
As the continuation of the above-mentioned saying,
If you want to go far, go together.
This is the time when you have a team, a community, organization or whatnot. The trouble is not with the team or community.
The enemy of community is politics.
Whether you work in a team engaged in commerce or in an open-source community, there is always going to be politics.
You can call them trolls, bullies, dictators, autocrats. You can call them all you want.
But the fact of the matter is, we all live in parallel universes as far as your viewpoints are concerned.
If you are the top boss, the buck stops with you. If you don’t like the boss, be your own boss.
The point of all these is twofold and I quote Steve Jobs and Zed Shaw.
Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of other’s opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition.
What I discovered after this journey of learning is that it’s not the languages that matter but what you do with them. Actually, I always knew that, but I’d get distracted by the languages and forget it periodically. Now I never forget it, and neither should you.
Which programming language you learn and use doesn’t matter. Do not get sucked into the religion surrounding programming languages as that will only blind you to their true purpose of being your tool for doing interesting things.
Which brings us to my final point:
Bring your own methodology.
This is the time when the IT industry needs to shed the bad parts:
Agile methodologies, ITIL, UML, RPC, BPML, BPMN, OMG and all the legacies of class-based OOP.
Instead, we need to realize that software is an art and engineering at the same time.
We need to discard the treatment of software developers like those in assembly line.
You cannot micro-manage developers because software development is creative engineering (aha, a new buzzword?).
You cannot model reality in terms of classes.
You cannot program distributed software if you don’t know its fallacies.
You cannot transform drawings into software. Graphs are useful but only as mental models. Who believes in software alchemy?
Does this quote ring a bell?
We are tired of being told we’re autistic idiots who need to be manipulated to work in a Forced Pair Programming chain gang without any time to be creative because none of the 10 managers on the project can do… Programming.
So what does everyone in the IT industry need to realize?
It is anything goes.
What does it mean?
- bring your own kernel
- bring your own devices
- bring your own programming languages
- bring your own libraries
- bring your own frameworks
- bring your own methodology
- bring your own learning pace
- bring your own self-realization
- bring your own understanding of the problem domain
Because in the end, if it backfires, then it will dawn on you what are the pros and cons (the trade-offs).
And then, you and only you will determine if something matters or not in the future.
If you belong to a community, you belong to a certain consensus. If not, it is anything goes.
We are no longer like children, tossed here and there by waves and carried about by every wind of doctrine, by the trickery of men, by craftiness in deceitful scheming.