Guest lecture by the CSS Software team: Software development in fast forward from a developer’s point of view

24 August, 2023
Alumni return to UAS Technikum Wien to show computer science students software solutions.
On June 21, 2023, three alumni returned to UAS Technikum Wien to give students in the fourth semester of the bachelor’s degree program in computer science insights into the development of individual software solutions as part of the Innovation Lab 2 course. DI(FH) Sven Schweiger, Managing Director of CSS Software-Team, his colleague Verena Kopf BSc and his colleague Philipp Schwarzkopf MSc presented software development as a roadmap, which includes all project phases from a technical kick-off to the definition of user stories, demo meetings at the clients and system operation and support.

At the beginning of the presentation, it was emphasized that in complex projects – regardless of the type – a pre-project is particularly important in order to find out which problems actually exist that need to be solved before the actual start of the project.
If the customer does not have a sufficiently detailed specification of the desired software solution, workshops are a particularly good means of working out a software solution together with the customer, taking into account the individual framework conditions and focusing on the maximum added value for your users. The customer is the expert for the problem and the supplier is the expert for the solution. Especially an ERP system is the core system of a company. The consulting share in such projects is therefore very large, since the digitization of business processes is usually also associated with organizational development measures.
In the pre-project phase, product owners, among others, play a particularly important role. They are the ones who bring together technical requirements and customer goals – a role for which one must be proficient in software development in addition to project management skills in the CSS software team. At the FH Technikum Wien, students receive a solid technical education. In addition, the curricula of the degree programs place great emphasis on the interplay of technical with business and personality-building content. It is precisely this interaction that is reflected in the product owner job profile after graduation. On the basis of well-founded technical knowledge, it is important to be able to find out, through targeted questions and empathy, which hidden wishes may still lie dormant behind a project, who the actual users of a software solution are and what their expectations are, or what the decision-making criteria on the customer side look like. Employees with such knowledge and skills are becoming increasingly important for software development companies and are irreplaceable for successful projects.
Once the project goals and requirements for the software have been defined, the so-called product backlog can be created – in agile software development projects, this is formulated in the form of user stories and tasks. In practice, it has proven particularly useful to create a kind of “wiki” for each project and to treat this as a living document that grows during project implementation and is constantly kept up to date. It makes sense to take sufficient time for detailed planning and specification before or at the start of the project. On the one hand, because this is necessary for the development of a suitable system and software architecture. And on the other hand, because it avoids going off in the wrong direction and ultimately saves a lot of time and discussions with the customer.
At the start of a project, it is also important to come together as a team and to develop a common approach to the project. It is important to define the acceptance criteria, coding style and naming, as well as to plan together how to test and ensure the appropriate quality.

All software developers must be prepared to deal with unexpected difficulties in their professional life and to find new solutions. It can be especially helpful to talk to colleagues who have more professional experience or are working on completely different projects and thus have a new perspective on a problem. Troubleshooting and problem solving work best as a team.
Other valuable tips from the field were that a requirement must be available for every change in order to ensure traceability and, in projects with particularly high quality requirements, to always be able to determine which line in the source code belongs to which line in the requirements. The four-eyes-principle helps to guarantee a high code quality (e.g. by means of pull requests, code reviews,…). If you have developed a feature yourself, you tend to make the same thinking mistakes over and over again. The neutral view of another person can therefore be very helpful. Testing is very important in practice, in modern software development integrated development pipelines are used to automate tests, builds and deployments. This should also allow each team member to perform each release safely and with high quality.
In practice, it has proven useful to present clients with something visual and interactive as quickly as possible. For this reason, demo meetings are particularly important, in which completed features or digital business processes that can already be tested can be simulated or realistically played out with future users. It is often only through the presentation of a demo that it becomes clear how a software is to be used in practice by the users. It is therefore advisable not to hold the first demo meeting only two weeks before the project is completed, but to schedule such demo meetings regularly during the entire project duration and to present every major project progress, as in the case of house construction, and to ensure that you are on the right track and have understood the expectations of the client or the users in detail. This also makes it easier to respond to changing customer requirements during the project, correct misunderstood functions with little additional effort, and ultimately still meet the targeted project completion date.
Project retrospectives are held at the end of the SW development roadmap. In these meetings, the past is reviewed in order to learn something for future action. The basis for this is a good feedback culture, solution-oriented teamwork and a good basis for communication between all participants. Feedback regarding improvements must always be occasion, behavior and context related. If errors are found quickly, this has an immense added value for all parties involved. It is also worth involving the customer in this feedback in order to establish a sustainable and open basis for discussion for the operational phase of the software. After all, large software solutions are intended to function for many years and must be continuously maintained and further developed during this time.
During the lecture, it was repeatedly emphasized how fast-moving the IT industry is and how essential it is that students and graduates have a sound basic knowledge, but are also able to quickly acquire new knowledge themselves.
The curriculum of the Bachelor’s degree program in Computer Science is structured in such a way that students build up comprehensive knowledge of the fundamentals on the one hand, and develop competencies on the other, in order to be able to acquire new knowledge independently and quickly.
In recent years, students from the bachelor’s degree program in computer science have repeatedly done their compulsory internship in the CSS Software team and some have started their careers in this company after successfully completing their studies. Since 2023, CSS has also been a training partner in the dual computer science program.