Comment: Crowdsourcing Code Documentation

Matthew Steuerer
IMM Senior Showcase 2016
3 min readMay 23, 2016

Greetings! My name is Matthew Steuerer, a computer science and interactive multimedia student at The College of New Jersey. I have been a recipient for a Research Engaging Undergraduate (REU) experience where he expressly studied human computational systems and usability design. My future aspirations include graduate school and his interests are varied between computational neuroscience, interdisciplinary computing fields, software development, usability, and artificial intelligence. While academia is one of my long-term goals, I also search for collaborative efforts between his studies and the professional world and would like to live in both. When I am not sitting in front of a computer screen, I am proudly involved in theatre endeavors (both acting and production side) as the President of All College Theatre for the 2015–2016 season, and as an improv comedian of the Mixed Signals Troupe and plan on pursuing it beyond the college level.

I must have read lines upon lines of code during my studies in two separate, yet technical, majors. Throughout my four years, I have noticed that open source projects are popular in their own communities, among employers, freelance developers, and those just beginning to learn to code. However, I have noticed one common thread through many open source projects: little to no code documentation. This simple fact makes it difficult for anyone to reuse, read, and understand the code. Seeing this as a problem that could propagate to those just learning how to program, I wanted to make a product that would work to curb this phenomenon. However, I knew that to gain traction I could not make a product that would create documentation without some type of incentive for the users. So I designed my project, Comment, with principles borrowed from Luis Von Ahn and his concept of Human Computation. This concept focuses on dividing insurmountable tasks (like generating code documentation for open source projects) into small, almost trivial tasks, and “gamifying” the tasks to increase and maintain user motivation. Comment does this with open source repositories from the popular version control platform GitHub. It downloads random code files from GitHub, partitions them so that they are divided into small undocumented sections, and presents them to users to submit comments for a particular line.

I realized from the beginning that Comment had potential to be successful, but I quickly hit challenges throughout the process. The programming challenge was beyond what I was adequately prepared for. Several database connection issues were experienced, as well as server issues (until I started using Amazon Web Services), and algorithm design challenges. I also severely underestimated the scope of the project, its size, and how much time would be necessary to create a well developed web application. Most of my issues with the design and development came with the fact that time and resources were in short supply. As such, my advice for future IMM students is directly connected to this fact. I recommend not waiting to start your thesis idea. This does not mean to start earlier senior year. This means starting as soon as you know you have a senior capstone experience, preferably freshman or sophomore year. Additionally, make products that you are fully invested in, and that you can gather a team of people around. I truly believe that fully functioning and successful products can only be developed by groups of people with a myriad of skills. If you are able, bring friends and collaborators in at the ground floor and give many people a change to contribute to your project in any way they can: designing a logo, designing user layouts, programming a particular function, absolutely anything anyone is willing to contribute to get behind your idea.

This advice, I hope, will only encourage you to create an environment of collaboration among your peers. But above that, it will only continue to spread the success and name of your concept across multiple audiences. Your work, combined with others, will not only land you the grade, but it will land you employment, opportunity, and self-satisfaction.

--

--