Geospatial software developers often rely on Git to collaborate with each other and manage source code in an efficient way. Yet, most GIS programming courses do not prepare students for such a work environment. This article proposes a typology that a GIS programming course could follow consisting of three components: group organization, project and evaluation. Based on the typology, a GIS programming course was designed where randomly formed pairs develop a state‐of‐the‐art QGIS plugin. GitHub Classroom was used to facilitate collaboration among students, which also allowed the lecturer to monitor the progress of groups and provide timely feedback. Five out of the six groups were successful in completing the projects, and a substantial majority of the students were satisfied with the course. A strengths–weaknesses–opportunities–threats analysis reveals insights that other lecturers may find useful when designing their GIS programming courses.