Long time no see, huh? Yes, I neglected my blog and as such didn't post anything since Akademy 2014... Interestingly this is the last one where my dear Paul Adams held a famous talk. Talk he is referring to in his latest piece. Since his blog aggregation to Planet KDE is broken, I thought it would be a good idea to relay it on my own blog to give it more exposure. It is reproduced below, if you want to read it in its original form, click through the title.
Paul, the mic is yours now!
Many of you reading this are probably already aware, long-time maintainer of glibc Roland McGrath has recently retired from maintaining that project. Inspired by his words, I wanted to say a few things about why I no longer contribute to KDE; a project I “retired” from some time ago now.
Recently two very good friends of mine, both long-term KDE contributors, inquired if I was going to be attending this year’s Akademy (the annual KDE conference). Neither were particularly surprised when I said I wasn’t.
I was surprised that they asked.
Getting Into KDE
My first experiences of KDE were many moons ago; sometime in the very early 00s I guess. I had installed Linux on an old machine and was not particularly enjoying the desktop experience.
There wasn’t a desktop.
I cannot remember which distro this was. It had come off some magazine’s cover CD. There was X. And the tiling window manager which allowed me to fill my screen with x-term. This, for a long time, was just how I got stuff done. Emacs, Mutt, Lynx and some weird terminal-based MP3 player were my jam.
Some time later I was reading another magazine (Linux Format?) and it had a review of a recent beta of KDE 2. The sources were included on the cover CD. KDE looked kinda nice. Less boxy and purple than the only other *nix desktop I had seen, CDE. Until I finished my undergraduate degree KDE was my go-to desktop.
For a while I had reverted to using a tiling window manager and a screenful of x-term. This was just a convenient way for me to get through my PhD and my day job.
During my PhD I was studying Free Software community productivity metrics. I was also working on research into software quality funded by the European Commission. KDE eV (the governance body1 for KDE) was also taking part in that project. At this time KDE was almost ready to release KDE 4. It was an exciting time to get involved.
So I installed whatever the Debian stable KDE desktop (3.1021933933923932) of the time and really enjoyed the experience. Having rediscovered my love for KDE and having met some of the active community, I dived in deeper.
KDE became high on my list of projects to study during my PhD. The community was going through major changes: not only was KDE 4 on its way in, but KDE SVN was on its way out.
Gitting Ready For Change
Around 2006 I discovered Ade de Groot’s tool for visualising contributions to SVN; it was part of the English Breakfast Network3. His version of this tool utilised Python’s SVN bindings to read the repo data. Git instinct told me this tool would work faster if it parsed SVN logs rather than read the repo data through a library. I turned out to be right and this was a formative moment in my career.
I created a generic SVN log parser for use by this visualisation tool and used the same parser for other purposes; mostly other visualisations and data plotting. The ultimate aim was to expose to the KDE community what we could learn about social interactions within the community from, arguably, its most important communication tool: the version control system.
KDE SVN was4 truly enormous. It was pretty much the largest SVN repo in the wild. One very large central repo which represented the entire body of KDE code/artefacts. Around this time the strains of using such a repo with such a huge (and growing) community were prompting discussion about distributed VCS.
These were remarkably mature and structured discussions. Git was, by no means, a foregone conclusion. Other distributed VCS were given headroom and this was the first (and, basically, last) time I played with Mercurial and Bazaar. The discussions were, for the most part, very technical. I raised my voice to talk about the potential social impacts of switching from SVN to distributed VCS. Any distributed VCS.
Joining KDE eV
I spoke at Akademy and other KDE events (including the KDE 4 launch at the Googleplex) about the research I was doing; either my PhD or the EC-funded stuff. I blogged. I dented5. My work was positively received and gearheads would actively reach out to me for more-detailed analysis of their corner of KDE.
I was encouraged to join KDE eV and I did. Given that I had made precisely 0 code contributions6 to KDE this, to me, felt like an achievement.
Since day one of my involvement, KDE eV had somewhat of an identity crisis. It was really not 100% clear what it did… but anyone who had been involved with KDE for more than 6 months was highly encouraged to join. Before long it had become bloated; lots of members contributing almost nothing and the few people wanting to do something not getting enough support to do it.
KDE has switched to Git and the social changes were a-happenin’. The KDE project was starting to lose its social cohesion. Post KDE 4.0-release blues, the switch to GIT and a lack of care from KDE eV all contributed here. Other things, too. No one thing started the KDE community’s cohesion degradation. But we felt it. We even went though a rebranding… KDE was not a desktop project, it had become a suite of projects and the desktop was just one of them.
KDE had evolved and I had not.
One of the metrics I worked on during my PhD was a simple use of graph theory to measure how well-connected a community is. The contribution I made here was intriguing: as project get bigger they become less cohesive, but through careful community management, luck and clever structure, KDE avoided this.
The last time I properly attended Akademy (the KDE community conference) was back in 2014. I’d been frustrated for some time with my inability to drive home the message that the switch to GIT had o be managed properly. I’d been frustrated that nobody seemed to have noticed that my warnings were coming true.
So I gave a talk that year.
Deep down, I knew this was my last public outing on behalf of KDE. It was. After my talk a lot of people came up to discuss the mic I had just dropped. But as the days and weeks passed after the event, the message disappeared. And so did I.
So Why Are You Telling Us This Now?
This year’s KDE conference starts tomorrow. Two of my all-time best buddy KDE community members reached out to see if I was turning up.
They knew I wasn’t.
While we briefly reminisced by email, one of them pointed out that my talk from 2014 had recently come up in conversation on a KDE mailing list. That, 3 years later, the talk was being used as part of a great discussion about change in the project.
I’m really not sure what my emotion about that was. But, I did not feel compelled to join the discussion. I did not feel a need to remind people about what I was trying to achieve all that time ago. Nope. Instead, I went and pushed some changes to a core plan I had been working on for Habitat, the new home for my free time.
To all my friends in KDE:
Enjoy Akademy. Enjoy the opportunity to do some navel gazing. Enjoy the food, the drinks, the sun. Hack. Break shit and put it back together again. Remind yourselves of why KDE is special. Remind yourselves of why it is important. Very important.
I thank you all for the time we spent together.
We were all part of the solution.
Countdown to flamewar… 3… 2… 1… I know many will object to me calling KDE eV a “governance body” but, no matter how you cut it, that is what it is. At least it should be, imo. ↩
There were approximately this number of KDE 3 releases. ↩
Is the EBN still a thing? ↩
Is identi.ca still a thing? ↩
This makes me a true C++ h4xX0r, right? ↩
- otherwise throw away no feature branches needed when:
- focused team
- effort predictability
experiments and collaboration implies quantum effect branches
in any case lifetime upper bound
I am back from Akademy and this edition was particularly interesting in my opinion. Somehow it looks like there was a common theme hidden in this conference... let's go through what I consider the most noticeable events of Akademy 2014.
Even before the official start of the conference, during the KDE e.V. general assembly we had something interesting happening. We had elections for three out of five positions in the board. During the questions to the candidates (thanks all for stepping up!), it was clear that the membership was looking for people aiming at a higher efficiency and then improved KDE e.V. organization. We will see if our new board will live up to those expectations. It sounds like a new cycle of radical improvements will start after a (needed) period of consolidation and stabilization.
Then, the first keynote by Sascha Meinrath was an excellent reminder that we should be more proactive on the political landscape. If we stay in reactive mode just producing software, we won't be able to prevent centralized infrastructure, opaque Internet of Things and the panoptic surveillance system. Only by aiming at a higher political involvement can we avoid the raise of a digital feudalism age.
After this keynote, during the three days of talks and workshops, a surprising amount of sessions were focused on quality in a form or another. I was obviously guilty there with my craftsmanship cycle but Albert too. Add to those the talks from the VDG, the workshop on profiling by Milian and the one on unit tests by Shantanu to easily figure out that there's quite a few people wishing to see our contributors aiming at higher quality.
Last but not least, Paul's talk on community metrics was likely the most important one to attend this year. If you didn't attend it: go and watch the video now! I'll wait... This talk is really a wake up call in my opinion. We lost something and we need to get it back. He pointed out a silent crisis going on in the community. We still have time to get back on the right track, but we got to find the root causes and act as soon as possible. What Paul proposes is to aim at a higher cohesion in the community again. That will require a better shared technical vision, a stronger focus on our mission toward our users and a stronger focus on getting better in our contributions.
By now it is clear that the common theme of Akademy 2014 was that we ought to generally aim higher. Overall, we are in a good position today. Unfortunately, that is also a very fragile one as the community metrics and the quality related talks highlighted.
We're likely at the crossroads now. The decisions we'll take in the coming weeks and months will lead us either to regress or to strive. In my opinion, we can only strive by improving in the areas mentioned above. In some way, that is very good news! We are mostly in control of those areas to improve. It means that success is reachable if we have enough collective willpower to do what's required to seize it.
I meant to write a post about the upcoming Akademy for a while now. Since I submitted quite a few sessions (obviously requiring preparation) and I had to prepare for the KDE Frameworks BoF, I never quite found the time... until now! I'm all done! Actually I just have to pack my bags and hit the road at that point. It's probably the first Akademy where I'm ready four days before the first flight of my journey.
Day 0: KDE e.V. General Assembly
The day before the fun begins for the community at large, the KDE e.V. membership gathers for its annual general assembly. It can be perceived as a day long boring meeting (I know some do), but it's clearly not like that. It is a very crucial event as KDE e.V. has important responsibilities in order to help the community. For instance such a body is necessary for Akademy itself to exist! It is also represented in the KDE-FreeQt foundation...
Clearly an organization not to be underestimated. This year assembly will be especially exciting as several positions are opening in the Board of Directors, which means elections... and candidates. We have quite a few this year which is a good sign of liveliness.
Day 1: Digital Feudalism, Tech and Community
Obviously I can't miss Sascha Meinrath's keynote. I had the opportunity to meet Sascha during FISL 15 earlier this year. He is probably one of the most interesting persons I met during the last couple of years! I discussed with him some of the points he'll likely touch in his keynote about Digital Feudalism. Definitely something people should attend as it is crucial for the years to come in the Free Software movement.
Then I will obviously attend the fast track session. To me we got a few which clearly stand out like GCompris transition to QtQuick, Everything Qt, A year with Akonadi and Using KF5 in commercial applications. This fast track will conclude my first morning.
The afternoon is then packed with quite a few interesting talks. Since I can't duplicate myself I won't be able to attend everything I'd like to... I urge application developers to attend Porting to KDE Frameworks 5 and Porting to QML.
That said... in the tradition of "do as I say not as I do", I'll attend something else instead... told you I had to make tough calls! I will run in the room 2 and stay there the whole afternoon.
I'll first attend War of Idioms by Ivan. The man knows his C++ standards and is definitely enthusiastic about some of the recent changes. So am I! I had the opportunity to use new idioms while working in projects with C++11 support, so I'm looking forward to learn new ones thanks to Ivan.
Then I'll attend A tale of ELFs and DWARFs by Volker. From the abstract it could sound as something very low level, maybe it is somewhat low level... but that is impacting everything we do when developing native code. Since that's what we mostly do in our community it's good for your toolbox to know linking and loading to be able to get out of troubles when needed. Definitely healthy, like eating your veggies at every meal.
After that I'll switch in community mode, looking forward to the Board of KDE e.V. session. Curious about the KDE e.V.? You know, the organization I mentioned above as crucial. Yes, that's what I thought: you should attend this session too!
Still in community mode I'll make sure to pay attention in the KDE in Asia session. I have some kind of fascination for what's going on there. We got people in those countries doing amazing things and organizing great events. We ought to learn and seek inspiration from them. That talk has quite a few lessons for us doing promo work in Europe I'm sure.
Day 2: Craftsmanship, Usability and Design
This one will be my big day... so obviously I can't attend everything I'd like again.
At least I will be listening to Cornelius' keynote. I'm curious about his take on the personal growth experience working in a community like KDE might bring. Like him, I joined for technology but stayed for the community. I also know we have different point of views on the finer details so that will be interesting to have a broader view in a different frame of reference like that.
Then I will be on stage during the fast track session to deliver my KDE Craftsmen talk. As I said, like Cornelius I see personal growth opportunities in the community, but I think we don't seize them as much as we could. I'll make the case of why that is and where we could look for inspiration.
Of my fellow fast trackers, I'm especially looking forward to A quick guide how you can save the world or why it is impossible to do usability (what a long title for a short talk!) by Björn Balazs. Another of those skilled people which inspired me in the past, looking forward to what he's up to.
After lunch, just like on day 1, I will stay in the same room the whole afternoon. Only this time it will be room 1...
First I'll pay a visit to Andrew Lake's Community Design and the KDE Visual Design Group. Being stuck in the lower stack so far I didn't get many opportunities to interact with the people in the Visual Design Group. They did a massive job so far so I'm eager to know more on how they got there!
Next, I'll stay for The Designer and its habits by Jens Reuterberg and Thomas Pfeiffer. Looks like I couldn't get enough with only one designer related talk, so let's go for two! More seriously, I'm convinced that we could do better with truly multidisciplinary teams, and that talk might just show a path to creating those.
After that I would have loved to attend Jonathan Riddell's talk titled Do you need to be brain damaged to care about desktop Linux?. Unfortunately I'll have to pass since it will clash with my own talks...
I will give my two sessions almost back to back apparently and that's perfectly logical. You might not guess it from the title but one is the continuation of the other. In Agile to the Rescue, I'll explore the reasons why we probably need to take inspiration of what's going on in the agile community and what we should borrow immediately. In Rebooting Zanshin, I will present the type of results you can obtain by applying the principles devised in the other talk. I will show some code and metrics gathered on the project.
Probably tired of my three talks, I'll gently end the day by attending David Faure Breaks The Law!? by Paul Adams. I expect this talk to be fun in the great Humongous tradition of the term... don't be fooled though! The form might be funny, but the man is also among the most knowledgeable people on community dynamics and management I know of. I'm curious about his findings. I also expect him to show ways in which we can improve dramatically.
Day 3: Workshops
I'll start the morning with my own workshop From QtWidgets Legacy to QtQuick and beyond. It will be two hours long and it will be all about live coding with participants input. Hopefully it should be interesting to many, if we're convinced about using tests we all have the same problem: but I already got a pile of untested code?? What can I do with that? We'll see an approach for exactly tackling that problem.
Then I will likely attend Profiling 101. I ended up profiling applications both for KDE projects and for customer projects. Still, Milian is really knowledgeable on the matter, so I'll see if I can learn some new tricks or improve old ones.
For the last workshop, I'm torn... but I think I will attend Put your code to the test! by Shantanu Tushar. This is so nice to feel less alone at banging the test drums! Also I expect to learn and share on the use of mocks and stubs as my thinking is still evolving on those.
And that's it?
Of course not! The great value of Akademy is outside the official sessions. Like any good conference, a lot is happening in the hallway and during social events. This unofficial track is where great ideas appear.
Also the rest of the week we will have BoF sessions. I plan to limit myself to only three this year: Frameworks, PIM and French Promo. This way it should free me enough time to make good progress on Zanshin. Lately Akademy has been more meetings than coding for me... This year I want my share of coding!
This post is part of a series about the KDE Manifesto
So the cat is finally out of the bag... The KDE Manifesto has been officially announced. It probably came as a surprise to some of you, and since I got a unique perspective in its birth I thought it'd would be a good idea to blog about it to give some background information.
So why this unexpected party and the sudden release of this document? Well, like most unexpected events, it is the realization of an unnoticed process set in motion a long while ago. I think I would have a hard time to pin point exactly when the need to have such a document appeared in the subconscious of the community... My opinion is that it should probably have been done a few of years ago. I'm sure of one thing though, it became necessary because our community evolved in a way that its creators didn't expect.
Now, let's jump back to October 14th 1996, a student named Matthias Ettrich sent an email announcing a new project. If we examine this announcement today, what is immediately obvious? Let's see... It was an energic call to arms. It was very developer centric. It laid down some of the main technical choices. It was limited in scope by providing a list of the components a desktop needs. Also, at the same time it pointed out that more than what was listed might be needed, claiming it's a very open project.
After this announcement, people started to join and to happily work on KDE. They clearly delivered, release after release, KDE was getting bigger and better. Nobody really thought about the community which formed, it was all about the technical artifacts (which is totally fine, I'm not judging). This trend continued for years, pushing KDE (the desktop) toward its popular success, while the community making KDE was growing.
It's time to fast track to the year 2006! The community behind KDE is busier than ever (the first KDE 4.0 alpha will be released the following year), and all this activity shows how big and complex this community became. Teams formed, not every team progressed at the same speed or had the exact same vision of the whole. Clearly something happened in our community which changed it.
That same year we had Akademy in Dublin, probably one of my favorite Akademies. And remembering that particular edition two things struck me:
The first one is Aaron Seigo's keynote which was subtitled "The Quest for Project Identity and Definition"... Interesting, in retrospect, isn't it? But lots of people probably attended it, I won't spend more time on it, you probably got the idea from the title.
The second one got probably unnoticed to most. It is one of those tiny details which are really precious because the event passes quickly... and somehow I remember it vividly, it touched something in me and stayed in my memory. During that Akademy, Matthias Welwarsky was chairing the community track of the conference. During one of the introductions, and probably in reaction of the keynote mentionned above, he said that to him "KDE is not a project anymore, because a project has an end, it has become an on-going process".
And here it is... I think that in one sentence, Matthias Welwarsky has put the biggest change which happened to KDE in plain sight. The event which was unforseen by the creators of our community, at some point between 1996 and 2006, KDE became an "on-going process". And that's right, if you look at the original announcement of KDE, all of the goals set there were reached in 2006...
KDE was still operating, but in the unknown, what is this "on-going process" trying to solve? Nobody could provide an answer to that question anymore. Somehow we created something self-sustaining which was delivering more and more software.
It took a few more years before someone really tried to visit what was going on and to characterize what KDE meant... At that point it was clear it wasn't simply about KDE the desktop anymore, the community was doing much more than that. That's why in 2009, our marketing team took the lead and announced the repositioning of the KDE brand. KDE wasn't a product brand anymore, so not a single KDE the desktop anymore, but it was a vendor brand. It meant that from now on KDE the community was producing (among other things) a desktop. The new word on the street was "KDE released KDE Platform 4.5", "KDE released Kontact 4.7" and so on... Quite a change of perspective!
I know some people didn't really like the marketing team taking the lead on that... I don't have a strong opinion about the exact content of the repositioning, but it clearly was the tip of the iceberg of the mutation of KDE. It had the merit of making it explicit at last!
At the same time, despite such a brand repositioning being welcome, it was not enough to address the changes in our community. It emerged because we kept going after reaching the goals set in 1996. It emerged because we were creating more and more diverse products: development platforms, workspaces, desktop applications, mobile applications, even server applications (Kolab was born in our ranks, ownCloud would appear in 2010). But, it didn't allow to answer "what is a KDE project?".
And that's pretty much the situation we were at in early 2012. "KDE" is the name of the community, and this community makes products. So we're in a situation where "a project is a KDE project because it has been created by people in the KDE community". It's not exactly satisfying though... What if someone from the community creates a database system? is it a KDE project? (hint: the answer depends on who you ask) What if someone outside the community creates a mobile application? can it join the KDE community? under which conditions?
I'm not making this up. Those are real questions which arose over the years... and we never had a tool to help us devise a proper answer. We dealt with that in an ad hoc manner, and it was a growing pain. I'll go as far as saying it had potential to hurt the cohesion of the community.
That's what we're trying to fix, and we'll see how in the next post of this series. :-)
Only a few days left before the Desktop Summit 2011, I'm really looking forward to wander around in Berlin again. I'm excited and almost counting hours before my flight out on friday morning! Yes, I'll be there:
And I'm not just attending, I'm also giving a talk on monday during the afternoon (3:20pm to 3:50pm). It's titled "We're a family" and it's a look back at the efforts I put into a Community/University collaboration in Toulouse for the past few years. I had talks around that topic already for an Akademy, but this one is going to be special for two reasons.
First, it'll be much less about the organizational challenges such a collaboration carries than the human impacts it can generate. Here it'll really be about showing the bonds it created among the people participating in this collaboration, and the opportunities it created for the students in the community projects. It will also cover the local and global influences those students had on the community.
Second, the course of study where this collaboration was taking place is closing... Right now it's not yet clear if the students projects we had in the past will still be possible. So this talk is really a wrap up about what happened in Toulouse for the past few years, and probably a "goodbye". Even if we manage to create a new collaboration somehow, this talk marks the end of an era. That's why we tried and managed to line up several generation of students related to this adventure. We'll have a lot to share, but maybe not enough time for all the most juicy secrets. ;-)
So, if you're looking for some laugh, tears, and insights on such a Community/University collaboration, hopefully it'll be the right talk to attend. Don't miss it!
On my side I'm putting the finishing touch to the talk, and of course it'll be ready on time.
If anyone out there wonder why Aaron Seigo's blog is down, the reason is pretty simple... Its author got burnt out because of some of the poisonous people in our project. The story started several weeks ago (probably even months ago) with constant bashing of some of the decisions taken in the Plasma project (which is not a one person project by the way). It culminated last week with very rude and useless mail threads on kde-devel, and yesterday on the dot with personal attacks.
That's why Aaron decided to retire from the public and do what he truely loves: code. No more blogs, minimal involvement on lists and IRC to ensure coordination with the other developers. That's what we obtained after those weeks of angry poisonous mobs. You might think: "well you can ignore them". Really? Could you? Such people can bring a lot of stop energy. Really a lot of it, and that worries me. It seems that the project I love is not a nice place to live in anymore.
When we are able to turn down one of our public face, someone very active and energetic, we really crossed a line. Of course, we could shake head, and think "tsss, those poisonous people, they've no idea what they're doing". That's even probably what we did during those weeks of bashing... and still we let it happen. I think that's the most frightening side of the issue: nobody stepped up, and no actions are taken to make KDE a better place again. Oh, and don't worry, I have my share of guilt in this story... I didn't step up either.
Worse than the stop energy carried by poisonous people, there's the apathy of your peers. I don't want that anymore! We have to end it!
Of course, I'd like to propose a way out, but I've not much to propose. Here are my attempts at bringing some improvements proposing some actions which could be taken (in no particular order):
- Recruit more editors for the dot, as far as I know they're overbooked and can hardly moderate it;
- To help the dot editors, we have to improve it's engine with a real moderation system (how come most news site I know have one but not the dot?);
- Write a code of conduct (probably something for the e.V. membership), and publish it as soon as possible;
- Enforce it, especially on mailing lists and on bugzilla, mediating as necessary, and banning people in the most extreme cases.
That's definitely not much, but that's a start... More ideas are welcome, but most of all: acts are needed. We must stop this kind of behavior.
PS: I'm not linking any thread, bugreport or mails on purpose. I don't want to point finger. Aaron's reaction is a symptom of something broken in our community (in the broad sense, all contributors and users included) it's just an example (and not the first case). If you want specifics, do your homework and dig our archives it's all public anyway.
Once again I didn't blog in a while... In particular I didn't blog about this year project students even if they got covered once in the commit digest. Now we're two weeks away from the official end of those projects, so I thought it might be a good idea to show some of their accomplishment.
This year we experimented with a project starting from scratch, and apparently we had some demand for a copy of an old famous game... hence why now we have Kapman! It's kicking and alive, it's in a pretty good shape already so maybe it'll be able to enter kdegames in 4.1. Of course it's all SVG based so you can freely resize it (artists wanted!).
We also poked the good old Kscd... Our team made quite a lot of improvements in there. In particular it's now fully themable using SVG (artists wanted!), and uses MusicBrainz to identify discs. Of course it also got the expected KDE4 refactoring: it got ported to Phonon and Solid.
Ksirk is one of those games we have in playground for quite some time. One of our team has been working on it to improve its quality and make it releasable... It's definitely getting there. They mainly worked on improving its usability and that shows in my opinion. At least now I feel like I could play with it for hours. :-)
Last but not least, this year we got a team working on Kopete. They did an awesome job, it's harder to demo or to make a screenshot for it, but they mainly focused on integrating support for UPnP and for the new live messenger protocol. On the UI front it looks less impressive, but I'm very proud of this team, they definitely had the hardest project to work on and learned a lot. Since I had no screenshot to offer, here is a picture of today's "Kopete Gang of Four" who attended the hacking session:
A few words on the hacking sessions...
Of course, after last year projects we kept the good habit of having KDE Hacking Sessions in Toulouse, we even have now a few people who are coming regularly... the community is definitely growing here. And during the student projects we have an unusual amount of my students showing up. ;-)
Missing on the picture: Thibault Normand who arrived later, and Alexis Menard who is unfortunately sick today.
For the second time in my life have been interviewed... It's part of the People Behind KDE serie. Thanks a lot to fab for his patience, since well I'm not that cooperative with interviews. ;-)
So now you can read my People Behind KDE interview to know how lovely or mad (it's your choice) I am.