Programmers are draftsmen

Interaction08: IxD’s in Savannah; Alan Cooper:

Programmers are draftsmen. However, they are different than pre-industrial workers. They are self-directed and know better than managers what to do. They respect intelligence, not authority. You can’t tell them what to do, you can only coerce them. Their satisfaction comes from the quality of their work. Unlike pre-industrial craftsmen, post-industrial craftsmen are smarter and more highly trained, even in the higher levels of management where they work. This creates a conflict because management is industrial. It’s based on command-and-control. It’s tracked quantitatively through cost accounting, based on the idea that you purchase raw materials and you purchase labor that transforms those materials into offerings, and you scale up with factories, and that’s how you profit. That simply doesn’t exist in the world of software.

The Truth Be Told

Reg describes 99% of all available programming jobs with incredible sincerity:

You do a clerk’s job, you settle for a clerk’s working conditions and wages, but you take solace in the thought that you are somehow more than a clerk, because you have a university degree and the dental technician who cleans your teeth doesn’t. Only everyone knows it’s a sham, especially the hiring manager who puts “University degree required” in the job advertisement. He wants to hire a clerk, someone who will work long hours doing as they’re told in a top-down, hierarchal command structure. Does that job sound like there is any Science involved? Of course not, everyone knows that, it’s why the industry is trying to weed all of the Science out of a Computer Science degree.

I do not have a university degree. Heck, I started university 4 times and finished none (Physics, Economics, Marketing and even Computer Science! :) I have been refused jobs because of this (particularly at the beginning), but I have been given jobs because of this too (particularly lately). Having some experience in your CV pays off; the hard thing is to start without that “paper”.

As a matter of fact, I’m doing an online Master’s degree right now, which I will finish this year, and I’m actually quite happy to have started. I’ve been able, in the past two years, to read books and papers that I had not heard about; I could understand some underlying issues in Software Engineering, both from technical and social points of view; I can understand more, I can learn more.

But, the truth be told, I’m also doing it to have that “paper” hanging on the wall. I know it’s silly, but I want to take that step too, and that’s why I’ve changed careers so many times. However, that is a secondary thing for me: what I am looking is something else altogether; a bit of guidance in my own learning path. I have followed an unusual way in my career, and looking backwards I’m happy to have done that (mind you, it was not at all consciously!). That’s why the 6 books and the new programming language every year. It’s all part of the same pattern.

Of course, this has worked out for me, and your mileage may vary. I know excellent developers both with and without degrees, and also horrible professionals with and without them. Some people need a physical teacher in front of them, while I prefer to learn alone.

A degree, like any decision that you take in life, should mean something to us, and in that sense, I find Reg’s arguments enlightening.

Commentaire sur Profession-Web

J’ai poste le commentaire suivant dans un article paru aujourd’hui sur Profession-Web:

“On n’est là pour lui, car C’EST LUI QUI ENGAGE.”

Je pense que l’état d’esprit de la phrase ci-dessus explique le turnover élevé et le bas rendement en général de l’industrie du software et du web en Suisse (particulièrement dans le consulting). Je ne suis en aucun cas d’accord avec cette façon de voir les choses.

L’employeur me paie un salaire, certes, mais il faut être clair sur un point: en tant qu’employé je lui offre 40 heures par semaine de mon temps CPU. Et ce n’est pas peu, compte tenu des open-space bruyants, des interruptions sans cesse et des horribles environnements de travail que certaines entreprises offrent a ses employés. Sans compter celles qui se donnent un plaisir de payer des salaires bien en-dessous de ce que le marché offre, ou qui n’offrent aucun programme de développement de carrière, sous la justification de voir les développeurs comme des machines à taper du code et rien d’autre.

On ne travaille pas POUR un employeur, mais AVEC un employeur. La différence est ENORME. Ce n’est pas une relation unidirectionnelle, mais bien bidirectionnelle.

Lors d’un entretien, c’est aussi au “candidat” de voir en quelques minutes si le cadre de travail, le projet et surtout les gens, sont agréables, intéressants, pour savoir s’il vaut la peine de signer le contrat. L’employeur doit donc aussi préparer l’entretien, chaque jour, en faisant de son entreprise celle qui sortira du lot, pour que les meilleurs viennent à lui.

Le livre “Peopleware” a été écrit il y a 20 ans exactement, et pourtant peu de professionnels RH en Suisse romande en ont entendu parler (encore moins lu). Le marché du soft et du web n’est pas similaire aux autres: le turnover peut tuer une entreprise qui compte sur le génie de ses employés, mais il faut savoir aussi que c’est la branche de l’industrie dans laquelle il est le plus simple du monde de changer de travail.

Alors, pas d’autre solution: il est temps de changer les mentalités.

Tant que les sociétés ne se rendent compte (à la façon de Apple, Sun, Microsoft ou Google) qu’il faut créer un cadre de travail exceptionnel pour y accueillir des gens exceptionnels, tout cela pour créer des services et des produits exceptionnels, qui vont générer des bénéfices exceptionnels, les entretiens d’embauche suivront un cours plutôt “classique”, avec une claire distinction “employeur / employé” basés sur une hiérarchie digne du moyen âge, et non pas du 21ème siècle.

LinkedIn is hiring

Another open space! Wheeeeee!!!!!

We’re going to be building out the space to create a environment really optimized for our great engineers, product managers, web developers, designers and quality engineers to all sit and work together. Very high energy, with a lot of thought given to providing the best possible place to design & build the features for the world’s largest professional network. When the space is done in a couple of months, we’ll have room for another 120-150 people, and we’ll post pictures of the launch. But as a teaser, here is a quick 3D rendering of the type of stations we’re planning for the space:

1989418421_3a7fe530ee.jpg

What I find hard to believe is that the guy actually uses the word “teaser” for the most horrible, common, mediocre of office space setups, one that you can find (and suffer) anywhere on Earth. And 3D rendering? 3D RENDERING? They’ve used a CAD program to do a photo that you can find in any IKEA catalog?

This article is absolutely amazing. The more I read it, the less I understand it. Hasn’t anyone read Peopleware? Geez.

Rethinking the Corporate World

In Buenos Aires I’ve studied corporate management (I did, shame on me), and as part of that, I had to learn about all the different identified types of organizations: matrix-based, pyramidal, military, organic, etc. Afterwards, books like Peopleware made me rethink these concepts, particularly when seeing the pityful state of some software development companies here and there.

I mean, except some unusual exceptions, our work environments typically suck. Deeply. Nobody gives a damn about your ideas, and you’ll just have to sit there in crowdy and noisy open spaces, and do the stupid things that you’re told to do, and everything is a horrible command and conquer experience. Working in this free market, post-Berlin wall world, the only choice you’re left with is suck it up or leave.

Welcome to the free world. You’re free to starve or to choose who to submit your soul to during 40 hours per week.

In the software development field, changing jobs is a comparatively easy thing to do, with the few exceptions of the software crisis in the mid 70s, at the end of the 80s and between 2002 and 2004, but in any case those crisis happened during short periods of time. But in other industries, people, for many reasons (mortgage, family, etc) they have to stick with horrible workplaces, awful jobs, incredible amounts of stress and awesome levels of burnout. Why does it have to be this way?

And you know what? It doesn’t have to. Some company out there, in a more “brick and mortar” industry than software, thinks that the current way of doing things is wrong. If you haven’t heard about Ricardo Semler, go and watch this movie from the MIT. It is amazing. This guy, CEO of a industrial company in Brazil for the last 25 years, has totally changed the way things are done, and brought some extremely innovative ideas to his company, which has since sustained a 900% growth (!) with as little as 2% turnover (!!).

Now go watch it (it’s only 40 minutes long), and I hope, learn something. I think that the Swiss business environment really needs to change, and Semler’s approach might work. And by the way, the guy is really funny!

(Through 37signals’ blog)

Proto-Anarchism? Who knows?

Interesting observations about Amazon:

Innovation can only come from the bottom. Those closest to the problem are in the best position to solve it. any organization that depends on innovation must embrace chaos. Loyalty and obedience are not your tools. Everyone must be able to experiment, learn, and iterate. Position, obedience, and tradition should hold no power. For innovation to flourish, measurement must rule.

Did you know that these basic principles come directly from anarchism? I do not say anarchy: I mean anarchism, the political ideology, which states as a basic element the elimination of hierarchies, the root of all evils of mankind.

It is interesting to see how the concepts of common property (open source) decentralization and trust (wikis) or elimination of hierarchy (in some innovative companies) are slowly apprearing in the computing world; will ever be “free beer” with “free” as in “gratis” and not only as in “freedom”?

There’s more to project management than just command and conquer… But we’re really too far away from a real free society.

Holding a Program in One’s Head, by Paul Graham

Brilliant.

It’s striking how often programmers manage to hit all eight points by accident. Someone has an idea for a new project, but because it’s not officially sanctioned, he has to do it in off hours—which turn out to be more productive because there are no distractions. Driven by his enthusiasm for the new project he works on it for many hours at a stretch. Because it’s initially just an experiment, instead of a “production” language he uses a mere “scripting” language—which is in fact far more powerful. He completely rewrites the program several times; that wouldn’t be justifiable for an official project, but this is a labor of love and he wants it to be perfect. And since no one is going to see it except him, he omits any comments except the note-to-self variety. He works in a small group perforce, because he either hasn’t told anyone else about the idea yet, or it seems so unpromising that no one else is allowed to work on it. Even if there is a group, they couldn’t have multiple people editing the same code, because it changes too fast for that to be possible. And the project starts small because the idea is small at first; he just has some cool hack he wants to try out. Even more striking are the number of officially sanctioned projects that manage to do all eight things wrong. In fact, if you look at the way software gets written in most organizations, it’s almost as if they were deliberately trying to do things wrong. In a sense, they are. One of the defining qualities of organizations since there have been such a thing is to treat individuals as interchangeable parts. This works well for more parallelizable tasks, like fighting wars. For most of history a well-drilled army of professional soldiers could be counted on to beat an army of individual warriors, no matter how valorous. But having ideas is not very parallelizable. And that’s what programs are: ideas.

About Mercury TestDirector for Quality Center

Mercury TestDirector for Quality Center is an enterprise-class solution, recognized as one of the most complete and integrated software suites geared towards the management of testing- and quality-related activities. Mercury Interactive, the company behind TestDirector, was bought by Hewlett Packard in 2006 for USD 4.5 billion (Wikipedia). TestDirector is used by several important organizations such as Nextel, the United States Navy, Nestlé, Qualcomm and Shell (Mercury Website, 2007a). Continue reading