Students of Computer Science at the Zittau/Görlitz University of Applied Sciences have to complete a three-month practical project at the end of the Software Engineering module to demonstrate the skills they have acquired in their past lectures and seminars. The students at the campus in Görlitz have the advantage that several IT companies that are willing to cooperate with the university are located in the city. Saxonia Systems (since 03/2020: ZEISS Digital Innovation) is one of the companies that have decided to support a group of students in their practical project.
In order to give the students a realistic impression of agile software development, Saxonia decided to use the tried-and-tested scrum process model. With this method, a team of developers headed by the scrum master develops software increments in iterations or sprints, and these increments offer a certain added value for the client from the start. With each software increment, new functions are implemented according to the client’s prioritization. The IT company’s task is to provide the topic of the project, and the company’s role is that of the product owner. Saxonia Systems thus represents the client, who was represented vis-à-vis the scrum team by Nico Förster (software developer) as the product owner. The scrum team primarily consisted of the three students, Marco Gotthans (scrum master and developer), Paul Bachmann and Johannes Thies (both software developers), who faced the following challenge:
The requested software is to assist the user with the selection and ordering of pizza. For this purpose, the menus of three pizza delivery services in Görlitz have to be stored in the program, including special features such as pizza packages and discounts. The user can specify the number of persons and the average quantity of pizza eaten, and then obtains an optimal pizza order based on this input (best possible price-performance ratio) for each of the
three pizza restaurants. Since this order covers the demand for pizza, but likely lacks variety, the user is to be given an opportunity to shuffle the result. This way, different pizzas are selected on a random basis, such that the order still covers the demand, but may be a little more expensive. The software is furthermore supposed to be able to observe a maximum amount so as not to exceed a defined budget. The last specification was for a possibility to save orders placed so they can be called up again at a later time, e.g. for billing purposes. The students were given free choice regarding the technologies used, and they chose a Spring application with a web front end. The following software stack was used: Java, Spring Boot, Hibernate, H2 and MySQL database, Thymeleaf, Lombok, HTML, and JavaScript.
Already at the end of the first iteration, the team was able to present a surprisingly comprehensive software product to the product owner. The look of the web front end was immediately captivating because it was based on the design of the Saxonia website. Once the increment had been approved by the product owner, the requirements to be implemented with the next software increment were presented. Any questions that arose were clarified together, and problems and methods were discussed. In the subsequent retrospective, the scrum team received valuable assistance from Michael Klose (software developer at Saxonia), whose many years of project experience and whose presentation of various versions of the scrum retrospective were a valuable contribution to the practical project.
With each two-week sprint, the functionality of the application increased, much to the product owner’s satisfaction. Tests and trial orders showed that a few bugs had occurred, and the scrum team itself felt the need to refactor (improve and anneal) the program code. The refactoring was impeded by the lack of software tests (unit tests) that could have prevented some bugs, in particular in the computational logic. At the team’s request, Michael Klose and I also carried out a code review, the results of which were gladly accepted, and corresponding improvements were made.
The final product was presented both at the final presentation at the Zittau/Görlitz University of Applied Sciences and within the framework of a meeting at the Saxonia Systems premises in Görlitz. All the reactions were positive, and the team received well-earned praise for their good work. Showing the students the benefits of tried-and-tested software development methods such as scrum, test-driven development, clean code and refactoring was particularly important. In the end, the intensive support provided by Saxonia, which far exceeded that which the university required of the company, paid off. The students were able to gain valuable practical experience, and in return, Saxonia got an optically and functionally excellent product.
Successful collaboration between students of Zittau/Görlitz University of Applied Sciences and Saxonia Systems!