Abstract
The objective of traditional software development courses focuses on competencies in the programming languages and technical tools. Project methodologies and software development are typically taught as theory-driven and separate courses in Information Systems undergraduate programs. Rather than teaching project methodologies as secondary to the learning phase of software development, these methodologies can be actively incorporated into the software development course, applying the theoretical concepts in the classroom with the same tools used in the industry for product development. This research evaluates the effects of instituting the project methodology Agile as an active learning, instructional tool for a low-code software development course using the Mendix platform to give students hands-on learning of Agile while increasing their expertise in software development. The use of Agile in an instructional pedagogical approach enhanced student learning and prepared students with skills directly applicable in the industry. Future research could be applied to measure the Agile methodology as an instructional format for technical courses other than software development.
This paper reports on the outcome of the development of a new program combining Agile methodologies with a low-code platform to provide a synergistic experience for non-traditional students in a six-week summer course. Using a low-code platform as a tool to support the course is possible due to the emergence of Model Driven Development (MDD) tools such as Mendix in a new wave of Computer Aided Software Engineering (CASE) tools with expanded capabilities. With the continued adoption of Agile methodologies throughout industry, the combined experience is designed to add value to student portfolios as they prepare to enter the workforce.
Students entering the workforce must have some exposure to these new and innovative tools. The most commonly used industry tool for Agile is JIRA, but nearly all Agile tools provide the same core functionality for documenting and tracking product development. For software development, the course incorporated the Mendix platform in an effort to provide students with exposure to a development project using a CASE tool, in addition to fostering their understanding of working in teams using an Agile methodology.
CASE tools are software tools used to help design and generate applications. This occurs at a higher level of abstraction than application development using traditional linear programming methods. From their advent in about 1970, the ability of these CASE tools to easily and reliably generate applications did not emerge until decades later.
While many professionals used CASE tools as aids to the development process, few of them used the tools for complete database application generation. Several reasons impacted the decision. The cost and complexity of installing and maintaining the tools, and training and paying the higher salaries of their users, coupled with the tools’ abilities and failure to perform as predicted, led to their having little commercial impact during the 1980s and 1990s (Schmidt, 2006). Jones (2002) notes that as many as 70% of CASE tools were not being used. The shift to the current usage of CASE tools and, specifically, MDD tools, contributed to the selection of Mendix for the course’s software platform.
The selection of Agile as the software methodology was based on the rise in practitioners using Agile across the corporate enterprise. Understanding software development as well as project management methodologies are core skills for Information Systems programs. Traditional ‘Systems Analysis and Design’ courses focus on the Systems Development Life Cycle, which primarily uses a Waterfall methodology approach. Waterfall methodologies, unlike Agile, follow a systematic advancement through requirements, design, development, testing and implementation over a long period of time and cover large functional/programmatic changes. Agile’s focus on smaller, incremental changes in functionality and programs allows teams to work in cycles of two to 3 weeks. These short cycles can be easily incorporated into a classroom setting and allow for software development projects to be successfully finished within the duration of a semester. Students are then able to learn both the software development tools and concepts along with the project methodology.
We intend to provide the following contributions to pedagogical methods in higher education settings. The results of the study will be helpful to instructors on software development courses who would like to leverage a methodology that complements the business world and allows for transparent group projects. Instructors can transform the instruction of project management to beyond the theoretical concepts for a more practical classroom approach.
This paper proceeds as follows. The next section describes the population of the study. The subsequent sections discuss the model-driven development and the software chosen for the application development; the research questions and scope; and the results of the case study with recommendations.
Student population
The student population at the University of Richmond’s School of Professional and Continuing Studies (SPCS) consists of mostly non-traditional students. Although there is no commonly accepted definition for a non-traditional student, some insight may be gained by examining SPCS student demographics. The average student age is 37, although the information systems students are closer to 30 as a group. The majority of students have previously been male, but the number of females in the program is slowly increasing, and they accounted for more than half of enrollments in 2019 and 2020. The experience levels and goals of female students are similar to those of the male students, with a wide variance in both cases---some are career switchers with little or no knowledge or experience, while others have been working in the field for years.
Eighty-one percent of students are part-time. Both part-time and full-time students are working on either a Bachelor of Science in Professional Studies degree with a major in Information Technology Management or Information Security, or a Post-Bachelor Certificate in Applied Studies, Information Systems or Information Security. As previously mentioned, student experience varies. Some have Associate’s degrees or at least have done some community college work, and have immediately transferred to SPCS with a desire to complete their Bachelor’s degree. Others have been in the workforce for some time and need a degree for promotion. Yet others are trying to break into the information systems field with significant life experience and success in other fields. The program can be seen as a degree-completion program, since most new students have 45–60 credit hours in transfer.
The factors that make SPCS students unique lead to a wide variety in their understanding, experience and ability. All major core courses are classroom-based, although some are offered in a hybrid format. No completely online information systems courses are offered, but some non-major courses may be taken online. Most of the students live in the local area, and the majority stay in the area after graduation. Courses are generally capped at 15 students with overrides up to 20, allowing significant individual attention and interaction with instructors. The Agile Low-Code course is an elective 3-credit course in a hybrid format offered during a 6-week summer session. This particular iteration started with 14 students, of which two withdrew early in the session.
The diverse student population presents numerous opportunities as well as challenges. Much of the student body brings life and work experiences to the classroom while facing the challenges of family and work obligations. The applied aspects of the course arguably add more value to this student population, whereas the traditional students continue to mature and learn to think critically during their degree programs. Continuing students in this program are expected to focus more on professional competencies, with the primary focus for instructors on helping students grow professionally.
To facilitate learning amongst this target population, the high-level philosophy is to provide an applied aspect for each course. This student population likes hands-on work. This special topic course in Agile Low-Code development is an exciting endeavor, since the expectation is that the higher level of abstraction allows more students to develop competencies in the course material. Students taking this course vary in terms of experience, with some having a background in systems development courses and others with no software development background.
Model Driven Development
Background
Model Driven Development (MDD) is a software development methodology that uses model architectures instead of coding to raise the level of abstraction such that less technical expertise is required to develop applications, with business knowledge being the key ingredient for users.
According to Henkel and Stirna (2010), modeling support consists of language(s) for modeling constructs in the specific domain, supported by key underlying areas of abstraction, understandability, executability and model refinement. Regarding development support, or support for development processes, Henkel and Stirna found that the literature suggests six areas: observability, turnaround-time, collaborative development support, integration, developer competence support and reusability.
When evaluating Mendix against these criteria, Henkel and Stirna found Mendix to be suited for web-based development of small to medium complexity and for small projects with short delivery times. These qualities were determined to make Mendix a good fit for supporting this and other traditional information systems courses.
The IT Examination Handbook Infobase of the Federal Financial Institutions Examination Council (FFIEC, 2018) proposes four areas of risk when considering implementation of CASE tools, including inadequate standardization, unrealistic expectations, inability to implement quickly and weak repository controls. Mendix was chosen based on its ability to manage these risks.
Mendix
The Mendix tool was used for the course due to its functionality, simplicity and the support offered by Mendix. The platform is the leading low-code solution recognized by analyst reports, such as Gartner, and large enterprise companies SAP and IBM. The full-stack platform is designed to build applications rapidly. The platform abstracts and automates the various application development layers from front end to back end. For example, the data structure is built using the Unified Modeling Language (UML). The business logic uses Business Process Modeling Notation (BPMN), and the user interface is built with widgets following a ‘what you see is what you get’ (WYSIWYG) model.
The platform allows for business and IT to collaborate and build applications that add business value. It provides six main functions: • Collaboration • Data Structure and Domain Model • Business Logic • User Interface and Experience • Security and user authentication • Deployment
Agile
Collaboration is key to building successful applications that solve business problems, which is a core component of the Agile methodology. The business understands the critical business problems and needs digital solutions to fix them, whereas the IT department needs to support the business by providing solutions that work. Communication across these two departments has always been challenging. In order for both business and IT to collaborate, speaking the same language, delivering on time and delivering under budget are key success factors. In addition, solutions delivered months and years after the original business problem has been identified are unreasonable and reduce the realization of the solutions’ return on investment.
To deliver applications rapidly, in weeks as opposed to months, a process change is needed. Agile methodology follows the iterative process, and business can have a minimal viable product within weeks with the ability to iterate as needed (Frydenberg et al., 2018). The methodology allows for iterative development and for the business to provide input and shape the product before it is delivered. Agile increases group or team productivity across the enterprise (Comella-Dorda et al., 2019).
When students create a Mendix project, the collaboration workspace is automatically created with all the built-in Agile process features. For example, students can capture their user requirements and add user stories and sprints. They can create sprints that run for a fixed set of time and manage the backlog of stories and work to be done. In addition, using the feedback widget, they can gather feedback from the business or professor and implement additional features and functionalities. The application they build in the first sprint will be vastly different from the one they deliver at the end of the semester. Students can see the process and workflow as they build the solutions out. The project manages the code repository and code check-in and check-out process, allowing for multiple students to work on a diverse set of user stories.
Scope and research questions
The objective of this study is to examine the use of Agile as the course delivery model for software development courses and to determine its effectiveness as a teaching methodology. Previous research has indicated the successful use of Waterfall and Agile methodologies when teaching capstone project-based courses. The objective of software development courses focuses on the mastery of programming languages and technical tools; methodology is secondary to the learning phase of the software development. Previous research indicates that self-regulated learning increases student motivation through engaging classroom environments (Linden, 2018). Agile as a pedagogy promotes self-regulated learning and self-managing teams. Studies of Agile have concluded that overall performance is linked to the effectiveness of team coordination in software development teams (Moe et al., 2009). When assigning team-based or group-based work in higher education, using Agile as the foundation has proven successful, with previous studies indicating that leveraging Agile as part of the core curriculum leads to enhanced learning experiences and outcomes for students (Woods and Hulshult, 2018).
The results of the study provide educators with an alternative course delivery method that prepares students to create software development solutions which could be usable artifacts in industry and familiarizes them with the practical applications of the Agile project methodology. Employers of graduates from information systems and computer science programs expect intrinsic knowledge of project management methodologies extending beyond software development knowledge. Utilizing Agile as a pedagogy is a response to the current demand for skilled workers with a sound understanding of the project methodology that is rapidly overtaking the Waterfall and formerly used methodologies.
Pedagogical principles followed during this course included: (1) an integrated learning environment and (2) cooperative learning. The integrated learning approach focuses on incorporating the technology with the Agile methodology. Students are able to learn both the content of the software development tool and its functionality and the subject area of Agile. Cooperative learning allows students to work collectively, as a group, to learn from each other through hands-on practices. As identified by Niess and Gillow-Wiles (2017), educators shift toward building a pedagogical reasoning that integrates technologies as teaching and learning tools. The communication achieved through the Agile ceremonies provides the assimilation of systems learning in a pseudo-practitioner environment.
The following research questions are explored: • Is the Agile Methodology an effective method for teaching software development courses? • What is the impact on team dynamics and performance using Agile as a technological pedagogical approach? • Do students perceive that their level of software development learning was increased, decreased or unchanged by using Agile as a pedagogical form of course delivery?
Research method
An exploratory, six-week custom developed course in information systems was created, entitled Agile Low-Code Development, with a minimum enrollment of 12 and a maximum of 15. The course enabled participants to develop applications using the Mendix Low Code Platform and the Agile project methodology. The use of Agile facilitated students’ learning of the widely used software development methodology in which requirements and solutions evolve through structured team collaboration. The Mendix Low Code Platform does not require coding experience, giving both technical and non-technical students the skills to build web and mobile applications. Using the Mendix tool provided additional advantages with its built-in Agile processes. The results of the final products built by the teams and the qualitative feedback gathered from students at the end of the course were used to determine the effectiveness of Agile as an instructional methodology for software development.
The Agile tool selected for creating stories and tracking progress was GitHub, a free online tool used by numerous government entities and private industry organizations. GitHub was applied to support Agile through story tracking, assignment and team monitoring activities. Project teams used GitHub’s storyboard, ZenHub, to display and update the project board. Activities such as moving stories from ‘ready’ status to ‘in progress’, ‘testing’, ‘done’ and ‘closed’ were performed on a daily basis during team scrum ceremonies. These scrum ceremonies were daily meetings, synonymously referred to as ‘stand-ups’, in which each team member provided the following information: what had been accomplished, what would be accomplished by the next meeting, and any impediments preventing the completion of the work.
To promote team independence, a hybrid model was instituted, holding one in-person class per week and allowing for any remaining meetings to be held by the teams at their convenience. The course achieved three primary goals: (1) to teach the basic concepts of Agile from a holistic perspective; (2) to develop the knowledge and ability to use the Mendix Low-Code Platform; and 3) to develop an application using Agile and Mendix in a group project. In order to achieve the three goals, the delivery model of the course operated as an Agile project using iterative development based on weekly sprints.
The course was guided by two professors, one of whom focused on Mendix development while the other focused on ensuring that the Agile fundamentals were taught and ceremonies followed. Students worked in teams to develop a custom application based on predetermined parameters: they were able to select a project of their choosing within the course parameters. Rather than allowing self-forming teams, professors randomly assigned four teams of three as well as the student roles on the team. While the role of the professors was instructional, they also acted as customers of each of the Agile teams. The three-person teams included one member who had a combined role of scrum master and product owner and two developer/tester roles.
The first week of the course was instructional and allowed for team norming, and the remaining 5 weeks were divided into weekly sprints. During the initial week, fundamental concepts and instruction on both Agile and Mendix were delivered by the professors in addition to an introduction to the GitHub and Mendix tools. Students were seated with their teams, and time was allotted for teams to develop their norms. The development of team norms is an essential component of Agile and stipulates a team’s expectations of team members as well as meeting cadences.
At the end of the first week, students were expected to take the Mendix developer certification to indicate competence in the tool, essential for developing their applications. Weeks two through five repeated a cycle of sprint review, retrospective, Mendix training and tutorials, and sprint planning. This order was repeated on the first weekday meeting of the course. Each of the Agile ceremonies (i.e. sprint review, retrospective and sprint planning), were held during class and facilitated by a professor acting as a Release Train Engineer (RTE), a role held by a leader in charge of multiple Agile teams. Each team used the time given by the professor to complete the ceremonies. Teams were expected to have the output for sprint review and sprint planning ceremonies visible in the GitHub tool. They were also expected to have regular scrums throughout the week to track progress against assigned stories.
Grading distribution.
Results
All teams satisfactorily produced a software development project that met the previously provided criteria of the project rubric. The projects all had a similar level of complexity and functionality based on the requirements provided by the professors.
The level of Agile maturity increased each week as teams became accustomed to the weekly ceremonies. Teams progressed in the development of the application at a more regular pace than in a traditional course delivery approach due to the required weekly team collaboration. Using Agile forced teams to plan in advance with weekly deliverables and to hold consistent communication. Procrastination was significantly minimized due to the visibility of the application’s progress and story tracking. Teams tracked the progress of their application by completing and closing stories. In order for a story to be closed, the designated product owner on the team had to agree that it had been tested and that all criteria for its completion had passed the test. Teams were able to view their progress from sprint to sprint based on team velocity, which captures the quantity of work completed each sprint. Work quantity was measured using story points, an exercise that provides a numeric value to estimate the difficulty and time required to complete the task.
Student feedback
The teams’ product demos were the final deliverable and revealed the overall success of the students and the pedagogy. Of the four teams, two met the criteria expected in the application, and the other two lacked some of the required components.
As part of the course evaluation, the professors facilitated a retrospective of the course with the students, gathering in depth feedback. All students participated in the retrospective during the last session of the course. The retrospective followed the format of three basic questions: • What did we do well? • What should we continue doing? • What should we change?
Retrospective results of Agile low-code development course.
Challenges faced by the students on Mendix technical issues and questions caused the majority of uneasiness. The six-week duration of the course was insufficient for some to develop the level of competence desired for app development, and feedback suggested that learning both Agile and Mendix competencies in 6 weeks had proved to be difficult. Suggestions were to have the course offered in the normal 16-week semester format. While the issues with Mendix as an application were evident, these were separate from Agile as a pedagogy.
With regard to research question 1, ‘Is the Agile Methodology an effective method for teaching software development courses?‘, the results of the study indicate that the use of Agile was positive and could be applied to all software development courses. However, the course length is recommended to be longer than 6 weeks to achieve maximum results. Students who normally lacked organizational skills or faced challenges prioritizing tasks benefited most from Agile pedagogy. Teams were forced to collaborate through regular planning sessions, and their output reflected structured preparation, driving additional task prioritization. The Agile pedagogical approach simulated a practitioner’s perspective of software development, with development teams facing customer demands and critical timelines.
Continuous learning is a key principle of Agile and forces students to self-reflect on their sprint work, changes that need to be made, and how to incorporate required changes into the new functionalities for the next sprint. These are real-world challenges that are faced in the classroom in a controlled environment where students can feel safe to make mistakes, correct and progress. Continuous learning requires ownership of their learning, progress as a team and as an individual, and the observed student learning was achieved rapidly.
With regard to research question 2, ‘What is the impact on team dynamics and performance using Agile as a pedagogy?‘, project-based teams shared the same end goal to develop an application, though the specific requirements for each application differed. The smallness of the teams created closer relationships and required team members to work together to solve challenges. Having teams of three limited the possibility of passive team members: each individual was vital to the success of the project and the team could not succeed without a contributions from everyone. Therefore, the overall learning of the software development tool was elevated for all participants.
DevOps represents the Agile association between development and IT operations and constitutes a variety of coding and testing practices designed to speed up product delivery. Two DevOps practices were observed during the class: pair programming and extreme programming. Pair programming is coding performed by two people on the same machine, while extreme programming makes continuous programmatical adjustments based on changing requirements. Teams using these methods are more productive and produce fewer defects (Rico and Sayani, 2009). Without formally introducing pair programming or extreme programming concepts into the classroom, the students were actively performing both practices throughout the 6 weeks. Teams often had one laptop and three team members all reviewing the app development and making changes together. Some teams used the product owner to make recommendations while the other two team members made the functionality modifications. The reduced team size enabled rapid delivery of the application and showcased Agile and DevOps procedures being applied, often without instructor involvement.
With regard to research question 3, ‘Do students perceive their level of software development learning was increased, decreased, or unchanged by using Agile as a pedagogical form of course delivery?‘, based on the student feedback gathered during the retrospective and the end-of-course evaluations, students felt that the level of learning was increased by using Agile despite their suggestions that the course should be lengthened. Course assignments used the sprint framework, and participants understood the weekly expectations. In addition, the teams were motivated to perform and took pride in the application they were building.
Professor feedback
The two professors teaching the course observed that teaching Agile and Mendix simultaneously increased the benefit of learning both disciplines at the expected depth. Students could organize their projects using sprints and assign work to team members with transparency, allowing for focused time to master the software development concepts required for the course project. The six-week duration of the course could be lengthened to increase the developmental skills in Mendix, but the course organization and student response were improved using Agile coupled with the software development.
A key observed benefit was the transparency of students’ progress throughout the duration of the course. The professors could access the GitHub tool and see the work that each team was accomplishing each week (sprint). This level of transparency was useful in determining common errors that teams might be encountering with the software development. The professors used this transparency to provide feedback throughout the week. As an instructional methodology, Agile allowed students to gain soft skills, such as time management and conflict resolution, that are core competencies of project management.
Conclusion
The overall results of the study support the utilization of Agile as an instructional methodology for low-code software development courses. The professors and students found that the results of the app development either met or exceeded expectations, and thought the application of Agile across teams increased their ability to complete the project. Students were able to gain hands-on experience in Mendix while mimicking a real-world Agile project. The Agile pedagogical approach could be transferable to traditional undergraduate student populations and is suggested for low-code platforms to maximize students’ ability to complete the project. Students were able to achieve a novice-level understanding of one of the most popular project methodologies in the industry, leading to more skilled graduates who can easily begin employment in the technology field. In order to provide an increased level of subject mastery for future courses, one course adjustment could be made. The course could be lengthened to a traditional 16-week semester course, allowing students more time to learn the software development competencies while using Agile to drive the deliverables.
Based on the student outcomes, this pedagogical method could serve as a practical form of instruction for software development courses or project management courses. Using a project-based approach with Agile when teaching a software development course facilitates group projects while teaching the students the theoretical and practical Agile methodology that is used in corporate software development teams. Likewise, instructors who are teaching project management courses can use a low-code application, such as Mendix, that will serve as the product while providing practical instruction of the Agile methodology. Certainly, other courses could leverage this approach, such as capstone or other culminating courses. In the study conducted by Hulshult and Woods (2020), online students were found to have improved their learning experience through Agile practices that were implemented in the classroom in the form of storyboards and user stories.
Information Systems graduates leave their universities with foundational knowledge as well as basic skill sets in methodologies, programming, database development, and other core skills. Project management methodologies are often not included as part of the core curriculum. When students begin employment, they are encumbered with the task of trying to learn a methodology with terms that are completely unfamiliar to them. Following the recommendation of this study for universities to include the Agile methodology instruction in their software development courses, students will be better equipped as information technology professionals. A next step for this type of course is to include a course project that directly interacts with a client for providing an externally facing, value-based initiative.
Future research
Recommendations for future study include expanding the use of Agile pedagogy to other software development courses to obtain a larger sample size for measuring impact and progress. Non-software development courses could be explored to determine similarities and differences in the results. Follow-up studies should review the impact on students after beginning employment in information systems related fields to determine the success of the Agile pedagogy relative to its application in industry. Evaluation of specific Agile tools was not performed as part of this study and could be further considered to enhance the instructional value.
Footnotes
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) received no financial support for the research, authorship, and/or publication of this article.
