What is this? A few people inside the Calligra community are advocating trying to establish a mentoring program for people who want to start contributing to the Calligra project. This page describes the current suggestions and progress of the creation of such a mentoring program.
So far these people have signed on as mentors:
- Boudewijn Rempt (boud) 2011-09-17
- C. Boemann (boemann) 2011-09-17
- Inge Wallin (ingwa) 2011-09-17
- Jaroslaw Staniek (jstaniek) 2011-09-17
Motivation for starting a mentoring program
There are a number of arguments that make Calligra project suited to a long-term mentoring program:
a) Since the Calligra code base is getting quite big, it is becoming increasingly difficult for new contributors to find their way i/Contact/nside of it.
b) At least a part of the people who have previously shown interest for joining the Calligra project do not have previous KDE or Qt related development experience - which together with a big code base might be a bigger hurdle for joining than previously suspected.
c) There are reasons to assume that the dwindling number of newbies come at least in part from a lack of people available to capture and engage newbies who have shown interest. With a mentoring program, all the mentors will be mentally prepared to engage with newbies in a completely different way than they would be with the Junior Jobs scheme. It is also suggested that a mentoring program has a coordinator for ease of handling the administrational tasks of the mentoring program, and thus offload the developers somewhat.
Mentoring program format basis It has been suggested that the mentoring program assume a similar form to the relationship between a PhD student and his/her advisor, or a master thesis supervisor and his/her student. This means:
- 2 weeks, 1 month, 3 months, 6 months, 12 months lead time for each mentoring relationship has been suggested.
- formal meetings with regular weekly or biweekly intervals, * presentations by the mentored person of finished work to the mentor.
- reviews by the mentor, of the mentored person's finished work tasks. Adherence to code standard will also be important here, making sure the protégés know how to request reviews and handle git. The protégés should also be familiar with API design principles and similar, for those who work on the API side.
- grading of work task performance.
- a mentor evaluation based on the reviews by the mentored person at the end of the mentoring period.
- End Certificate for the mentored person. The Calligra akademy mentoring program is suggested to lead to a formal certificate of participation (with a graded performance?).
Mentor program activities for the Mentor
- Defining a string of tasks with increasing difficulty level for each person you mentor.
- 3-4 meetings per year for defining new tasks (these meetings can probably be held during Calligra sprints, and the Mentor program coordinator should handle the collection of the work tasks for publication on the Calligra website).
- 1 hour Weekly or 2 hours biweekly meeting with the mentored person (depending on how much time they have spent on their tasks).
- (grading? Certificate creation).
Mentor program activities for the coordinator
- Collect and publish new strings of mentoring tasks
- Make sure to engage with newbies and hopefully get them assigned to mentoring programs.
- Make ongoing evaluations of the mentoring program to improve it as flaws or imperfections are found.
- Resolve conflicts between Mentor and the mentored person should such arise.
- http://en.wikipedia.org/wiki/Gamification (showing participants their progress in a clear way, with different mentoring project levels etc.)
- Code standard is available at: http://techbase.kde.org/Policies/Kdelibs_Coding_Style
- API Design principles are available at: http://developer.qt.nokia.com/wiki/API_Design_Principles
- Progit book
- Thinking in C++ book
- Blanchette and Summerfeld, the Qt book: http://dcsoft.wordpress.com/2010/01/30/qt-book-download-c-gui-programming-with-qt-4-second-edition-by-jasmin-blanchette-and-mark-summerfield-prentice-hall/ (Specifically, Qt for Java and C# Programmers: http://www.informit.com/articles/article.aspx?p=1405565 )
- KDE apidox
- Calligra apidox
- Qt apidox
- How to make a patch for Calligra http://techbase.kde.org/Contribute/Send_Patches
- Commit filters for automatically being notified when something happens to code that concerns you: http://commitfilter.kde.org/
- The central commit rules (make sure it compiles, follow existing coding style, use descriptive log messages)