portrait picture

TIMO ZIMMERMANN

balancing software engineering & infosec

Pull Requests, Developers And Respect

posted on Sunday 13th of May 2012 in

There is currently an interesting discussion going on. Linus Torvalds started
one on GitHub stating that GitHub is doing pull requests, commit
messages and some other things horrible wrong. As always we have two groups
that believe they are right and heavy flamewars are emerging on community sites.
I believe they both miss the most important points.

It is basically unimportant who is right or what the right way to do pull
requests is or how you should write commit messages. There is a basic problem
and I have seen this for many years now.

Linus created Linux and Git. No matter what I think of him I acknowledge what
he did and I am thankful that he and the team around him is doing it. Without
Linux I am not sure where I would be today. It is likely the only fact why I
still care a bit.

Maybe it is a hard statement that is not entirely true but from my point of
view most developers who created all the software we needed to get where we
are today, that power the internet and other things, became cranky, old,
stubborn man. They believe they are right, they do not care about arguments
and sadly there are always people that are behind them and take everything
they say for granted because they accomplished something.

About Kings And Kingdoms

Let us get back to commit messages. There is a certain style Linus has chosen
for Linux. If you want to contribute you are supposed to use this style for
your messages. It fits his workflow and it is his project. He is the king and
if you decide to enter his kingdom you stick to his rules. It is that easy.

The same is true for pull requests. If you want to contribute to his project
you stick to his rules or you are just lost. No matter if you like this fact
or not as long as he invests his time to work on his project it is his
decision. There is no point in arguing. You just have no right to complain.

Linus, as many other developers from the 1970s to 1990s, used to work with
systems that could only display 80 chars. And since 20 years their workflow
did not change. Everything new was called stupid, useless or crap because
they did not stick to the same principle they started using decades ago.
Innovation? New ways to work? “We do not need this, what we have worked all
the years.” I have no idea how you can be innovative and stubborn at the
same time.

Many projects proved that GitHub works. But still Linus does not like the
way so it is bullshit and only used by idiots. He does not even consider
code from people that use another workflow. As many developers he seem
to be stuck in a time when your screen was black and your cursor green.

But what are the consequences? Currently none because everything is still
working as it was 20 years ago. But developers get older. If a project
should still be maintained after you retire you have to attract young
blood.

There Will Be A Time When A King Has To Resign

Imagine you are a young, talented developer. You worked on some projects and
have developed a certain workflow. Now you become interested in a project
and want to contribute. Of course you read the guidelines and
everything you see is stuff that sounds like it was written in the 80s.
How many do you think are still interested? They would have to change most
of the tools they started loving just to contribute. And there are, again,
two groups. Those who think potential developers are lost and those who
do not care because they stick to the “his kingdom, his rules” principle.
But even if you are a king – once in a while you should reconsider your
rules.

Flowers, Love And Hugs For Everyone

Beside the fact that I am a bit worried how long a project, even
as big as Linux, can survive with this kind of leadership there is something
else that is unlovely. When those old, cranky men engage in a conversion
they make statements and start calling names. They are not open for arguments
and lack courtesy. Another thing which lowers interested in an project. At
least for some people.

I am a friend of clear words and direct arguments. But calling someone an
idiot for something that works for him or having a totally different opinion
is something different. No matter how much you disagree you could still show
some respect. Just because you maybe accomplished more – did you ever think
that maybe you just had more time? – does not mean you have a free ticket
being a dick and win every conversion just with your name.

I have to admit that this post is highly opinionated, mixes three different
topics and sounds like I do not like Linus and Linux. Well, the first two
are right. But even if I do not advocate it, I still use it on some servers
and would love to see that it continues being a kind of viable alternative
on some systems. But things have to change.

The best thing I can imagine would be if developers – everyone! not just the
cranky, old, stubborn men – stop being dicks that believe their answer for
a problem is right for everyone. Showing some respect for people that
create things would be easy. Easier than unproductive, unnecessary flamewars.