This post is full of emotions, strong words, my own opinions. It is far from being politically correct in any dimension. If you know me, you know what I mean. You read this post on your own responsibility.
I struggled since Friday two weeks ago to actually get it in shape and post it. I have compressed a year long of frustrations and anger.
Friday, finally. When I was leaving office I was filled with anger, disappointment and this weird feeling of lost hope and faith in humanity. I am coder, by heart, and by accident I work with people.
On the way back home I was thinking about this post as a way for me to deal with all my frustration, being mainly driven by my interactions with other people. As I was passing tram stops I finally realized that there is something different which is a reason of my bad mood and what a surprise, the reason is different then I thought.
I think the way I was feeling that day is not only my problem, my dear angry, frustrated fellow coders, bytecode lovers, monad travellers, big data miners. As I travel through space and time, at conferences, code retreats, beer talks, JUGs and many other places I meet tired and frustrated coders. Frustrated for different reasons, constantly talking how codebases we work with suck, how stupid architects are (and yet majority of us wants to become one, to join this army of “codeless” monkeys, remember I work as architect at the moment 🙂 ), how we hate trendsetters at conferences, how technology X sucks big time, and Y is new cool, and will suck in a year from now, for sure. Man, I have never met so many frustrated people as I meet at software conferences, we are so sad drinking energy drinks, looking for next sticker to put on our laptop and talking in corridors that last year this conference was much better. Still looking for Big Next Thing(TM).
Fuuuck, stop it. Right now.
Yeah, actually I used F word, and you know what? You can stop reading, I will not force you to continue. Use your free will or relax and fuck it (oops again).
Conference sucks? Don’t go.
Technology sucks? Don’t use.
Codebase sucks? Change it or leave it.
Your manager is an asshole, who doesn’t understand software? Become one.
I was thinking about all the bad emotions in my life as code mangler and system’s destroyer and maybe, just maybe I have an idea why it is so. Look, we are creators, we turn null terminated arrays of characters into electrical impulses, which create motion in resistors, capacitor and transistors, this motion of electrons changes people lives, wakes up good and bad emotions, helps people meet, get married and divorce, buy new shit, sell old shit, travel, get lost and be found.
Yes, it is you my friend, who created this mess. As I said at JDD this year, We are Gods!!! We own this planet!!!
… and yet we are crowd, we are anonymous.
We are like a wannabe rockstars, still rehearsing at parents garage with this notion, that we will never actualy record an album and play gig for a crowded house.
I think this is hidden root cause of all evil.
How many times you have heard from your customer, “I saw your recent change to registration form, from the first look I knew it was you who coded it. That’s so much better then previous one” or “I think this pagination on orders page was probably coded by Tomasz, it must have been him”. Yes we are anonymous, we create stuff, but we don’t get direct recognition, our code doesn’t hang in art galleries so everyone can see it and be amazed (or maybe it just sooo bad). I miss this feeling of direct connection between my creation and people who see it. I am a man behind wall of text, and you know what? Somebody could write different sequence of characters and nobody would notice. Especially true for all back-end people, for whom character, black and white terminal is an ultimate form of human thoughts manifestation.
And it will be always this way. Nobody will notice if your code is good or bad, if its reactive or declarative or imperative. Nobody will notice your fancy lambdas, sexy tricks with communicating sequential processes, and how many microseconds you saved due to use of sun.misc.Unsafe. Nobody.
That’s not true. Fortunately or not there are other software developers in the world, who will understand you techno mumble bumble, your 3 letter acronyms and beautiful details of endofunctors, monoids, actors and such. It is just simple as that, stand up and go to meet up or conference. Don’t tell me you need approval or training budget, this is just your stupid excuse for not moving your ass of the chair. Meetups are for free. Conferences?
Become a speaker! Give something to get something back. Stop complaining. Do something. Are you afraid to speak in public? Seriously? Do you know that all people who do it are afraid every time they go on stage. I am freaking scared every time, doesn’t matter if this new or old material, I am scared.
“People will eat me alive, if I say something stupid”. Seriously? If they will be right, because you actually said something stupid, that’s good for ya. You learn something. If they were trolls or morons, ignore them. And yes I am talking to you mister, in stupid baseball hat with more stickers on your laptop then successful pull requests in your whole life. Don’t wander around in corridors during conferences with this Mr. Knowitall face expression. Do you think you could do better on stage? Talking to crowd about your passion? Feel warmly welcomed. But just stop complaining and shut up. Majority of us speaking at conferences don’t get paid for it, we do it because we love it, show some respect.
“I don’t have anything interesting to say, I am doing JEE code maintanance”. Seriously? That’s awesome. Tell me about it, share your tricks and techniques. Every project is different and unique in a way it was fucked during design or development stage (and yes we do design and development phase, shoot me).
Don’t want to talk about it? It is even better. Find something. Try it. Fail. And share.
We are crowd, we are anonymous.
That’s the essence of why there is so much tension between us and the world. I am not complaining, really. I am just trying to point out how hard it is to take pride of our work. Surrounded by deadlines, messy code, procedures, processes and approvals, “agile”, “lean”, “risk assessment”, “business value”, end year reviews, improvement programs. Oh yes, do you love these moments when somebody non technical tells you that you need to improve your coding skills. It is like eunuch telling you how to make love with your wife.
All we create is “just a code”. It couldn’t be so hard? How many times you have heard this?
Or my other all time favourite “I used be a coder, too”. Wow, how fucking scientific, can you tell me why you don’t code any more? Is there any particular reason your rights to code repository were revoked?
I choose “a way of code”. Long time ago, I had my ups and downs. But this is my choice. And if you made same decision you need to accept that you need to find other ways to be proud of your work. And your day job is not necessary the only place. Conferences, meetups, hackathon, finding other freaks like you.
Just do me one favour, stop complaining, criticizing and whining. If you choose “a way of code”, do something about it. Be full of respect for past generations, because the way you talk about old code today, will be the same way people will be talking about your code years from now. Be full of care about future generations, they will have to live with your legacy code. Be full of childish curiosity, embrace failures, be open, experiment and share. Because as I heard recently “sharing is caring”, not only about others, but also caring about yourself. Being proud of what you are doing is most rewarding thing in our life. Be proud of who you are, don’t accept mediocrity but don’t punish people for it. Maybe, just maybe they didn’t choose “a way of code” and that’s fine. That’s good. Don’t make people feel bad about (I know it is hard, trust me).
So if code is bad, change it, if your not happy with a conference talk, submit your own, if you think your manager is an ass hole, become one, for a moment, to see it , to feel it. Do anything, to be proud of who you are, to be proud of your work.