DevOps, the set of practices that combines software development and information technology operations, is beginning to transform teaching, learning, and research in higher education.
Many academic disciplines — and higher education institutions as a whole — have generally been slow to adopt DevOps. This lag can be due to a wide array of challenges, including a general lack of awareness inside academia of what DevOps is and how it can be used. Keeping pace with industry advancements and learning entirely new software and methodology is particularly challenging for faculty. Additionally, DevOps originated as a complex toolchain of individual software tools performing a specific group of functions, also called stages, that make up the DevOps lifecycle. To expect a faculty member to find, obtain, install, manage, learn (yet alone create) content and curriculum around this complex chain is, at the very least, unrealistic, if not impossible. From a student’s perspective, a complex toolchain can be overwhelming, confusing, and can interfere with learning.
The Potential of DevOps in Higher Education
As DevOps began to mature from the industry side, and more functionality was built into a single platform, academics have begun to take notice. Early adopters across educational institutions worldwide have recognized the benefit of DevOps, not only for teaching coding itself but from a multitude of other disciplines and use cases. GitLab’s Education Survey of more than 800 of its education program members demonstrates that adoption extends well into many academic disciplines. Over 23 departments reported using the methods in some capacity. They drew from a variety of disciplines and colleges, including engineering, natural and social sciences, medical fields, and library science.
We are continually amazed at how our program members use their GitLab for Education licenses—from conducting groundbreaking science and reinventing how to teach coding to introducing DevOps to the next generation of the tech workforce. https://t.co/7N2HOJV44w
— GitLab (@gitlab) May 12, 2021
DevOps has many specific applications for instruction of coding and non-coding subjects alike. For example, instructors create repositories or projects that store all elements of the course including issues, assignments, code, or any kind of files, such as text files or images. Students can also create private projects where they create, work on, and turn in assignments. Confidential feedback can be given directly in the project via comments. Issues are used to outline individual course assignments and can store discussions in the threads and students can ask questions directly on the issue as well turn in assignments by linking to personal projects. Continuous Integration (CI) can be used to test code, check written work, or grade answers. Continuous deployment (CD) can be used to push approved code to production environments or update a research paper after sections have been approved. Each element of the DevOps lifecycle can apply to the course structure.
Benefits of Bringing DevOps into the Classroom
Adopting DevOps culture, operations, workflows, and technology in the classroom has immense benefits. According to the survey, the top benefit of teaching DevOps allows faculty to be able to teach operations competencies such as source code management (SCM), versioned editing with git, and CI/CD. For students, being taught DevOps increases workforce readiness and gives students the ability to build a record of contributions. Dublin City University fourth year student Jacob Byrne shared that using issue boards has helped with sprint tracking. “It’s a huge advantage in relation to preparing for the jobs market, adding great value as you are able to ramp up quickly in DevOps teams,” Byrne said.
Forward-thinking departments that teach how to code, such as computer science, engineering, and chemistry, have completely shifted to the DevOps mindset. Instead of code being turned in on a hard drive or through a learning management system, early adopters have all assignments, code, tests, and assessments stored in an SCM with Git technology for distributed editing and version control. Students work collaboratively on tasks, issues, epics, and merge requests. With this new approach, the focus has shifted from a single artifact — the code — to the process itself — learning git, collaboration, branching, merging, automated testing, and automated deployment. Early adopters are using DevOps across all the stages extending from Manage to Defend with the highest use in creating and verifying.
Faculty are seeing great benefits from applying DevOps workflows to classroom tasks such as code management, grading, feedback, and course assessment. We’re seeing faculty implementing multiple project-oriented courses and students are making full use of all the CI/CD offered to them. With DevOps, assessment can be done in real-time on every commit by running CI/CD pipelines. Exams can be stored in markdown and graded via CI/CD pipelines. Faculty and teaching assistants can generate reports on the number and type of commits, merge requests, and failed pipelines, as well as use DevOps to prevent plagiarism with version control and project-based learning. This data can be used to improve course design and student retention. For example, the University of Manchester published a peer-reviewed article on how they used DevOps to “find patterns and evaluation metrics that can be used to improve the course content and reflect on the most common issues the students are facing.” The increased collaboration and benefits to students have been measured and published in peer-reviewed journals. The value of ease of collaboration is becoming front and center as more and more courses move to online and students learn and work remotely.
Many universities are building custom tools for managing classrooms and research on top of open core DevOps tools. The ability to extend and build additional functionality on top of an open core is a major benefit to campuses.
Accelerating the Talent Pipeline
While the pedagogical benefits are clear, the advantages of DevOps in education extend to workforce development and increasing talent in the tech pipeline. According to IDC, DevOps is projected to be a $17.7 billion revenue driver by 2024. With this growth, there will be an increased need for developer jobs. Students learning to code with the same approach they will use in the industry gives them a jump on their careers and makes the transition from the classroom to a DevOps culture that much easier. It can also help to accelerate the digital transformation as newly on boarded employees begin to spread the benefits of iterating faster, innovating together, and increasing deployment velocity.
Scientific Research Will Never Be the Same
DevOps is also revolutionizing how scientific research is being conducted and published. Source code management techniques are used to store scientific data and analytical code in central repositories. These repositories serve a single source of truth for the data and code, versions thereof, and also can provide public access for collaborators, colleagues, and fulfill funding requirements for public accessibility. Git technology allows all changes to be controlled, tagged, and versioned. CI/CD pipelines and Docker containers are used to replicate computing environments, analysis, and ensure reproducible results. Collaborative tools are used to speed up the time from data to publication. Many researchers have taken the approach so far as to draft their publications in markdown and publish them from the SCM.
Need for Increased Awareness to Enable Adoption
Despite these early successes, there is much ground to cover to bring the benefits of the DevOps approach across the institution. We’re seeing the most beneficial things faculty, students, and staff need to learn DevOps are best practices, code samples, examples projects, and exercises. Faculty can further uplevel teaching DevOps by incorporating professional training and eLearning to their courses.
There is a lack of awareness of what DevOps is and what role it has in educational institutions according to the survey. As this awareness gap closes, adoption within higher education is expected to increase significantly, both with new adopters and existing ones. Among those survey respondents already using DevOps, many plan to expand use across the DevOps lifecycle. For example, more than 25% of survey respondents answered that they were planning to use additional stages of the DevOps lifecycle, from Manage to Defend, with the exception of Create, of which 55% of respondents are already using.
As early adopters have widely demonstrated, DevOps has immense benefits in education and we should expect the innovative uses to only continue to expand its use.
Christina Hupy is the senior education program manager at GitLab.
Featured Image: Leon, Unsplash.