[Off-Topic] Someone Important Left the Community! Now What??

PT | EN
July 6, 2014 · 💬 Join the Discussion

This week a well-known Node.js community developer declared he was jumping ship. It was TJ Holowaychuk, one of the most prolific contributors to this community. Obviously this must have generated some controversy, discussions, and people panicking.

If you’re an experienced programmer, you certainly don’t need me to tell you this. But if by chance you were unsettled by the recent news, maybe what I have to say will give you perspective.

First, I want to share other articles I read a few days ago:

  • My Next Chapter — I thought this would generate some extra discussion, but it’s the statement by Mike Perham, one of the best-known Rubyists of this generation and creator of the ubiquitous and exceptional Sidekiq, declaring not that he’s abandoning the project or anything, but that he’s working on a new product and that it doesn’t involve Ruby.

  • Saying Goodbye To Python — in this case it was the Pythonista Ian Bicking, who declared leaving Python for JavaScript, following the current wave. Important to understand that the current JavaScript bubble doesn’t “require” you to “leave” anything for it. Again, it’s a case where you can quietly be a Pythonista and use JavaScript — there’s no conflict.

  • Why I Left the .Net Framework — a certain developer called Jonathan Oliver also decided to declare why he’s leaving his day-to-day technology and points out the positive and negative points of Microsoft technologies. It’s not a troll — it’s actually a pretty interesting read.

  • Java Again — those from the first generations of the Java community shouldn’t have forgotten James Duncan Davidson, creator of nothing less than the first Tomcat and Ant. He left the Java community, integrated the Ruby community temporarily, dedicated himself to photography (whoever looks for photos of the Rubyconfs from 8 years ago will see that the official ones are all his). And now he’s declared that he’s returning to Java.

  • Why Go Is Not Good — as the name says, it’s a criticism of why a recently launched language should have been better thought out to cover cases that other languages already cover.

  • Rust vs Go — again, there’s a certain “elbow pain” appeal, in the sense that Rust really seems to be a superior technology to Go in terms of language design and functionality, and demonstrates some frustration over why Go is more popular even so.

  • Why Perl Didn’t Win — this is mandatory reading to observe the circumstances of one of the most popular languages from the late 80s to the late 90s, which fell into oblivion and disuse. Even Swift, released by Apple weeks ago, already has more active users than Perl 6. One of the conclusions? Anything new needs to aim to solve the problems of the future, not those of the past.

Those from the first generations of the Ruby and Rails community in particular will remember the “traumas” we went through:

  • Zed is Not Dead — from 2008, when one of our most prolific developers, Zed Shaw, creator of Mongrel and one of the first to face the challenge of measuring and optimizing Ruby’s performance, declared he was leaving the community and migrating to Python.

  • Bomb: Merb and Rails Merge! — also in 2008 when the Merb team was on a collision and destruction course with Rails Core and, fortunately (for some, unfortunately for a few — it was a solution that left dead and wounded), the solution was to swallow Merb into Rails 3. In retrospect, it’s worth reading the post “Learning from Rails’ failures” by Matt Aimonetti (who also migrated to Go) and who is among the wounded of the insurgency; and this other “The Rails/Merb Merge In Retrospect” by Giles Bowkett (still a Rubyist) who analyzes the results with very critical eyes.

  • Twitter switches from Ruby to Java — from 2011 when Twitter declared it was replacing parts of the messaging infrastructure that used Ruby and migrating to a proprietary solution in Scala. Despite what the original news said and what people decided to memorize being different, the fact is that it was a good Public Relations headache for us. Fortunately that’s passed.

And these links are just the ones I’ve read and remember off the top of my head — there are dozens more.

For those still young or inexperienced in software communities, particularly those new to the Node.js community, you must be asking “And now? If someone important like TJ says he’s leaving, shouldn’t I leave too?” And if you do your research right, you’ll see this isn’t the first time. In 2012 the creator of Node.js, Ryan Dahl declared that he would continue following his project but wouldn’t be involved in the day-to-day coding anymore. “Damn, the world is ending!”

This Isn’t Bad News. This Is an Excellent Opportunity! (Seriously!)

In 2006, right when I was starting my career as an activist in the Ruby and Rails world, I already knew what was to come. Being the newcomers, immature, with incomplete technology and many expectations, naturally the path would be as hard as possible. That’s why I wrote the article Evolution through Competition. Many imagine the best path in the world would be one where no one questions what I’m doing and they just leave me alone and believe in my promises that — obviously — I intend to keep — someday. (yeah, right …)

I say no, any promise or expectation worth having should be questioned, should be pressured, should be scrutinized. If that promise is so weak it can’t stand criticism, direct and indirect attacks, sabotage, then the promise itself was weak and shouldn’t deserve to proceed. The sooner it falls, the better. Less time we’re wasting. That’s why I always embrace attacks, because I expect to be ready to counterattack twice over or die trying. And I would expect nothing less from the Rails community. Everyone still believes constraints are bad. I already said before that constraints are important: it’s the only place from which innovation emerges.

Anyone who needs to use the old tricks of speaking ill of others, the famous “I don’t feel like getting better, so I’ll hurt the other to look bigger myself” (I wrote about this in 2007 too, “For me to win, the other has to lose…”) necessarily declares himself weak. Stop and remember articles, talks, interviews where you heard someone you admire speaking ill of another community. “Ah, Ruby, that girls’ thing. Because we men use JavaScript.” It makes me laugh and feel a bit sorry, because it’s clear to me they will always be weak.

All the statements above and similar — “I’m leaving Node.” “I’m leaving .NET.” “I’m leaving Ruby.” “I’m leaving X” — I honestly believe their authors had no bad intention or bad faith, at least not consciously. But I have a theory. Everyone who makes statements like that wants validation from their peers, or worse, wants their peers to follow them — and that also means validation of their position. “I don’t like my old toy anymore, but I also don’t want anyone else to play with it.” It’s a pretty childish position.

Taking the Ruby community as an example, we’ve had several names who sort of “left” their main activities in the Ruby community, but didn’t close doors or act childishly. Chad Fowler is in Germany running Wunderlist, focusing on mobile and back-end development, and we’ve never heard him speak of Ruby again. Ilya Grigorik had his startup acquired by Google and eventually he disappeared too. Matt Aimonetti, after the Merb vs Rails case, quietly withdrew and is now working with Go. Ryan Bates, one of the most beloved in the community for his relentless 5-year work with RailsCasts, stopped publishing months ago and declared nothing about it. David Chelimsky, maintainer of RSpec, passed his responsibility on and withdrew without fanfare. José Valim, one of the main people responsible for Rails 3, today is with Elixir/Erlang and we rarely hear anything from him about Ruby.

“O.M.G! You mean everything is over!? It’s gone up in flames!?”

No, in the meantime hundreds of new Rubyists have emerged and continued the work. An immediate example is Carlos Antonio and Rafael França themselves, who sort of took on José Valim’s mantle in Rails Core. Evan Phoenix took on Chad Fowler’s mantle at RubyCentral. Avdi Grimm sort of took on Ryan Bates’ mantle with his excellent RubyTapas, and so on.

A community is formed by individuals. Individuals act at their best when they act to maximize their own benefit. By doing so, the side effect is that they end up naturally influencing and bringing more up with them. It’s always voluntary exchanges for mutual benefit. There are no people who act without any benefit to themselves, but there are those who believe so, and they’re the ones who reach their “burnout” fastest, because quickly the question becomes:

"Why do I get so tired of collaborating in this community, stressed, and even so not everyone appreciates what I do? I do it all for them!"

That’s the wrong question. And the wrong question obviously leads to the wrong answer. Some start to believe that others owe them something, since they dedicated so much of their free time (especially in the open source world) to “help others.” And “the others” believe they owe nothing, since no one asked them to make this effort in the first place (and “the others,” in practice, are right).

If you participate in a community, you don’t do it for others, you do it for yourself. Whether because you understand that helping others is part of your personal reward. Or simply because it brings you peace of mind or a clean conscience. Or because you’re a good strategist and know that certain contributions will open doors for you in the future. It doesn’t matter the reason, as long as a reward exists that you don’t mandatorily demand from others. Demanding respect, demanding education, demanding compassion, none of that makes sense without a counterpart: no one asked you to do what you’re doing — if you are, understand that it’s for yourself. It’s the definition of voluntary work.

By the way, to be very clear: Voluntary Work means work without financial remuneration, not without benefits or altruistic. If your Work is Financially Remunerated, in that case the discussion is another, and the best advice is from Don Draper:

Back to the topic at hand, I imagine that the names I mentioned above who withdrew partially or silently probably understand this. They went to seek personal satisfaction elsewhere. They owe nothing to anyone, and no one owes them anything.

Those who leave with bombastic declarations are, consciously or unconsciously, throwing in others’ faces “you didn’t value me, now you lost your chance, and I know you’ll miss me!” It isn’t written that way, but it’s what makes sense — otherwise, why throw it on the fan and make it a public controversy? Any written argument is just part of the reason, not “the” reason.

You, Individual

The other side of the coin is whoever follows, admires, idolizes one of these people who left the place where you are. Depending on your level of admiration, you probably feel groundless, stunned, not knowing which way to run. One of two things: you either look for another idol and start the famous “he wasn’t even that good” or become depressed or desperate “I don’t know what’s going to happen now.”

My advice: "don't have idols, have references."

Stop thinking you should do something for others and, consequently, stop throwing on others the responsibility of helping others too. That’s what’s happening: you don’t understand your purpose and believe that others should do what you yourself don’t. And worse, you let others decide which path you should take. If you’re so insecure, stop for a moment and reflect on what you “are” first.

Your only purpose in life is to take care of yourself and produce. And that without getting in the way of others. By doing this, the natural effect is that spontaneous collaborations emerge, communities evolve, and everyone wins. A community where everyone demands from everyone doesn’t grow well — it grows without purpose.

Particularly about technologies, opinions, proposals, and promises, also remember: you want to be under constant “attack/constraint.” There’s nothing worse than being ignored. I wrote another article, a translation from a wiser person than me, Kathy Sierra, called Dilbert and the mediocre zone, where I quote:

How brave are you? How far would you go (or your employer) to avoid the Mediocre Zone? Until, or unless, you're willing to risk Passionate Hate, you may never come to feel Love. Scott Adams agrees. In a recent post on the Dilbert blog, he said "if everyone who is exposed to a product likes it, the product will never be a success ... The reason a product that 'everyone likes' will fail is because no one 'loves' it. The only thing that predicts success is passion, even if only 10% of consumers have it."

So what if someone left your community? Is your community so fragile that a blow — no matter the size of the impact — will collapse it? If you believe your community is only resistant, you’re right — after a certain point, it collapses. But if your community is resilient, if it’s malleable and adaptive, it will survive. It’s what guarantees the survival of species: the Law of the Most Adaptable (not of the “strongest”! Remember: resistant vs resilient — you want to be the second).

Are you adaptable? Or are you just looking for others’ validation, letting them decide for you? One thing I can say for sure: if one day I give up what I do, no one will ever know through a written statement — I determined that the day I started.