Education and Skills
- Undergraduate students do not have a ‘real-world’ understanding of software development and delivery at scale.
- Computer science students need to develop occupational skills and to demonstrate a level of experience as required by the tech sector.
- A gap in awareness and/or motivation amongst students on best practices in open source and open science.
- Students report a lack of ‘hands-on’ opportunities to collaborate/work together on open source projects.
A university with a large and diverse research and instructional cohort.
There is a gap in internship programs for students that offer hands-on mentorship and experience in this area.
The university, OSPO or relevant Department (e.g. College of Computing, School of Computer Science) has an existing relationship with potential industry collaborators.
The industry collaborators have an in-depth understanding of open source projects.
Develop a mentor-led summer internship program that offers opportunities to contribute to open source projects with ‘real-world’ clients in industry and/or across faculty.
The program may be delivered virtually or on campus.
The solution below outlines basic core activities to consider:
-
Conduct outreach to potential partners in industry, open source projects and/or within the university to gauge interest in participating.
-
A consultation exercise with potential industry and/or faculty partners may be necessary to determine ‘what works’ for industry and open source partners; and the type of training that will be most useful for the campus community.
-
Design may be based on existing knowledge of similar internship programs and should also incorporate learning from consultation with partners.
-
As a summer internship program, the course requirement can range from 20 to 40 hours a week over approximately 10 to 12 weeks. The level of time commitment lowers the barrier for interns to work on ‘real-world’ projects. It also provides interns with more time to learn the languages and tools needed for their specific project.
-
Mentorship is a core feature of the program. This should include space for interns to have regular mentoring sessions with their designated mentor (or mentors). Mentors should be experienced software development leads from a participating open source project, faculty or industry organization.
-
Some consideration should be given to any support required by mentors over the course of the internship. This should be explored during consultation or initial discussions with partners.
-
An accompanying program curriculum may also include classes, student assignments, coaching, team projects and self-directed tutorials in the form of open educational resources.
-
Design of curriculum should take into account the diverse range of projects and software that students are likely to be working on.
-
Students may also be tasked with delivering outputs to benefit their university.
-
Each internship may be allocated on an individual basis or to student teams.
-
A transparent selection process for candidates should be put in place.
-
Target the student cohort to advertise the internship program.
-
Information sessions are useful promotional tools during this period. This information session includes lightning talks from participating organizations.
Evaluation of students’ progress should account for the diversity of projects and the different requirements in terms of onboarding, learning, and contributions required. Completion of a project may be not possible within the internship timeframe.
Students may be graded in a number of ways including:
- Mentor reviews.
- Engagement and participation in classes and/or coaching sessions.
- End of term assignments and/or presentations.
- Learning journals.
- Self-evaluation.
- 360 reviews (in the case of student teams).
Students develop their occupational skills and learn about how software develops at scale.
Students have an opportunity to build new contacts with potential employers.
The program also presents opportunities for developing important soft skills in client communications, project management, and leadership that fall outside of many traditional technology-focused internship opportunities.
- Placing students in teams reflects the real world of software engineering with all the intra-team communications required. This structure also relieves instructor and mentor load.
- Mentors from Red Hat Linux, Eclipse Foundation, and local Pittsburgh startups said they would eagerly offer 14 students (out of the 15 participants) not only internships but also jobs upon graduation.
- The peer to peer mentoring that took place on student teams was particularly noteworthy. One of the most rewarding and illuminating outcomes was the rise of student mentors who have continued to show advanced skills one year later.
Our model presents opportunities for developing important soft skills in client communications, project management, and leadership that fall outside of many traditional technology-focused internship opportunities.
We successfully met our objective of providing students with the opportunity to experience software engineering in its reality of intra-team communications, software development and delivery at scale. Their internship experiences demonstrated to them that delivering software is about considerably more than “writing the code.”
Additional learning from the Georgia Tech OSPO on the Virtual Summer Internship Program (VSIP)
This is an evolving process but we’ve already seen some initial increase in awareness amongst our 30 program participants.
We plan to continue making improvements to this program and to possibly turn it into a micro-badging program that can be shared with our constituents in an asynchronous fashion.
Our hope is that we can use this initial engagement with the internship program as a seed for a wide-reaching, asynchronous and open educational framework that can extend the reach of our OSPO.
As part of this program, we have been working on open source training notebooks, which present a variety of topics that should enable students and faculty at
Georgia Tech to improve the quality of their open source projects.
One challenge may be that we should be careful to work closely with other OSPOs and OSS organizations to make sure we are not “recreating” existing resources. A good example of this is our open source code review lecture, which relies heavily on BSSW’s code review example project.
- CMU Open Source Program Office, CMU Libraries, Carnegie Mellon University
- Georgia Tech Open Source Program Office, Georgia Institute of Technology
- Open Source Software Engineering Education - Presentation from Stephen Walli sharing learning from delivery of the Semesters of Code internship program at Johns Hopkins University and at Carnegie Mellon University.
- Georgia Tech OSPO Virtual Summer Internship Program - Website containing all information relevant to the program.
- summer-internship-program - Public archival site for the Georgia Tech OSPO VSIP.
- Training modules for getting started with open source software development - Open training notebooks developed for VSIP students that will also enable other students and faculty to improve the quality of their open source projects. (Materials remain under development.)
- Sayeed Choudhury (Carnegie Mellon University)
- Clare Dillon (CURIOSS) https://orcid.org/0009-0008-6205-0296
- Ciara Flanagan https://orcid.org/0009-0005-3153-7673
- Tom Hughes (Carnegie Mellon University) https://orcid.org/0009-0008-7516-3687
- Fang Liu (Georgia Institute of Technology) https://orcid.org/0000-0002-3383-2191
- Stephen Walli (Microsoft)
- Jeffrey Young (Georgia Institute of Technology) https://orcid.org/0000-0001-9841-4057
- Dr. Michael Hilton (Carnegie Mellon University)
- Brad Topol and Susan Malaika (IBM)
- Stephen Walli (Microsoft)