Lowering barriers to entry in KDE
Stuart Jarvis wrote a nice article the other day outlining some common reasons why people may be hesitant to make the leap to contributing in KDE. This gave me an idea just now while thinking about this. I’m hoping I can get feedback from all of you.
The number one reason I constantly see people give for not becoming a contributor (excluding lack of free time) is that they don’t know where to get started, or have some technical issue with getting setup to start coding, etc. When asked about this most people quickly provide some story about how they tried to start, got confused about some problem or another, couldn’t find the documentation they needed, and subsequently gave up because they couldn’t find the answer. I know personally that if I didn’t have encouragement and assistance from others in the community I may have been met with the same frustrations early on and given up as well. So here’s the idea…
What if we setup something like a KDE mentor program for new contributors? It could be sort of similar to the Google Summer of Code setup, but running year round. Experienced members of the community could sign up at some central web portal, list their areas of expertise relating to KDE (maybe Junior Jobs could be linked to or included here as well), and then interested new contributors could sign up and connect with a mentor. This way they have immediate connection to someone in the community who is doing something similar to what the new contributor is interested in doing. In addition to the immediate community connection it also gives the new contributor a go-to person for helping them figure out where to get started, find the project or tasks right for them, and for providing help to get them over the initial hurdles that we all encounter when new to KDE.
Some critical questions…
- Do you think a service like this would be productive for our community? (or does anything similar already exist that I might not know about?)
- If such a thing existed, would you sign up to be a mentor?
- For those of you who’ve participated as a mentor through GSoC, are there any critical lessons learned from that process that you’d want to see carried into an initiative like this?










































IMO this is a great idea! However, while I think it would help a lot of new contributors, it wouldn’t fit for everyone. I think new contributors could fear to commit to a somewhat larger project directly at startup. Once you have organized a mentor you cannot jump off the train any more that easily if you find out that its not the right thing for you.
The most important thing to get new contributors is good documentation. I think KDE is doing very well with techbase. For example I find it much harder to join Maemo development than KDE’s.
Besides extending documentation and tutorials I still think a mentor program would be a nice addition which could bring a lot of benefit. I think I would also sign up as a mentor, depending on how much time-consuming the tasks are designed.
I like the idea, I think there was a similar idea in Brainstorm, but your suggestion is more elaborated.
Hello,
I was one of those who tried and failed to get into KDE programming. I might try again later at some point.
I don’t think live assistance is the way to go, I personally didn’t feel like talking to some developers and asking questions, when my understanding of the problem it self is so bad. What is important is that someone is able to ask the right question at the right time, and that is not possible with such bad documentation.
New developers like me like to have some reading material to go trough, and coding examples would be great. Afterwards, after one gets into the developing mindset of the current technology or platform, it would be nice to ask for assistance with specific question and not questions like “How do I do that”, or even worse “What does this mean”. These questions must be answered by reading documentation and coding examples.
I tried to write plasma widgets, I firstly tried javascript (even though I don’t know any javascript), after reading all available documentation I was still not able to answer a simple question how to add background image and some text (counter to some date) over it. I tried the same with python without much success. I guess I am a bit spoiled by MSDN-like documentation, or amount of help and examples that you can find for some mainstream languages and technologies like java, c# etc. And when you think about it, javascript plasmoids seems like the most documented technology in KDE:)
Sorry for the long comment, but I was hoping someone would notice how high the bar for entering KDE development actually is.
From the comments I got to my question, I think something like this would help hugely. As you say, people want more guidance on where to start (and a contact, maybe). There’s also a request for better documentation, which may well be valid, but any existing developer would have to balance the time taken to write better docs with the unknown gain in new developers. With an approach like you suggest, the time investment would be more focussed towards someone serious about getting involved – if someone turns up and offers to help but then disappears, the existing developers shouldn’t have too much time wasted.
Btw, thanks for the update on the EU gearwear store. I can live without tie-dye
What makes me wonder… if people can get started with assistance, can we cover these hidden gaps in the documentation? For example, a collection of typical start-up tips, and compact *dense* documentation.
Hi, there was a start of such a project, quite informal but look here
http://www.kde.org/community/getinvolved/development/
at the bottom of the page, there are KDE developers willing to mentor newcomers.
Personally I helped new developers several times, yesterday I included a template of a Konq plugin in KAppTemplate from a totally new person who contributed this. I am sorry to see that MirzaD above had problems getting in KDE development. Mailing lists are really helpful and people always get an answer. KDE is an amazing community in which it’s quite easy to enter. Making this mentor idea more prominent will help new comers.
As a side note, the KDE gear website rocks (quick, easy and secure) and I am waiting for my 2 shirts!!!
Agreed, I’ve often thought about having a buddy system for new contributors, but not acted on it.
Having a mentor group that meets infrequently and presents what we’ve done to help our students would let us identify things that need to be better documented, which could then be put in the wiki as reference or tutorials, saving time and make KDE more accessible without having to ask an expert.
Documentation VS Live online help…
Both are needed, but this is how I see things:
Documentation is written one and thousands of people have access to it. It represents static information. But imagine how many times would developers need to repeat the same thing to everyone who asks ? Each time there is question little different or eve the same developer needs to waste his time repeating him self.
I truly believe that availability of well written documentation will help gather serious developers to KDE, and maybe even lure and capture the ones who are only trying new things. Online ‘live’ help, on the other hand will help ones who are already into KDE programing, solve their problems with ease.a
There really should be KDE summer of documentation
Regarding documentation, I think this is definitely a hole that needs to be filled in. The problem is that while it’s noble to think we should just improve documentation that is MUCH easier said than done. Who do you know amongst your developer friends who likes to write detailed/thorough documentation?
One way this mentor thing could be used though is that when a newcomer has a question and the mentor helps answer it the newcomer then documents this information somewhere so it’s available to future newcomers.
@MirzaD – I totally agree that new contributors do need to do some homework and read the proper documentation where applicable. I’m not really suggesting that we setup another pool of KDE community members to sit in a chat room or whatever to just answer questions all day. We already have various IRC channels where people can go to ask one-off technical “how do I do this?” questions. I’m thinking this would be more like a buddy system for higher level guidance. Sure, they could help with technical questions too if needed but the goal is more to teach people how to find the resources they need rather than just answer specific questions. Especially when it comes to introducing newcomers to the right people.
KDE is a community, not just a software project. Imho, getting to know the people participating is the number one way to ensure a contributor stays involved in the longer term. Looking at my own situation…I do KDE Promo stuff because I think it’s interesting and challenging, but another huge reason I keep doing it is that I have a good time working with all the great people on that team. That’s the kind of thing I want to help other newcomers do…get connected to other people so they don’t feel like they’re all alone here or working in a vacuum.
Some new devs (like me), may be scared because :
- the codebase is big and they may be are afraid to make more harm than good because their programation skills & kde tech knowledge is poor.
- they are afraid to ask. Or to be a burden for more experienced devs.
So I would like to propose a slighlithy modified concept : “New contributors’ project”
The idea is that :
- periodically, a new application project will be started from scratch (so no pre-existing codebase)).
- The project will be announced with a date for the start, and some draft documentation will be made available.
- Interested new contributors can register (ideally before it starts).
- Interested experienced devs can register as mentor (also before it starts).
- Mentors should not write any code, but only comment on the merge request and propose code improvements. They will also do project coordination. They should of course be available for questions and give pointers to relevent documentation… etc.
- The main aim is not to make an über-cool app, but to make progress in kde hacking.
This way to register for the program is not too intimidating (it is not like you promise to be very active : you don’t have a personal mentor, the mentors are for all the newbies). Also you may be less afraid to ask as the others will also ask “stupid” questions…
@bzhbok – I don’t think it quite fits what I was thinking of with my original idea but this is something I would advocate doing in addition because it’s a good idea. It might be something we could work into our KDE Forum Klassrooms. They setup a course, people sign up, and a mentor runs through a project that is defined in advance. If my memory is correct there have been previous ones that have taught people about contributing to Userbase or doing bug triage. I see no reason why there couldn’t also be a class like you describe that focuses on building an application from scratch. I will propose this to the group who manages that. Keep an eye on http://forum.kde.org/viewforum.php?f=71.
It seems from the comments here and from Stu’s blog a big hurdle is how hard it is to actually get coding. As non-coder I have no idea, obviously – but it seems the Klassroom thing should be very useful. We do advertise those, and should continue giving the courses and communicating them…