I am very grateful for having been allowed to participate in Fedora Summer Coding 2010. I have learned so much about music and audio software, about documenting software, about the Fedora community, and about doing things in an open-source way.
One particular sore point has been bugging me throughout the entire process, and I want to get that out of the way first. The original intention was to offer USD$5,000 to each successful student participant, but this was later reduced to USD$1,000. The reduction was announced after the application deadline, but before releasing the results of which applications were approved. I still don’t know whether I made the right financial decision this summer, and the late announcement of the reduction makes the Summer Coding SIG seem sneaky and unfair. While the reduction was almost certainly done with the intention of allowing a greater number of student participants, it also undermines the legitimacy and viability of a Summer Coding program. Had the original intention been to offer USD$1,000, I would not have applied – I would have gone on to seek a different job. That said, it was my own decision to continue with Summer Coding after the smaller award was announced, and the $5,000 estimate was clearly marked as only an estimate. The problem is that there is a large difference between the original estimate and the final result.
This was the only negative aspect of my Summer Coding experience.
The application process was a little bit confusing, but nothing that some careful attention couldn’t overcome. Looking at the other applications, and the origin of those which were approved, it seems that non-native English speakers were at a significant disadvantage. There were certainly other factors involved. Many of the Chinese applicants, for example, wanted to work on the Ailurus package manager, which is not available in the standard Fedora repository, and replicates functionality in the existing PackageKit package manager. Furthermore, I’m not sure that it’s a bad thing for the application process to be a little bit confusing. If you’re going to be doing open-source development work, you must be able to work through LOTS of confusing documentation and instructions. That’s the nature of the beast! Even as I whine about this, the “Four Seasons of Code” Summer Coding project developed a repeatable, quasi-standardized application application for summer coding-like events.
Another thing about the application process is that it was quite demanding, and not all applicants finished all of the required components. The only reason I was able to complete my project is because I took the application’s requests very seriously, and filled it out in detail that I thought was excruciating. Success comes with planning. Enough said.
After the application process, the Summer Coding requirements simply vanished, and I was basically left on my own (with my mentors) to construct a meaningful result. It wouldn’t work for some people, buy my preferred way to learn and do things is independently for as long as possible. It seems that “independently” is how many open-source projects get started. Once an initial version exists, collaboration can truly begin.
Twice-weekly blogging is a pain, but invaluable. Not only does it help to spread the word about your project, but you record some of your thought-process for you and other people to review later. The next time somebody wants to write a user guide, they might check out my blog posts, for example. In retrospect, I could/should have designed the blog posts much better, to illustrate the decisions I had to make, and why I chose what I did. There’s always next time.
My mentors have been very helpful in sorting out problems with me. I appreciate that they have not (generally) solved anything for me, but instead point me to the right source for information on how to do it myself. One notable exception to this is when I set up the git repository, following my mentor’s instructions exactly. This isn’t really useful for most people in most situations, however, and I probably won’t set up another git repository in my life.
The Documentation Project holds weekly meetings on IRC, and it has been helpful for me to attend these. If there is a relevant project or SIG in Fedora, I encourage future Summer Coding participants to attend their meetings. You will get to know people who can help you, and also learn about the workflow and efforts that go into producing a viable Linux distribution. Be careful at meetings and on IRC though, because you never know who might be there… Paul Frields, for example, frequents the #fedora-docs channel and Docs Project meetings, but nobody warned me. I only found out I’d been talking to the Fedora Project Leader well after the fact!