Keywords

1 Introduction

The Software Engineering education faces, in Brazil and world, the challenge of meeting a growing need for professionals with the ability to produce robust and quality software in a systematic and efficient manner. The characteristics of the area increasingly demand resourcefulness to work in teams and in an interdisciplinary manner, and the integration is a key aspect of our current teaching and learning process.

Integrating theory and practice based on knowledge from different courses and even from different programs is fundamental and strategic so that students can better understand not only their specific fields of study and work but also how they relate in broader research and market contexts.

In this context, we present an experience of integration between theory and practice in the Software Engineering Program from Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS). This Program is associated with a Software Engineering Experiential Agency (AGES), where the students have the opportunity to practice the studied concepts and methods.

The projects developed in AGES provide many integration opportunities. In this paper we focus on the integration between AGES and an Human-Computer Interaction (HCI) course, discussing the lessons learned, challenges, perspectives, and the importance of such integration to bring theory closer to the students real universe of action.

To better understand the scenario in which this work is inserted, the next section will address some background and related works. In Sect. 3, the implementation context of these integration experiences is presented, describing the program, the environment where the practical developments are carried out and the HCI course in question. Section 4 presents four different integration experiences encountered in the HCI course throughout the Program’s implementation, followed by our final considerations about our study, supported by the references used for its construction.

2 Background and Related Work

In the following sections, we will briefly present the areas related to this work as well as some related work.

2.1 Software Engineering

Software Engineering (SE) began to be discussed as a discipline in 1968 [34] and currently is part of the curriculum of several courses such as Computer Science, Computer Engineering, Information Systems, and Automation Control Engineering. We also have specific Software Engineering courses.

Software Engineering is related with all software production aspects, from the initial stage to its maintenance, involving not only technical development processes, but also project management activities and tools, methods and theories that support its production [23]. Therefore, SE goes beyond programming code creation; it tries to discipline development and brings to software development principles, techniques and knowledge to discuss quality questions, deadlines and economic factors [35].

2.2 Software Engineering Processes

The software engineering process consists of activities for managing the creation of software, including requirement collection, analysis, design, coding, testing, and maintenance [23]. Software engineering methods are just different ways of approaching software development and delivery [23]. Considering the existing methods, Agile methods were born from the need to smooth the heavyweight plan-based methods used in large-scale software-development projects [1]. Many agile methods are available in the literature, popular approaches are Scrum [20], Rapid Application Development (RAD) [14], Feature-Driven Development (FDD) [16], and eXtreme Programming (XP) [15].

2.3 Human-Computer Interaction

The area of Human-Computer Interaction (HCI) studies the interactions and the relationships between humans and computers. According to Helander et al. [12], HCI is more than user interfaces, it is a multidisciplinary field covering many areas. In the first ten to fifteen years of its history, HCI has focused on interfaces (particularly on the possibilities and design criteria for graphical user interfaces (GUIs) using windows, icons, menus, and pointing devices (WIMPs) to create more usable systems. According to Fischer [11], HCI research objectives are concerned not just with interfaces, but with tasks, justifications, with shared understanding, and with explanations, and argumentation about actions. The new essential challenges are improving the way people use computers to work, think, communicate, learn, critique, explain, argue, debate, observe, decide, calculate, simulate, and design.

2.4 Related Work

Among the related works, we can highlight different perspectives about this integration. In a more traditional way, we find the use of techniques from one area to another, as a Web Design Usability Evaluation (Web DUE) technique that aims to allow the evaluation of low-fidelity prototypes (or mockups) during the design of the application [18]. Or the game iThink, that takes advantage of the association between “gamification” concepts and the six hats of thinking method for collecting both new requirements and feedback about existing ones and for presenting the requirement elicitation process in a form of a collaborative game [9].

Rivero et al. [19] presented an empirical study evaluating if the Design Usability Evaluation technologies are able to aid development teams in the quality improvement of mobile Web applications [24], and another work shows the investigation of the impact of Scrum adoption on customer satisfaction [8], as well as an article that proposes a technique for creating personas to support the development of mobile web applications [10].

Other published works have observed requirements such as accessibility and usability in the design and evaluation of interactive computer technologies [4,5,6].

Considering a more interdisciplinary point of view, in an exploratory research conducted in 2012 with the Brazilian community, both teaching-practice integration and interdisciplinarity were highlighted as challenges regarding the teaching of HCI in the country [2]. Silva [21] also emphasized this lack of integration among areas, particularly considering HCI, as a major issue in computing education.

Taking this context into account, we found several initiatives, arising from the HCI community to try to foster integration and interdisciplinarity.

Bim [3] presented an integration experience among HCI, SE, and Database courses, highlighting the potential of such integration not only for the experimentation, in practice, of the concepts from each area, but also for professors to better understand the role of each course in a systems development project.

Zaina and Alvaro [26], in turn, analyzed the perspectives of working with interdisciplinary projects and, through Project and System Development and Human-Computer Interface courses, proposed, in 2012, a model for conducting those courses that would integrate the concepts studied in both of them into a practical project with the objective of creating entrepreneurial solutions.

In another approach conducted by Silva [21], articulation and integration happened by means of conceptualizing interaction as a communication process, analogous to other fundamental activities of the software development process: requirements engineering, software design, and programming.

Furthermore, Britto [7] provided an experience report on the integration of HCI concepts and techniques in the Design Patterns and Software Engineering courses, corroborated by the research carried out with students, indicating positive indicators about the approach being used.

These initiative examples help to illustrate the community concerns regarding such important issues and how much we can work to improve this context.

3 Work Context

In the following sections, we will present some details about the Program in which the study described here is inserted, the environment in which the practical developments are carried out, and the concerned HCI course.

3.1 The Software Engineering Program

The main objective of the Software Engineering Program from Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS), is to prepare professionals with solid training in Computer Science, Mathematics, and Software Production processes, specializing in the development of applications from information and communication technologies [17]. Focused primarily on software solutions aligned to business, these professionals will have in-depth knowledge of software architecture, technology, and development processes, so as to be able to produce robust, high-quality software in a systematic and efficient way. Their performance will be buoyed by a humanistic and solidary formation, according to the educational principles that guide the actions of the University.

Being innovative in its design, it was created from the context of regional and national industry, in which large software companies require this kind of professionals.

The pedagogical practices in the Software Engineering course seek to create situations similar to those found in the daily work of the future professional, seeking to create conditions for the reflection of the object of study to go beyond the pedagogical models and be elements of potential association to the reality of the job market and its challenges.

This program started in March 2015, having its first group graduating at the end of 2018.

3.2 Program the AGES - Software Engineering Experiential Agency

At the Software Engineering Experiential Agency, undergraduate students have a practical learning environment, which was designed for the following purposes [25]:

  1. a.

    provide students with the experience of real project situations in an environment that focuses on learning through real projects and clients;

  2. b.

    enable the interdisciplinary integration of contents from the Software Engineering Program;

  3. c.

    integrate teaching, research, and extension;

  4. d.

    allow contact with organizations and companies whenever this contact adds elements for the background of the alumni profile;

  5. e.

    build with the students their project portfolio through the projects executed by them in the Agency.

In addition, AGES follows the academic guidelines:

  • Development of skills in the Software Engineering course, particularly focused on teamwork, respecting individualities;

  • Strong link with the contents of the course subjects and teachers;

  • Autonomy from ongoing classes;

  • Carrying out activities with predictability, but without the urgency of deadline;

  • Focus on learning.

At the Agency, the practice courses are developed, being a curricular component of the program. The courses are composed of four modules: Practice in Experiential Agency I, II, III, and IV, each with 120 h (60 h in the classroom (4 credits) and 60 outside the classroom). Table 1 presents the competencies related to each module developed in the Agency, as well as the prerequisites for each module, according to the curricular matrix of the program.

Table 1. Set of evaluative assignments [22].

As for the projects executed inside the Agency, they come from:

  1. a.

    Demands from other University Units;

  2. b.

    Demands from students;

  3. c.

    Demands from professors;

  4. d.

    Open call for project selection;

  5. e.

    Demands from Companies;

  6. f.

    University incentive programs to support entrepreneurship and the development of startups.

Regarding the incentive programs (item f), the Agency rewards the top performers with the execution – within the Agency– of their projects.

The Figs. 1 and 2, shows the environments of AGES and some teams working.

Fig. 1.
figure 1

Superior environment.

Fig. 2.
figure 2

Ground floor.

AGES has an important role in the integration of higher education course subjects, and the goal of AGES is to interact in an interdisciplinary manner with as many course subjects as possible. Within the projects developed over the semesters, we sought to work interdisciplinarity with the disciplines of IHC Fundamentals, Requirements Engineering, Database Modeling and Design, Interaction Design, Software Verification and Validation I, Software Configuration Management and Object Oriented Programming.

Integrations with disciplines can be done before or after a project has been developed. As an example, we can mention the case of the Requirements Engineering discipline, where students raised the requirements and defined the user stories that were later implemented in AGES.

Disciplines such as Software Verification and Validation I and Software Configuration Management have systematically used AGES projects to apply their contents. The IHC course used AGES projects in internal usability projects with students.

3.3 The Course

The HCI area includes two courses from the program: Fundamentals of HCI, a 4-credit mandatory course offered in the 3rd semester, and Interaction Design, a 2-credit course which is also compulsory, offered in the 4th semester. In this article, our focus is on the first course.

The course, Fundamentals of HCI, aims at introducing the HCI area, its main concepts and theories, as well as different evaluation methods on quality of use and the principles of the interaction design process.

The course has several of its topics deepened through the practical application of the methods discussed in class. In addition to various exercises and activities throughout the semester, a set of four evaluative assignments is carried out: the first three dealing with the evaluation of the quality of use of interactive systems (one with the application of collecting users’ opinion, another with the application of evaluation methods by inspection, and the last one through usage observation), and the fourth on elicitation and analysis of user data, as presented in Table 2.

Table 2. Set of evaluative assignments [22].

The main focus of these assignments relies on real projects, especially those under development at the Agency itself. This way, students may analyze real cases, with the opportunity to interact with their stakeholders, with their project and development team, as well as with their future users. Moreover, all results obtained from the projects are forwarded to the Agency, so that they can be used as inputs for new design and development stages.

The course’s first class was in 2016/1 and, in the last semesters, it was possible to analyze a good range of projects. Some of these experiences will be discussed in the next section.

4 Integration Experiences

As mentioned in the previous section, the assignments carried out at Fundamentals of HCI have been mostly applied in real cases under development in the Agency, and, in some cases, in other projects developed within the University.

To better illustrate how these experiences happen, some of these experiences of integration between the course and the Agency will be presented and discussed [22].

4.1 Contact with Stakeholder

One of the projects developed at the Agency met a demand from the University library for bibliographic records by curriculum/program’s course, integrated to the consultation of existing titles in the library and allowing the generation of acquisition demands and monitoring of requests. In the previous semester, we had already met a request from the director of the library with the analysis of the library’s search system. In this case, focusing on the bibliographic registration system, the focus was on the collection and representation of users’ needs (T2), two moments of emphasis on students.

At first, a collective interview was held with the director of the library, who was willing to go during the course and talk to the class, to which the students had prepared themselves from what there had already been in terms of documentation on the project, creating, in small groups, questions to be asked during the interview. They were also responsible for conducting the interview and recording all obtained data.

From the data collected and analyzed, the students created personas representing the system’s main users, as well as possible scenarios of interaction with the system. On the work presentation day, the director of the library attended again, discussing the obtained results with the students.

As a highlight, in this specific case, besides the real contact with the main stakeholder of the project, we mention the need of internal organization of the groups, in the definition of who would record the answers, who would ask the questions, and so on, always bearing in mind they were dealing with a professional - the Director of the library - and not a classmate.

4.2 Feedback During Sprints

Generally, feedback from HCI students to the Agency is given at the end of each semester, when the results of each group (for each assignment) are consolidated and sent to be used by the teams. In a particular semester, we were able to align the analysis of a prototype system with one of its delivery sprints and thus provide feedback during the development process.

The project in question was intended for people with visual impairments, with a system that, from the donation of voices, would help in the creation of audiobooks, to be developed by the University Publishing House.

For the assignment of the course (T1.3), students should perform a Communicability Evaluation of the current version of the system, focusing on voice donor users. After planning the evaluation, conducting user observations, and analyzing the data collected, the professor of Fundamentals of HCI and the students representing the class met with the Practice Professor at the Agency and representatives of her students to present and discuss the results obtained.

For the Fundamentals of HCI students, this was a significant opportunity to discuss the evaluation carried out directly with those who would make use of the results for project improvement. As for the Practice students, this was an opportunity to receive feedback about the work developed through an external view, and, based on such feedback, they were able to review the whole project, thus, presenting a new version already with the adjustments for the project client.

4.3 Contact with Potential Users

Getting to know your potential users is fundamental for the development of an interactive system that values the quality of use. One of the Agency’s projects focused on developing a game that would help children “take care of their health without knowing they were taking care of their health”, id est, to support disease prevention.

In order to better understand the problem and the profile of potential users of this type of game (T2), besides studying the project documentation, students researched scientific articles in qualified publications about children, games, disease prevention, among others, and also sought results from demographic research on the subject. After appropriating the subject, in small groups, they developed interview scripts to be carried out with children.

A group of 5 children (children of professors from the program) was invited to participate in one of the classes so that the students could understand this profile and, most importantly, the children’s point of view, which would be crucial in an application of this genre.

The class was composed of 32 students and was divided into three large groups. The children - 3 girls and 2 boys, aged between 9 and 13 years old – were also divided into three groups (2 pairs and 1 individual), and were interviewed as a “circuit” (they went through all groups).

Besides the observation of this dynamic by the course professor, the software architect, member of the Agency’s technical team, also took part in the lesson, observing the activity.

One of the activity highlights was to “break” some preconceived views students had regarding children in general (many of their “certainties” about children behavior ended up not being confirmed), proving the importance of knowing the users intended to be achieved.

4.4 Self-knowledge

As stated in the previous section, knowing your potential users is critical, but self-knowledge and self-reflection are also key steps in the teaching and learning process. In some cases, HCI students themselves were invited to participate as users, in the scope of users’ opinion collection work (T1.1).

In one of the assignments, the focus was on the project of a system directly related to the Agency, to capture ideas of new projects to be executed in it. In this assignment, students, through semi-structured interviews, should collect opinions from students of the Software Engineering program.

In total (in the consolidation of answers from different groups of the class), 42 students from the program were interviewed. In addition to specific points related to the project, the students’ knowledge (or not) about the Agency’s objective in the Program was emphasized. Some students pointed out that they would have restrictions on sending ideas to the Agency – through the system in question- fearing plagiarism of their ideas, and others stated they expected some sort of bonus for the projects developed in it. These points, more than helping to (re)think the tool in question, help in a refinement of the presentation of the Agency and its objective, which is, as mentioned before, to provide the students with the experience of real project situations in an environment focused on learning, through the development of projects with real clients.

Another example of the students’ participation as users during the period of opinion collection, focused on the same project of the game to support children in the prevention of diseases previously mentioned, but in the course that took place in the semester following that of the interview with the children. On this occasion, with a greater understanding of what the project would be (a quiz game), an activity was carried out with the application of usage logs, in which, for a week, the students should use known quiz tools daily (some of which even mentioned by the children in the previous stage), recording their interaction every day. After the recording stage, the students participated in focus groups to define main characteristics, positive and negative points, which were then returned to the game design team.

Another interesting factor worth highlighting in this Agency’s project analysis is that sometimes students are in Fundamental courses and developing the Practices at the same time, and can bring feedback from the class to their teams in an immediate way, besides serving as a support point of the class for doubts about the projects as well.

4.5 Participants’ Point of View

In order to comprise the students’ vision regarding this integration as well, an online survey was conducted, questioning them about their opinion on the use of Agency projects as a basis for the assignments of Fundamentals of HCI. We gathered 16 answers, which, despite not being a high number, shed light on some points for discussion and reflection on the course. Respondents represent students from different semesters of the program, and even two students were attending the course when the survey was applied. Everyone had already taken at least one of the Agency’s courses.

As for the experience of working with projects developed (or under development) by the Agency, the use of real projects stands out, as described by P14, “analyzing a real project was a good experience” (P14, student from the 4th semester), and by P15, “I liked it, because it brings a real level of difficulty to the assignments” (P15, student from the 4th semester). Moreover, the importance for the projects themselves was mentioned: “It was a great idea because the contents we saw in HCI are perfectly compatible with any project developed in the Agency. This would also benefit project teams, as UX and usability issues are often overlooked by teams. It is important that people understand how important this area is in SE” (P9, a student from the 3rd semester), and “The dynamics worked out quite well (…). The cool thing is that many of the stories had not been implemented yet, so investigating criteria and options for using the tool via interviews and surveys made a lot of sense” (P11, 7th semester).

The benefits for the teams were also highlighted when students were asked about the return of the results to the Agency: “Great, because this way we can make improvements” (P7, 7th semester), “It helped to find no visible problems in the progress of the project” (P14, 4th semester), and “it helped to find errors that had gone unnoticed. Not to mention that it helped us make the interface more user-friendly” (P15, 4th semester).

For one of the students, it was “Indifferent, because we received feedback only in the project’s finish line and we did not have time to evaluate students’ suggestions. I believe that the ideal would be to follow-up sprints” (P10, 4th semester). This is one of the challenges faces by the courses, in the sense of adjusting the calendars of both, which, as previously described, we have achieved in some semesters and have more and more tried to align (Fig. 3).

Fig. 3.
figure 3

Respondents’ semester (3rd 4th 5th 6th 7th) [22].

Furthermore, still in relation to the return to the Agency, the concepts worked on the course as a whole, and not necessarily the analysis of some specific project, was also highlighted: “Only in one instance did I see this bridge being made; in my second module, some students were attending the course and, with some fresher concepts in mind, brought improvements to the system” (P7, 7th semester).

When asked about the contact with real users, the students have emphasized the importance of this point of view to better understand users’ needs: “It was important to know what the users were thinking, we have already had an idea of what the application would be like, but seeing what they thought of it was important” (P3, 5th semester); “I found the proposals very nice, and they emphasize the importance of the User’s point of view very much, which is a matter that certainly cannot be missing in the HCI course,” (P4, 5th semester); “Great interaction with the stakeholder to clarify doubts” (P7, 6th semester); “Direct involvement with the client and not with the developer, thus being a ‘clearer’ view of real needs” (P13, 6th semester).

An interesting point highlighted by a student who is attending the course this semester is that it is “unfair that only one project is involved. If this is so, only one project will always benefit, because often these things are not done within other projects due to lack of time”. He suggests to diversify the projects in each semester, not being the same for the whole class, and “with this, we can benefit all teams, or at least give them a chance” (P9, 3rd semester). This suggestion was taken into account during the current semester, and the groups were able to choose the projects they would like to analyze, seeking partner teams in the Agency.

Finally, one of the students from the class of possible graduates points out that “The more courses having a bridge with the Agency the better, because it is within the Agency that students without any market experience have their first notion of this universe, which is totally different from the academic environment” (P16, 7th semester).

Besides the students’ point of view, we also sought the software architect’s vision, who is a member of the Agency’s technical team and monitors the students’ work:

The Agency’s integration with the courses from the Software Engineering program is very enriching for the students’ learning. We have been able to achieve great results with the HCI course, as a consequence of the work that has been improving throughout the semesters of existence and development of the Agency. At the end of each semester, we were able to analyze, reflect, and adapt the teaching process for next semester.

In the case of HCI course, at the beginning of each semester, we set up a new schedule and define which Agency projects will be object of study, always with the guidance and endorsement of the responsible professor. The chosen projects may have already been finished or still in progress, depending on the status of each of the Agency’s projects.

Throughout the semesters, some students came to me requesting further information on these projects, trying to better understand the decisions made. Some of the questions were, as follows:

  • Why do we use such technology?

  • Why was a certain functionality made like that?

  • Where did the “stakeholders” come from?

There are also dynamics in the classroom that attracted a great deal of interest in the students. I remember one in particular, which was the interview made with children for the project whose objective was the development of a game. The children came up with incredible insights, to which the students were led to think really fast to accompany them.

I can assure the interdisciplinarity between the Agency and the IHC course has been gratifying for both the Agency and our students, and the learning outcomes are excellent.”

5 Final Considerations

To Zaina and Alvaro [26], “Interdisciplinarity in undergraduate education is a practice that directly contributes to the development of competencies and skills based on the integrative vision and the constant relationship between theory and practice” [26]. Matos [13] also highlights that “curriculum integration has been one of the education initiatives so that lessons make sense to students”.

In agreement with these authors’ perspectives we described one of our interdisciplinary attempts in the Software Engineering Program. Considering the presented case, the integration of HCI practices to the projects developed in AGES, each semester and each new analyzed project bring a new set of learned lessons, challenges, and perspectives for reflection and change. Students deal with schedule changes, the unavailability of users for data collection, problems with the platform used, and the challenges of have to communicate with the projects’ stakeholders and to collaborate with their teammates: as what would happen in a project in the industry, the students in class needed to adapt to changes, new demands, and new scopes of work.

Our current goal is to increase integration with other courses from the program, as well as the courses from other programs, like Computer Science and Information of Systems. In this case, we have begun the interaction with the development of applications that are intended to other programs of the University, to which we have the closest stakeholders and users, favoring a quite interesting contact among areas.