Two households, both alike in dignity,
In fair Toulouse, where we lay our scene,
From ancient grudge break to new mutiny,
Where student blood makes academic hands unclean.
et caetera
Wait! This time, it has a Happy End(tm) - this time we have Konqui instead of Mercutio!
Introduction
KDE 4 is coming. It will be the next major version of the KDE project, but all this is only possible thanks to its contributors. Many of them started contributing in their free time while still being students. We can get even more students contributing by proposing student projects in universities. I therefore present a collaboration experiment conducted last year near Toulouse, France with the IUP ISI at the Paul Sabatier University.
The ISI is a "Professional Institute" (with the IUP quality label), performing software engineering with a strong focus on project management, development processes, quality assurance, and distributed and real-time systems.
The goals of the KDE/ISI collaboration are to enable students to apply what they learn in class to a dynamic, real-world project, learn new techniques and technologies by themselves, and to experience project management and client relationships "for real".
The collaboration is organised as a group of 6 month projects, with professors acting as the client team, and students acting as the development team. In our first year of the experiment, we proposed projects close to the usual topics: KPlato for project management, and Umbrello for UML modeling. To assist the students, we installed a machine with NX so that they can test applications without needing to install another operating system (some students still don't run Linux!), and so that they do not need to deploy the unstable software on their work computer.
Problems and solutions
The obvious potential problems of the experiment include:
- Deployment of the development platform
- No communication with the community
- Troubles tracking community progress:
- We began shortly after the "BIC monday" policy within KDE development
- Visibility of the work done
To mitigate these potential problems, we:
- Gave technical support during the first weeks (deployment)
- Allocated KDE mentors before the students started:
- Jonathan Riddell (Umbrello)
- Thomas Zander & Will Stephenson (KPlato)
- Pushed them to contact sysadmin for KDE SVN accounts
- Let them choose how to work:
- 3.5 vs trunk?
- In a specific branch or not?
- Tracked the commit logs
Umbrello and KPlato defences (evaluation session) | |
Work officially done in the first year of the experiment:
- KPlato
- More views (tasks per resource, metrics and graphs)
- PERT support (view, editor, critical path)
- Umbrello
- Migrated to a sane undo/redo framework
- Added support for some UML 2.0 primitives:
- Sequence diagram
- Activity diagram
- Umbrello branch merged back on trunk
- KPlato architecture improvements proposals
How did it work?
What worked well:
- Interaction with the community
- Students were shy but felt welcomed
- Slowly improved their communication
- Unexpected idea: two Hacking Sessions on Saturdays
- February and March, the last two months
- Formed a core team, it's now monthly!
- Project management
- Not easy to be process-driven inside the community
- Professor team should be more pro-active in this area
- Visibility of third year students work
February and March hacking groups | |
In the second year of the KDE/ISI collaboration, we modified the rules of the system. The current situation at the IUP ISI is that students can propose as many projects as they want, covering any domain that they want (eg. instant messaging, multimedia, etc).
Some of the students who participated in the first year of the experiment are still active in KDE, and many of them found nice internships thanks to their projects: some of them even spread Free Software at their internship!
In the second year of the collaboration, we also have less constraints on the projects, and with the success of the first year, we can now have more groups (4 teams, a +100% raise!). We have more manpower, thanks to awareness in the KDE community and because students from the first year are willing to help.
Learning from past mistakes
- Reduce the load on people to allow better scalability
- Ensure more visibility of student work
- Avoid the client confusion experienced
- Professors acted as client, but they didn't have the required "user knowledge"
- Revised organisation
- One project manager, who
- Receives a report from the client at each iteration
- Discusses the documents and project progress during meetings
- Proposes ways to improve the project management
- Technical support
- Two people per project
- A group available for daily concerns (mostly on IRC)
- Available on site once a week
- Proposes ways to improve application design and code production
Communication processes within the collaboration | |
This year, we first introduced all the potential projects to the students, and then let them form teams of four students and choose the project they wanted - this gave them experience in conflict resolution! The projects chosen by the teams (see photo below) are:
- KsCD
- Client: Aaron Seigo
- Topics: Multimedia
- Kopete
- Client: Matt Rogers
- Topics: Networking
- KSirk
- Client: Johann Ollivier Lapeyre
- Topics: Game, Networking
- Kapman
- Client: Johann Ollivier Lapeyre
- Topics: Game, Framework design
Teams in the second year of the KDE/ISI collaboration | |
Toward Free and Open Source World Domination?
Spread outside the IUP ISI?
- In discussion with a local engineering school for a similar scheme
- Need to adapt depending on the type of school, their schedule, etc.
- In my opinion, we must spread these kind of schemes
- Probably needs to be adapted depending on the culture
- People willing to replicate in India and other countries?
Advice to get you started
- Build trust
- Both with students and professors
- Give the professors guarantees on how to track progress
- Even if they don't use them
- Be flexible and committed
- Be ready to give up on the type of applications chosen
- At least the first year
- With success, you can ask for more
- Be ready to feel alone when supporting the students on the technical side
- At least the first year
- With success, you can get more help thanks to new blood
Summary
The Idea
- Setup Free Software projects as part of a course of study
- Have groups of students working on a common project
- Students get a better chance to have an interesting internship/job thanks to Qt & KDE skills
- More people working on Free Software applications during the project span (6 months!)
- Addiction: Fresh blood enter the project community!
Thanks
- To the professors of the IUP ISI, Toulouse for their support of new ideas and for allowing this idea to grow.
- To the adventurous students for the nice work done (and congrats on your diploma!)
How to help
- Spread the idea to universities near to you
- Try to set it up in other universities
- Feel free to ask for advice or information!
- If needed I can also discuss with your professor/staff, etc.