Swimming against tides
I want to share some ideas and thoughts on a recent post made by Yegor Bugayenko, the post titled “EO the Career Killer”.
In it, Yegor goes over a couple of interesting points surrounding the fact that studying Elegant Objects (EO) can “hurt” people, for example, folks who study it won’t get a lot of job offers, or they might ruin their reputation, or get stuck in their careers and not find any interesting projects, and that after a while they might even risk being considered members of a sect.
Side-note: for those of you reading that don’t know what EO is, you can think of it as a set of ideas for object-oriented programming that in practice are not in the same direction of what the industry might consider standard. He wrote two books on the subject, and through the years has gathered quite a meaningful community of people who work on open-source libraries all around the ideas of Elegant Objects, and a few other ideas he shares in his blog posts or other books.
At one point in my career, I was a very active member of the EO community (example), before deciding to invest my personal time and energy on Software Testing (which I’m more passionate about), but I would like to share some things because I think they will add some outside perspective into Yegor’s post. And I want to do that going over 4 different topics, 2 of them positive, and 2 of them negative:
1) The Value in going against “industry standards”
When you’re a junior Tester or junior Developer you’re encouraged to follow whatever the “industry” gurus have to say. It makes sense, you’re a rookie so you don’t know any better, and if we’re honest there’s a lot of folks out there that have a lot of pearls and treasures that we can learn from. The problem with this is, and I’ve learned it through personal experience: going down the road most traveled isn’t necessarily optimal for your growth as a person or a professional/craftsman.
Let’s say you’re following the typical starting path of an Engineer or a Tester, and if you are the kind of person who pays attention to trends, you probably are getting tons of coding or *cough* “testing” certifications, or you are investing your hours on Leetcode preparing for that interview at Google or Amazon… sure enough, even if you don’t make it to those big companies, you start noticing that it’s not that impossible to get accepted for most junior-position jobs.
With time you’ll learn the “naughty secret” almost everyone learns, that your previously acquired knowledge and your previous mental “toolkit” are galaxies distant from what you’ll need after some years in actual projects. And in some other edge-case/worst cases, you start noticing that your “toolkit”, the the “toolkit” of some folks will stay the same, and you’ll notice cases of folks with decades of experience in practice, that might have even built a trendy resume, and in the end, turn out to be folks who need a lot of hand-holding to do their job.
One suggestion for tackling both of the previous cases is: always be learning and studying something that goes against the flow of how you do things, that maybe is controversial, something different in contrast to what is accepted by typical Engineers or Testers and isn’t necessarily “trendy”. And I don’t mean you should do this to become some sort of hipster, but do it as someone who is trying to be a better craftsman, because even if you find you don’t agree with these in the end, it will expand your “toolkit” and maybe will help you give birth to new ideas.
This “intellectual” act of evolving your own path is, I believe, the biggest value proposition in studying seemingly “bizarre” topics like Elegant Objects in the case of programming, or in the case of Testing, studying Context-Driven Testing or Rapid Software Testing, and that I think Yegor missed underlying in his post and applies to many other study/craft topics.
I can say I’m a better Tester today than I was months ago, and definitely, a better Tester than I was just a few years ago in part because of interacting with different and, considered by many people, crazy or hippie ideas like Elegant Objects.
Entertaining stuff like EO in my mind in the past helped me broaden my perspective on many “babies” that the industry holds “dear and cute”, and maybe, in reality, some of those “babies” are really (like REALLY) ugly and we’re just too afraid to admit, or even consider it. This pursuit of knowledge also brings a fair share of mistakes. But personal growth can spawn from when you make mistakes, right when you are in the process of challenging teachings and ideas that sometimes will make you look foolish or crazy. I fail every day. We all do. But it’s not a bad thing.
2) The Value of participating in an active community
It’s “common” to hear that personal growth is often accelerated if you have good people coaching you. I for example have had the fortune of being at times surrounded by good people who shared good teachings and advice that I hold to this day. But having a pool of good people who are willing and available to guide or coach you is itself a scarce resource. This, I think, is precisely the second value proposition of communities like the EO community: it can help you with the scarcity problem.
It’s implicit in Yegors post, and I’ve experienced it first hand, that there’s personal growth to nurture just from interacting with a community different from the communities you’d normally interact with.
There’s a couple of reasons Yegor at the end of his post mentions “become an active/vocal member”. there’s value in that for him, he wants to have more active members, that will share and help him grow his ideas, and let’s be fair, will also help him make a living or contribute to his bottom line. He’s been always pretty honest about it: “I give you people all these resources, in return you give me love (aka. your time, your brainpower, your money, …)”.
Now let’s look at the other side to the coin. There’s value in it for him but there’s value in it for the active members themselves. Coming back to the scarcity problem, one of the most important bits of value you get from communities is the encouragement and guidance you’d get from a “personal coach”.
Most folks who desire to become better Engineers or Testers a lot of times are just missing encouragement or a guide to help them get started on their path. This hits close to home if they don’t have anyone coaching them, or worse if they only have “status-quo gurus” guiding them.
Encouragement should be easier to get through interacting with some folks like those found in Elegant Objects or Context-driven Testing communities because there’s a pool of folks readily available to help or nudge you in a direction. This was perhaps one of the key stepping stones or the triggers for my growth path.
After a while of participating in those communities we start forming our ideas, we start putting those ideas out there, in the form of open-sourced code, blog posts, questions, messages, videos, doing talks in meetups and conferences, the initial trigger for that often being those early-on interactions with an active community that will encourage, that will debate ideas with you, or help you form a different “world-vision” you didn’t know about.
3) The danger of fanaticism, polarization, and lack of humility
In Yegor’s post, even though he throws out this invitation for people to become active, he also shares the disclaimers and the warnings - you have to bear in mind that when studying and adopting new ideas - it’ll have an impact on other fronts like your interactions with other colleagues who don’t share these ideas, and in this topic, I think it’s fair to say this, but I have 3 pieces of advice for folks going through this.
First off, not all is rainbows and happiness. I’ll remove for a bit the pink-tinted sunglasses and admit… some communities will outright discourage you and will keep out newcomers. They might be filled with boneheads and a$$holes. That’s not entirely bad, especially if you’re someone with a personality like Michael Jordan, where not being accepted could be a trigger for your greatness and proving people wrong. Just don’t let yourself be bullied by boneheads. Get a “feel for the room”, and leave if there’s nothing in it for you.
The second piece of advice is to be aware of the difference between being a polarised fanatic versus being an “independent agent” in a community. I’ve seen this time and time again while I was an active member of Elegant Objects community, and I’m pretty sure Yegor and a few other of the oldest colleagues there remember specific cases of folks who from day 1 of being members start right away shifting their entire personal belief system, revolving it only around Elegant Objects topics, and shift the way they interact with others based on quick judgments they have of what they’ve been studying.
Folks become completely polarised and fanatics and then some end up suffering from a lot of these bad results mentioned in Yegor’s post, with symptoms always in the lines of “the world doesn’t get me, I’m being rejected for my righteous beliefs”. It doesn’t surprise me and I would risk saying people put themselves into situations where they are “suffering for nothing” (or suffering in vain). Just like that meme of the kid in the bike:
I think it’s because people would get stuck in a loop mode where they do stuff out of a burning desire to feel quickly accepted by the entire community, to feel “validated by the elders”, to feel “loved”. Time passes and these same folks, who had invested an enormous amount of their energy, vanish completely.
Their huge investment had little returns for their well being. This is very dangerous and why I think it’s always better to try and keep things in perspective, to allow yourself to not be entirely molded or fanatically polarised by ideas, but to try them out, experiment on them at your pace and to think for yourself as opposed to acting (rushing) on feelings.
People got into bad situations not taking into account one thing that Yegor or some of the oldest members of the community kept warning folks about, which was “be greedy with your own time” even if it meant being greedy with the time you give back to the community itself. Folks would twist into “OK I hear you, I will be greedy and fully dedicate to you guys and EO”. You get where this is going.
The third piece of advice is to be aware of the risk of drowning yourself in a “lack of humility” ocean, and I’m myself guilty of entertaining this danger through time and have to keep it in check. Just like with the fanaticism problem, you have to put things into perspective. If you’re like me and everyone else and you started as a Junior do yourself a favor, and when you explore crazy ideas, be aware that just the fact you know about different stuff than say, a senior person in your team, doesn’t make you more special, or doesn’t make you “the chosen one” and means all the other people are stupid.
The line between the act of sharing stuff and disrespecting others is very thin. We’re all learning and developing our ideas. If you’re not smart about being humble, you’ll be doing the same thing you could accuse other communities of doing, like enforcing an idea onto others, without at times even considering that they haven’t tested out that idea deeply for themselves, and take it for face value.
4) The danger of “smoke selling”
Taking things for face value is a road to many stupidities some may consider unnatural.
(yes, you that are smiling in the back, you got it, it’s another nerdy Star Wars Prequels reference)
What I mean by this is that there’s a difference in promoting stuff you’re learning and experimenting in a community, versus sharing blank words of order that are backed by stuff you’ve never tried for yourself or some charlatans in the industry sold to you. A little thing that a couple of my Portuguese and Spanish (and German, Bulgarian, Slovenian, Indian, etc…) friends like to call: smoke selling. I think this is best explained with an example:
If I grabbed a time machine and went back 3 years ago I would have found myself saying stuff like:
the ISTQB don’t know the first thing about Testing, there’s a great bunch of idiots there, they are doing damage to the Testing craft, or there’s no such thing as “Agile” Testing, or “There’s no such thing as Assuring Quality” or “QAing a ticket”. – by Filipe from the Past
In the present time I wouldn’t scold myself for saying any of these… Maybe I’d give myself some advice towards eating healthier or doing more physical exercises, or more LeetCode exercises… such is life… But I still wouldn’t scold myself for saying those things about Testing (maybe say them in a friendlier/more compassionate way I guess). I meant them back then and I mean them today. There’s just a small problem though: back then I would be saying those sentences without a lot of experiences to back the words on, basically, I’d be talking of things I just heard others talk about. I had a gut feeling I was pointed in the right direction since my current direction was failing me, but that was it.
Fast forward to today, you’ll hear me saying that stuff often, openly pointing to all the elephants in the auditorium, no matter if some Big Boss, or some CEO, or even the Universal Church of Agile’s Pope is in the same room:
I’ll speak out on (sometimes inconvenient) truths.
But there’s a MAJOR difference now: what I say is backed on substance, on personal and project experiences, failures, as well as successes, and in my case, it doesn’t mean I don’t respect or don’t feel compassion towards folks of ITSQB or Agile Testing communities, *cough* those nice humans *cough*… it means that I can challenge their ideas back, with my ideas, or ideas I’ve entertained over time that I tried and experimented for myself in practice.
The trick is Substance to back your words on and not just “smoke” you are trying to sell. This is what cuts the legs of folks who fall for the Quality Infotainment ruse and the same applies if one says “Elegant Objects is/is not the way to go”, but would never make their experiments to try it out and back their own words.
If you’re someone who is senior professional, well established, and you think of yourself as a guru industry leader, it’s best to be open to the fact that people will try to diminish the value of your words (Yegor mentions this in his post). So keep in mind people will have an easier time diminishing the value of those words if the words are not backed by substance (duh!).
If on the other hand, you’re a junior professional, I invite you to be open to all the good things that “different” technical communities have to offer… just guard your heart of stupidity… like for example, keep in your heart that dumb polarization is a shortcut for demagogues and fanatics.
Thank you for reading. Feel free to reach out to me with comments, ideas, grammar errors, and suggestions via any of my social media. Until next time, take care! If you are up for it, you can also buy me a coffee ☕