2015-08-16

Sexism and competition

The ruby community is quite blessed in the way that there are very vocal activist promoting diversity, especially on gender parity. It’s not exclusive to ruby I noticed the same intention in other communities (like the pyladies in python).

Anybody that spent some years in IT cannot avoid to notice that there are mostly guys. The ladies are either frowned upon or very special cases. For ages I have been wondering why. My sister is a sysadmin at a university, there is nothing shocking about that and she does a damn good job.

So I paid attention on what are the people responsible for that. I identified various categories of people that I consider are responsible of our lack of parity. Well, not them directly but the behaviors they perpetuate are certainly part of the problem. If we could find a way to correct those behaviors, it would lead to a natural change in the group.

In all those people I know, and in all their behaviors, I think I detected something that is related to the Religion Of Competitiveness. Those people are believers that knowledge is power and they are not gonna share it more than necessary. They will find anything to avoid more people reach their level of knowledge. And if they can find some kind of reason to discard other people, either trivial and socially acceptable in the given group reason to discard other people, they will do. Gender is the first victim in such a schema. What is socially acceptable is a self-perpetuated meme.

Talking to those people is pointless, they are in denial. They see nothing wrong. You can’t change them. You have to change their environment, that will be the only way.

So it means that in a competition context, there are still ways to win, by playing the competition game and winning it. But to break the competition paradigm, there is a lot to do. Companies policies are not enough to enforce a more open mindset. But I believe that there is ways to organize the information in a way that keeping it for oneself devaluates it. And from the eradication of the tyranny of knowledge, we shall reach a less competition-based culture in IT. And all discrimination pretexts may vanish by themselves.

Rather than fighting for diversity, we should fight against the spirit of competition. It’s kind of not easy, I reckon, because our society tends to push people to be competitive. That’s what capitalism is all about. But IT population already has proven that the established system don’t take hold on them. Geeks and techies are educated people (often self-educated, but it’s the same) and they can think on their own, chose the path to follow. If you can find a way, in your context, to change the environment towards less power for the competitive type of people, that could deserve a try.

Well, that’s just a rant, a wild thought. Such a topic would deserve more space for development. But that’s what I wanted to share this week. Anyways I doubt there is that much people reading those line hahaha.

2015-08-09

Octopress 3 and other thoughts

I’m currently involved in a community project and I installed a wordpress. From time to time I get one up to see how it evolves. But really this thing is not to my taste. To much trouble for making simple things. I reckon it can be useful for people with no technical knowledge but then they are going to mess up everything. The technical advisor still can’t be avoided.

So because now I saw a recent wordpress and didn’t like it more than the previous attempts, I will give a try to the new octopress 3.0. The octopress author explains that he’s been doing it all wrong and now on version 3.0 he gets back to sort of a collection of gems that plug into jekyll. I kind of like the idea.

Well to be honest I was also tempted to give a try to phoenix, but I know jekyll already and I don’t have that much server resources for that community project. Static web always have had my preference. But the idea behind Phoenix is appealing. Like any new project it includes the new things and don’t have to bother about legacy. The channels ideas, creating a stream between client and server, sounds very appealing.

But to get back to why I will prefer jekyll over wordpress, is that my contributors are a mess. They don’t care about styling, they copy-paste random html all over the place and the final look is totally inconsistent. My hope is that markdown would limit the possibilities of making a mess. But then I will have to propose them the github edit, as a backend, unless I cheat and use etherpad-lite as a pre-production backend.

That etherpad-lite thing is amazingly simple, I used sometimes and making it accessible behind a single password for everybody makes tings pretty direct. But totally unsafe, I reckon. I will probably have to write some kind of tool for managing the publication workflow. Hmm, that sounds like fun. If you ever had the same kind of adventure, please share with me :)

2015-08-02

RubyConf Taiwan 2015

In September 11 and 12 there is a Rubyconf here in Taiwan. I have been at some past editions and it’s always a good time to meet people. Because we are close to Japan there is usually pretty good ruby core contributors from there. We get to see Matz, father of ruby, at each edition. But this time it seems that the organizers pulled some kind of special trick and the famous Aaron Patterson will be present. And I remember having heard Sarah Allen on rubyrogues last year, it is the first time she joins us in Taiwan too. I think both of them will bring some unique taste to this years rubyconf.

If you looked for an occasion to visit Taiwan, that may be the right time. You won’t regret it. The ruby community in Taiwan is quite active and Taiwanese people are amazingly welcoming to westerners.

And, if you want to meet the 3 of us, we will all be there. Look around for Xenor and Tysliu, the famous editors of the Green Ruby newsletter. They tirelessly collect links and news, fresh from the week, about ruby and other things. And if you see someone with a Gandi T-Shirt, that will probably be me. We probably will distribute some green ruby stickers that I still have in stock. So then we can make new ones.

2015-07-26

Back on tweeting

I really don’t like my phone. As an old timer I’m reluctant to trust my android, but it would be the same on an iphone. The way applications require access to the device, on android, is especially annoying and dishonest. They make the slope slippery for the sake of saving seconds in adopting new apps, but it’s leading to a total remission of users control over their devices.

But well, I still have a commute several times a week and I use my phone to listen to various podcasts. But I recently configured some accounts and some news readers, so I also can just do some links curation along the way. So I suspect there will be more tweeting on the greenrubist account from now on. It helps quite a lot when I want to gather links on every sundays.

Well, nowadays, most of the links are actually gathered by xenor and tysliu, but I always add a few on my own (especially the devops ones). Those 2 guys are really doing an amazing demonstration of consistency. After 129 editions, we still didn’t miss a single one week in our publication. It would not have been possible without my buddies. Thanks so much for their contribution.

2015-07-19

RubyConf Taiwan 2015 CFP

Hey it’s time to give it a try, talking at a rubyconf is a great upgrade for any coder. That rubyconf will happen on september 11-12th in Taipei. Check it out.

NSA on Github

Looks like someone is trying to fight back a reputation of obscurity. While they are still pushing on more invasion of privacy, they also release some open source code. Check the NSA github repository, they released something already. Simp especially has a bunch of puppet modules, but it’s designed only for redhat kind of systems. Quite an interesting move.

2015-07-12

Javascript and thoughts on programming

Recently I’ve been playing with Hubot plugins code in coffeescript for our company. That’s a while I didn’t do much js but I used it for a long time and I didn’t find it too difficult to catch up. But for some reason, it brought me the same feeling I have each time I get back to that language. I feel dirty. Still I can do what I need to do, for sure, but I don’t feel like a builder, more like an acrobat. And I’m far from a purist.

Some people talk about javascript taking over the world. But that language imho just was there at the right place at the right time. By having a runtime embedded in browsers and browsers libraries, it has been used to hijack the most used software on our computers and mobile devices, to transform them into richer clients. Along the way various layers were added to fulfill the need of software design, because javascript initial goal was merely DOM manipulation.

The thing that always stroke me the most with javascript is that despite the efforts from ecmascript, it has no formal standard or documentation. It is pretty extensively documented, of course, but because the language is pushed forward by the implementations rather than from a standard body, it gets a bit messy.

I saw a drawing this week that illustrates the mess quite well. It feels like Javascript is waiting for something to come replace it.

But there is hope with ES6. Seems like in recent years the normative effort on the ecmascript standard got some more traction and some more press coverage. But I personally don’t think it’s going to bring the solution. I enjoyed reading the thoughts of Eric Elliot on that topic but I’m not sure he’s right on everything. But what he’s right about, is that there will be an after-javascript.

Unless that after javascript doesn’t arrive fast enough and gets useless by some new programming paradigm that may appear one day soon. I mean, in the next 10 years. At some point, like big data is too complex to be handled by human, programming will also get too complex and will be handled by algorithms. We already see it coming. And all programmers will then become high end workflow designers or just play with antiquities.

In this perspective, I think javascript is a great intermediary technology for the time being, given its pervasive aspect. It’s far from satisfying, but it does the job. But the younger generation should keep an eye on higher level abstract approaches, like systems architectures, workflow logics, organization patterns, because imho that will drive software design in the next 10-20 years.

2015-07-05

Digital Generations

I enjoyed very much watching the keynote from Grady Booch at ICSE last week. He retraces the whole history of computing and software engineering in a very talented way.

Later on I also watched the keynote of Stephen Bourne at BSDCan, which also talked about history, but on a specific topic of the creation of Unix and the shell.

Usually, I have to say, I consider myself as an old geek. But I’m a kid compared to those guys. It made me wonder what are generations based on the computerized world. In the physical world it’s easy, there are births and generations are around 20-30 years long. But in our accelerated time frame in the digital age, what is the measure for generations and where are the gaps ?

We could consider that some breakthrough are the base of generational shifts. On the top of my head I would say:

  • the dinosaurs age, before 70, where computing was just emerging
  • the university age, appearing with the interconnectivity between universities between 70 and 80
  • the personal computer age, between 80 and 94, with various evolutions of pc available to larger audience
  • the hypertext age, between 94 and 2002, start of the public internet, the bubble, the web
  • the online age, from 2002 to 2012, with consolidation of big companies, web 2.0 and all
  • the mobile age, from 2012 to now, even if mobile appeared previously, it dominates since recently

So I can see an average of 8-15 years in the generations that I feel create disruptions between each others. People that jump in at one age will suffer a gap between their age and the next one. Many won’t evolve. Few brave ones will constantly update and jump on the next train.

But the overlap in digital generations is also different than in traditional generations. We still have a lot of legacy in our current systems inherited form the university age. And they don’t seem to die, like the TCP stack or the C language.

The next age may be the one of the Internet of things and the massive required switch to IPv6 as default. Which will include automated and autonomous systems, because they will be things and not part of a contained system. In something like 3 to 5 years, if I follow the same rough pattern I drew above. Unless next gap will come with VR and immersive technologies ?

But I suspect that my simplistic characterization misses all the multi-layered aspect of the digital age, between the hardware advancements, the software improvements, the usages evolutions, the protocols modifications, the data models transformations, etc. I’m sure a more complex generational matrix could be designed if some more thought was given to it. But the gaps are real.

It feels to me that people that predict that machines are going to take over the world are actually late, it already happened 40 years ago. It was just having a limited impact on people lives. Each digital generation dragging more human in its trails.

Don’t let yourself enclosed in a generation. Our computer overlords won’t make any effort to include you if you drag your feet.

2015-06-28

a taste of FreeBSD

This weekend I installed FreeBSD 10.1 on a disk of my desktop. Beyond the fact that we are using that system at work, more and more, I was just curious about the setup for a desktop. I was pleasantly surprised and everything went very smoothly.

I’m quite familiar with Linux and that was enough for making the ride very easy. The general impression is that actually the system is simpler than on Linux, maybe more consistent. The pkg system, alternative to the traditional ports system, makes thing much more ‘out of the box’.

And for the rest, well, in one afternoon, and just by following the doc, I had my window manager up and running, and ready to begin playing with bhyve. I was surprised to see that bhyve kernel modules were included by default in recent releases. I heard there are still some bumps on the road for laptop about the sleep to disk mode, but I’m not concerned by that.

It feels like BSD is a shy actor that actually powers much more stuff that we can suspect. But it has a pretty active community and a very decent documentation. Well, give it a try if you like playing with various distributions of free and open operating systems. It’s much less scary that its reputation seems to convey.

2015-06-21

The yin and yang of software development

The topic I talked about last week led me to think about it more widely. And I ended up with the thinking that many problems in software companies are a clear problem of balance between their yin and their yang.

This old chinese principle is documented in a very old-fashioned way, opposing genders and principles. But actually it sums up in the fact that many dynamics are to be based in a balance between two opposing principles. Otherwise they fail.

The way I see it, software developers are a nurturing kind. This profile has to consider long term. It decides actions for later outcomes. It’s about giving life and growing it. It feels closer to the Yin principle.

On another hand, the business people are bound to a shorter time frame. And I don’t talk about the entrepreneurs and the rare visionary people, but the real business work force. They are competitive, aggressive, fighters. That really feels to me like the Yang concept.

And all occurrences where I saw software companies failing, I think it was because there was a lack of balance between those 2 principles. Either the management was too soft and not aggressive enough towards its market, either it was too aggressive and nurturing was not considered enough in their equation.

I don’t think that this balance requirement applies to everything, to be honest. But in a constituted body of a software organization, considering the current (questionable) market economy, it feels that the Yin and the Yang have to be in balance to grant a chance of survival to the organization.

One may have the feeling that the dominant Yang (business side) is the more common case. But they are just more noisy. Many projects stay silently in the darkness just because there was no real business consideration (or even refusal of it).

The keynote of Grady Booch (linked in the video section) confirmed me in various ways in this opinion. Engineers have the duty to fight for the balance when they can. They have to understand that it’s not a one-way deal, as well. If you want to exercise programming in a nurturing-only context, win a lottery and dedicate your time writing free software (where market requirements don’t apply). But in the usual case, you may have to consider if you are in a balanced context, and if not, try to work on balancing it.

2015-06-14

A word about project gardening

In the last 2 companies where I worked, there was this recurring issue. Actually I noticed it for a while but for some reasons it became more obvious to me with time passing. The project management role is usually badly fulfilled.

But at some point, and even from the point of view of a developer, there is in projects the need for a dedicated person for doing some gardening. Yeah it’s all about daily ungrateful clearing the bad weeds, making sure the soil is rich enough, and that the seeds are all planted where they should be planted, that soil pH is adequate for this or that variety. Having someone that is just doing moderation on projects also frees the productive people from lengthly and sometimes non technical meetings. It is the occasion to have someone that keeps track of specs, sometimes gather them or (re)write them down in a central place.

The problem in the transition from waterfall to agile, is that in the waterfall model there is a hierarchic feeling in the role of the project manager. The Management word into it is misleading. It leads the developers to frown upon it. I have the impression that in agile teams, project management is supposed to be taken care of organically by the dev teams, sometimes by the scrum master or whatever facilitator is there for enforcing the agile process. Or the product owner will be technical enough to fill up that role. More or less.

But the reality is that project grooming is a full time job that may have to be re-invented. It certainly should take in account developers creativity and pertinence in the match of the objectives with the technical realities. But it’s necessary to have a person that is the reference on keeping track of the need and follow the quality process at all the stages. Well, at least when you begin to get many developers and many projects, and developers that work on many projects.

I think it’s a question of scale. Companies with less than 30 people may never face that need because there is a natural fluidity internally and not that many projects. But when you get to 100 and you still don’t have people dedicated to projects, then you can see developers burning out. Projects become lousy because nobody has time to write specs. You also can see emergence of hero coders that can by miracle make it all happen. But you will postpone the problem because heroes are not scalable and can even be toxic on the long run (as any experienced practitioner already knows).

Personally in my technical career I never liked the project managers that I met. But that is a long time I didn’t meet any. It dates from an age where agile was not there yet. But now that I don’t see them anymore, I feel that something is missing. It certainly exists in various places. And I can bet that many of them are as bad as they were in the last century. But maybe there is a new species of project curators out there that I didn’t meet yet. I read about those in various places, but in my (small) world, this is still a mythical beast.