The virtues of transitions

A collection of events occurred since my last post. I was really hoping to get some deep dive into writing more about collective intelligence, in the background. But various things came and distracted me from that initial trajectory.

Hubot revival

First, there has been a revival of the Hubot project. I wrote a bunch of plugins for that chatbot for internal usage at Gandi in the past year. I have been poking around in the community complaining that it became some sort of abandonware. Issues on github were not addressed, PR unanswered, irc was silent.

Then one day 3 weeks ago, bkeepers came up and woke it up. It appears that now Github has plan for this codebase. They want to include it in its products more officially, says the rumor (nothing official yet). But it makes a lot of sense. So then he gathered people that could be involved in the revival of the project. I was contacted to join the core team. That’s what you get by nagging people.

Since then it has been quite great to clean up backlog, re-examine old ideas, help setup new process and tooling for community gardening. I never get tired to see how informal communities can shape up and self-organize.

Quiting is not a bad thing

Around the same time, I felt inspired by handing my resignation of my current job at Gandi. There is nothing wrong with the job, and most reasonable people could argue that I’m just stupid. But there are a combination of factors that led me to think I was not using my potential at full capacity.

Working on a large infrastructure as a sysadmin was great, but it’s pretty hard to build new things properly in the service industry. It’s always about contingency management, and reacting to the environment. It’s more about doing the fireman than the gardener. Well, honestly, I think it’s a question of intent and culture and that could have been addressed. But I didn’t see any hint that could let me think this environment would become intentional about gardening anytime soon.

So, out of the blue, I left. I chose a moment where there was no crisis, no trouble, no real reason to quit except a strong feeling that it was time to move on. That way, transition is painless, there is no frustration involved. I hate conflicts. My advice: never wait the burn out to make your move out.

Green ruby end of life

In the mood of transitionning, this week I proposed that we close the Green Ruby adventure. For some months Xenor has taken over the publication process. But he’s himself bunt out a bit. So after 4 years of publication, it’s time to close this properly and move on.

That weekly links collection was a fun exercise. And I’m really happy to have refused any business side track on this operation, it would have been much harder to close.

What next?

I decided that I could stay funemployed for a while (that’s the proper term, right?). I’m planning to look around, play with techs, talk with friends, hold on any decision to engage in anything. It’s time to re-assess my roadmap. This is what is great in transitions. By losing contact with the ground, you can feel the direction of the wind.

Maybe I will get back to entrepreneurship, and setup some business venture. Maybe I will freelance for a while. Maybe I will find a context in a company where I feel comfortable contributing. But honestly I have no clue. And yet, this feels great.

Getting back to old friends

In the first days after my decision to renounce my day job, I got back in contact with a lot of old friends. Transitions have that side effect that you have to re-evaluate your environment, your network, your values.

Getting into a full-time job doesn’t prevent that, of course, but you cannot give the same attention. The center of gravity of an employed person is static. Now that I’m floating, I have to dedicate much more attention to my environment. And it’s an excellent thing.

I will certainly have occasion to talk about my adventures very soon. Maybe I will force myself to write more.


A stress-free life

Next friday, I’ve been told that I have to stop working for 2 weeks. Well, for people that have a normal life and/or kids, it’s a pretty good news. For people that get heavy pressure from their work, it can give some air. But I wondered why I didn’t feel like I ever felt the need for holidays. I take them by principle, but I’m usually not really eager to get them.

After some consideration, it all sums up to some kind of discipline. I refuse stress on a daily basis. I want each day at work to be enjoyable and debt-free. It’s a bad news for some category of employers. The same way those consider it’s acceptable to accumulate technical debt, they apply the same principle on human-life debt. Put people under pressure, get a loan on their health, that will never be repaid. So, I just refuse pressure, the same way I would refuse to eat meat if I was really vegetarian (which I am only part-time).

Really I have more trouble with holidays because they bring a gap in the continuity of work. You get back and there is a lot to catch up on. I would prefer to have just one hour work less per day than week-long breaks. But that’s just me. It would be totally different if I wanted to travel for fun or if I had kids. My case is not reproducible.

But the baseline remains valid. whether you have plans or not for holidays, they should not be required for having a balanced life. Stress has to be fought on a daily basis and not by using breaks. Breaks, in such case, are even more enjoyable, if you have the context for it.

The best way I know to push stress away is to put my efforts into what I do, in a way that I’m self-aware that I’m really doing what I can to fulfill my duties. If someone is not happy about the output, that’s their problem not mine. If it leads to some awkward context, then it’s broken and I will reach out to find a better work context. I apply that principle for more than 20 years now and I can’t remember last time I felt stressed.


Remote working

For some random strange reason I had a lot of links this week about remote working websites. I know it’s a very real topic for our craft. But I still see a lot of companies that have hard time coping with the concept.

On one hand, there is a shortage of technically skilled staff. The growth of the tech industry and especially the online services is way too fast for the education system to catch up. It’s been like that for pretty much 20 years now. And there is an unbalanced repartition between where the growing companies are and where the growing population of techies are. So it would only make sense that either relocation would be much easier or remote working much more widespread, no? Well, no. Relocation is bound to laws that are not driven by the only technical area. And remoting is dependent on a cultural and also legal shift.

Because working with remote staff, many of us know what it means. First it involves a level of trust in the staff that is unprecedented. The same level of trust you need to invest when working with a contractor, actually. Then the old-fashioned control and command system in place with traditional management systems gets totally inefficient.

More even, to be efficient with a remote team means adopting a work organization and tools that are specifically thought for this setup. From what I can experience, it’s either one or the other. When half the staff works in an office locally it’s not easy (yet not impossible) to be efficient with another half remote.

Some stuff will be likely to happen locally with old ways of oral communication and meetings with sparse note-taking. That will put the remote staff in the dark of some parts of the internal process. It may create a double-speed kind of organization, there is the ones that are full speed and the ones that are just, well, not in the core. Oh it’s still possible to make it work. It’s just harder.

Or maybe it’s like the web and the mobile. Slowly companies need to become remote-first and then eventually also work on local office-based scale. But there are still various barriers for having a real remote-friendly world anyways. The legal status is not clear,m for example, money transfers between countries, compliances with social coverage conventions, no international law seems to cover international employment with individuals.

From what I can understand, remote working from a distant country is still a hack, legally speaking. Companies need to find tricks. Luckily, hacking is something we are not bad at. But still. I wonder when it’s going to change, and see a legal ground for a really normal remote working context.


Noobs rule the planet

There is something that I always did in my career managing internet tools. I volunteer helping non-technical people to get a presence online, build up communities and such things. But I have to confess, this comes with a price. A price on your nerves when you realize that easy obvious things that you take for granted are actually not clear at all by the average Joe.

Yeah sure they can post of facebook. For many of them, it’s pretty much all what internet means. But for the real things, they have no clue what they are doing. Talk about the merits of a chaos money to test your infrastructure. Well, the man on the street is pretty much the best you can get when it comes to chaos testing your design and workflow.

But whatever infuriating it can be, it’s a great thing to keep in mind. People have no clue what they are doing. They don’t know what an url is. They think smileys are fun. They feel writing all in capitals is just a detail. When some popup appears they consider it’s all broken and there is no need to read what’s written on it because anyways that’s over their heads.

So, when you design your applications, you may be lucky enough to face an educated population. But in many cases, you may not. Take it in account. Make things over-explicit and use images to bypass the inability of the modern average people to read anything that is more than a sentence of 5 words.

Go volunteer to help your fellow neighbors in your local non-tech communities. It’s hard, but it helps keep in touch with the reality.

And above all, keep patience. It’s not their fault. There has never been any economical incentive to educate users. The shortest path is always the best path. So for sure, you should make things easy. But if you get any occasion to provide your users some education, it’s never going to be on your spec sheets. You can do it as a natural thing to do. Add optional text to explain why things are the way they are. Few will read it, but they will learn from it.


Multiple inheritance simulation

This is a bit twisted. In ruby, as you know, you cannot use multiple inheritance. But the flexibility of the language, especially the metaprogramming aspect, opens the door for some cheating. Check out this code, it tricks it by declaring the first class as the super class and the remaining classes as modules included in that super class. Pretty acrobatic and elegant, imho.

About vaping

Well this has been my burden for 30 years, and I’m not proud of it. But last week it finally ended. I quit smoking. But this was kindof a trick, as it was made possible by switching to vaping. It certainly doesn’t solve the nicotine addiction issue, but I’m very happy with this move and hopeful for a gradual freedom.

I also found out that this vaping practice is very geeky. The hardware part is quite elaborate, vaping devices are really neat piece of work, there are a bunch of vendors. The liquidware is also quite a subject of hacking. Technically it’s not that hard to do it yourself. Not surprising that I discovered this vaping practice in geeks circles.


Working abroad

Our craft as webdev is clearly in huge demand. This provides an opportunity for us to travel abroad, discover new cultures, widen our horizon. When I went to live in Taiwan, I was not worried about finding a job. But when hunting for a job abroad it can be tricky to find companies that will sponsor a visa, a work permit, or whatever legal requirement is involved in each countries.

That’s what the new initiative called TechMeAbroad aims to fix, by listing only job opportunities for which a work permit is sponsored. As Julien Barbier explains, it will launch in march, and if you know of any job offers that includes a visa or such thing, please let him know (or send it to me I will pass it along), so we can feed that platform with some real data quickly.

So long ruby 1.9

As planned, it’s now time to say byebye to ruby 1.9.3. But there is still so many old version of ruby in the wild. In debian squeeze, you gotta use 1.8. In wheezy, you have 1.9. And there are still many servers that will refuse to upgrade.

Pick your hero

The registration for Ruby Heroes 2015 is now open. Go vote for your favorite ruby influential dev. You have until railsconf that will happen in april, in Atlanta this year.