Feedback from Promyze to INSA
This article was written for Frédéric Baucher, a teacher at INSA (Institut National de Sciences Appliquées). He shares with us his feelings and his feedback on the use of Promyze in the context of teaching.
Context and course content
The INSA group brings together 7 schools, including 6 in France and 1 in Fez (Morocco) with the Euromedschool. It is in this school that the experimentation took place. After a first experiment in the autumn of 2019 with students at Master 2 level (5
The ” Databases ” course is given to students at L2 level (2nd year engineering) and is based on theoretical acquisition (database modelling and design), and implementation at source code level is approached in the Java language. The notion of good practices is introduced with some implementation
Given the maturity of the students (and the length of time they have been of the exercise: 6 weeks), the project (in the
Why choose Promyze?
A catalog of needs to be met by the development chain has been established. While Github and Jenkins were chosen for code storage and continuous integration, code analysis, evolution of code coverage or the possibility of code reviews were also criteria for the decision. Other criteria were also considered :
- Support for Java, SQL (and incidentally JavaScript and HTML) languages
- Availability in SaaS
- Openness to collaborative use: data sharing between all the students of a team, possible access to the teacher for annotation
- Consistency between the tools used
- A limited mental load by avoiding the multiplication of different tools
If a tool like SonarQube was one of the candidates, Promyze brought an additional answer on 2 points in our pedagogical context :
- The “Workshop Craft” feature that facilitates the illustration and implementation of good practices, especially those we present in the courses.
- An evolution on code qualityand code coverage rate, with an individualized approach per developer, more conducive to student awareness and support.
Nevertheless, we can point out that a greater experience acquired during previous educational projects as well as the support of the Promyze team also contributed to the selection of their solution (especially in the timingimposed by Covid19). In the rest of this article, the study of the
Asset #1: A reusable code review thanks to Craft Workshops
The Atelier Craft feature has been identified as a good experiment for organizing code review sessions. These activities were often practiced, until this episode, in an informal way, in the lab room, through a close exchange, by means of finger pointing on the screen of the commented code pieces
ThePromyze Craft Workshops are designed to facilitate the implementation of good practices. The objective is to organize collective
In our pedagogical framework, the Craft Workshop is used to assess the students’ skill acquisition. The source code is only a trace of the application (correct or not) of good practices. A session therefore corresponds to the evaluation of projects at a milestone of the pedagogical activity. In our context, a Craft Workshop will gather all the files of a certain type, which will be found within each project. The objective is to highlight certain implementations, to
The Craft Workshop makes it possible to work both downstream, in a proactive way (by documenting the good practices a priori) and upstream, in a reactive way, by documenting, at the sight of the students’ behaviors, the possible good practices whose highlighting had not been anticipated.
The Atelier Craft presents interesting characteristics on 2 levels :
- Semantics: The example or good application of the good practice (the
positive ) or the counter-example, the absence or misapplication of a good practice (thenegative ) are both good ways to convey this type of knowledge. : the code review in a Craft Workshop allows to type the semantics of the link between acode extract and a (for an example, annotation in green, for a counter-example, annotation in orange).good practice
- Productivity: When a good practice is identified in a file, the corresponding code can be added for illustration by clicking the Sample button on the annotation bar. When a counter-example is identified in a file, a correction can be proposed to show how to apply the good practice to the annotated case by
clicking thePropose Correctio n button on the annotation bar.
Overview of a workshop with here 2 proposed areas of improvement |
In the capture above, we observe that 2 good practices have been proposed, one of which recommends annotating the methods to be implemented with a comment “//TODO”.
Some “tags” can be commented on, as shown below with a suggestion to define a naming convention :
It should be noted that other practices, applicable to more traditional code review tools, have already been documented But they do not make it possible to achieve either productivity for the author or ergonomics for the developer, as Promyze allows in the same context.
Moreover, the sedimentation of knowledge in good practice allows it to be reusedand to evolve from Atelier Craft to Atelier Craft.
Asset #2: Awareness of code analysis tools
To raise awareness of the concept of ” quality ” as a whole, the centralization of information within the same interface avoids dispersion in the tools and contributes to forging the coherence of the concept among students. The availability on a single portal, on a single page, of the evolution of test coverage and static analysis results on the project code gives an overall awareness of the team’s actions.
One of Promyze’s strong points consists in individualizing the contribution to the technical debt. In his
Conclusion and Outlook
This article reports on the use of Promyze in the context of L2 level teaching. Beyond its use as a unifying portal around code quality, one of the innovative contributions of the tool lies in the notion of “quality of code”. Craft workshop. Prior to the experiment described in this article, code annotation was rather filled by code review tools (or even by on-screen proofreading sessions in a PT session). Putting these tools into perspective allows a better understanding of the purposes that can be expected from one or the other
- On a classic code review tool, a piece of code is reread before it is added to the global code of an application, to check certain conventions and improve the code before merging.
- With Ateliers Craft, the work consists in defining, disseminating and continuously improving a repository of good practices, in order to share and capitalize more easily on knowledge. It is easy to understand why the Atelier Craft is
a natural part of a pedagogical framework to help students improve their skills and accompany their progress.
While the health context was exceptional, L2 students were able to continue to improve their skills by using Promyze in the Craft Workshops. Although their role was limited to that of observer, they were able to analyze the quality of their code
See you at the beginning of 2021 for a new feedback on these uses!