Last week marked the end of ODK's first time participating in Google Summer of Code (GSoC). GSoC pairs students with mentoring organizations like ODK for summer internships and you can read more about this great program here. I wanted to take some time to reflect on the experience so that we can continue refining our approaches and processes for future GSoC rounds as well as for other intern projects such as Outreachy.
First of all, a HUGE congrats and thanks to @Shobhit_Agarwal who spent the summer with us. He has been and continues to be a very important member of the ODK Collect development team and the broader ODK community. Read about the summer from his perspective here.
In addition to the improvements that have already gone out, @Shobhit_Agarwal produced a prototype of a different approach to the Collect UI which focuses on forms rather than actions. Please note that this is NOT production ready. If you would like to try it out on a non-production device and provide feedback, you can try this debug APK or build it yourself from his fork. You can install it, try it and then go back to current releases of Collect without affecting your forms. However, I would recommend making sure blank forms and filled out forms are backed up.
@Shobhit_Agarwal identified and fixed a large number of issues and bugs related to the Collect user interface. He also safely made big changes to the underlying libraries that open up a lot of new possibilities. He and I spoke almost every day and in addition to having productive conversations, we had a lot of fun along with the rest of the dev community. His presence was energizing and in addition to his core project he also helped refine and improve many processes related to Collect development and releases.
There were a lot of students interested in ODK which is very promising. An impressive 40 completed high-quality applications! Even though sadly they could not all be part of GSoC, they each contributed valuable fixes during the application period. Additionally, they helped troubleshoot and improve contribution guides and open the door for more new contributors.
We were not prepared for the application period! During this time, over a hundred students came to the project needing help, starter tasks, code review and reviews of their projects and applications. This was very time consuming and a bit chaotic. It would have been really helpful to have more volunteers for this part of the program and to spend more time upfront designing starter tasks and dividing up code review. For future such projects, I would recommend that volunteers work within a specific tool to minimize context switching (e.g. I was doing review between Collect and Briefcase and that was a mistake).
All of the suggested projects that we listed turned out to be very ambitious for a 3-month internship. In particular, we underestimated how long it would take to get community feedback and buy-in. I think some of this will be better moving forward because we now have this forum. Additionally, other mentoring organizations have suggested projects that less heavily touch core components to reduce review burden/risk and also structuring projects more loosely with approaches like bug hunts.
For me, the reasons for ODK to participate in GSoC were to get useful improvements for users merged and shipped, to encourage long-term contributions to ODK and open source more broadly and to support a promising student just starting their career. I think all of these goals have been well met!
On a personal note, being a mentor was a deeply rewarding experience and I really look forward to continued collaboration with @Shobhit_Agarwal.
I'll be going to the GSoC mentor summit October 13-15 (another perk of being a mentor!) and I'll report back on that experience on this thread.
I hope the community continues to participate in these kinds of initiatives and that we can grow the number of mentors involved. If you have any questions about GSoC generally or about this summer's project, please ask below.