Infos für Auftraggeber*innen

Änderungen:


Alle Mitarbeiter*innen der TU Darmstadt können Softwareprojekte einreichen, die von Studierendenteams der Informatik (5. Semester) im Rahmen des Moduls Teamprojekt Softwareentwicklung (TPSE), ehem. Bachelor-Praktikum (BP), bearbeitet werden. Diese Infopage bündelt alle Infos, die Sie brauchen, wenn Sie als Auftraggeber*in (AG) ein Projekt einreichen möchten.

Timeline

Was ist das TPSE?

Das Teamprojekt Softwareentwicklung (TPSE) ist ein 9 CP-Praktikum für Bachelorstudierende der Informatik im 5. Semester, das jedes Wintersemester angeboten wird. Gegenstand des TPSEs ist das Erlernen & Erleben der systematischen Durchführung eines realen Softwareprojekts in einem Team von 4 bis 5 Personen. Jedes Team wird dabei zusätzlich von einem Studierenden höheren Semesters als Teambegleitung (TB) unterstützt.

Was bietet das TPSE?

Mitarbeiter*innen der TU Darmstadt können Projekte anbieten, die von den Studierenden gewählt und bearbeitet werden. Die entstehende Software soll einen Nutzen für Forschung, Lehre oder universitären Alltag haben. Die Nutzung der Software sollte angestrebt werden, die Eignung der Software kann aber nicht garantiert werden, da das TPSE eine Lehrveranstaltung ist.

Ihre Aufgaben

Ressourcen

Alle Studierenden sind typischerweise bereits mit Computer und üblicher Entwicklungsumgebung (IDE) ausgestattet.

Sollte Ihr Projekt Ressourcen erfordern, die darüber hinausgehen, müssen Sie diese dem Team zur Verfügung stellen. Das könnte sein:

Verwertung der Software

Bei dem TPSE handelt es sich um ein Pflichtpraktikum. Es gelten deswegen in Hinblick auf die wissenschaftliche bzw. kommerzielle Verwertung dieselben Regeln, wie sie auch im Falle von Praktika etc. gelten. Soll die erstellte Arbeit nach Abschluss in einer bestimmten Art und Weise wissenschaftlich bzw. kommerziell verwertet werden, so ist dies bei der Themenvorstellung zu erwähnen und im Rahmen des ersten Treffens noch einmal unmittelbar mit den Gruppen abzustimmen. Vonseiten der Veranstalter*innen aus gibt es keine Vorgaben. Den Veranstalter*innen muss jedoch ggf. Einsicht in den Code gewährt werden, wenn es zu Problemen im Rahmen der Notenfindung kommt.

Wie kann ich mir den Softwareentwicklungsprozess vorstellen?

Eine der größten Herausforderungen bei der Softwareentwicklung ist es, dass die Entwickler genau verstehen, was die Auftraggeber benötigen. Der hier gezeigte Cartoon von Alex Gorbatchev illustriert die Schwierigkeit, sowohl Anforderungen zu kommunizieren als auch herauszufinden, was sie überhaupt sind.

In der Softwareentwicklung hat sich das „Agile“ Modell bewährt, um die Entwicklung von unpassender Software zu vermeiden. In unserem Ansatz bedeutet das, dass sich das Entwicklerteam alle zwei Wochen mit den Auftraggebern trifft, um gemeinsam die Anforderungen zu erarbeiten und zu verfeinern. Ab dem zweiten bis dritten Treffen wird bereits laufende Software präsentiert. Diese frühen Versionen der Software haben zwar noch begrenzte Funktionen, helfen jedoch den Auftraggebern, ihre Anforderungen besser zu verstehen und klar zu kommunizieren.

Scheuen Sie sich deshalb nicht, Themen anzubieten, bei denen Ihnen noch nicht ganz klar ist, wie die Lösung aussehen könnte. Sie müssen nur eine gute Lösung von einer schlechten unterscheiden können, wenn Sie sie sehen.

Beachten Sie bitte auch, dass es notwendig sein kann, den Umfang des Projektes während des Semesters daran anzupassen, wie gut das Team vorankommt. Ihre Aufgabe ist es, zu priorisieren, an welchen Funktionalitäten (sogenannten „User Stories“) das Team als Nächstes arbeiten soll, während das Team Ihnen eine grobe Einschätzung bietet, wie viel Aufwand jedes Feature erfordert.

Geeignete Projekte

Wichtig: Es geht für die Studierenden um Softwareentwicklung, nicht etwa Forschungsprojekte, die Implementierung beinhalten. Das reine Training von KI Modellen bspw. ist kein Softwareentwicklungsprojekt.

Werbefolien

Die „Werbefolien“ sind ein PDF mit 3 bis 6 Slides, in denen das Projekt kurz umrissen wird, damit die Studierendenteams schnell einen Eindruck bekommen können, ob das Projekt für sie geeignet ist.

Die Folien werden den Teams online zur Verfügung gestellt. Sie werden die Folien NICHT präsentieren.

Bitte machen Sie sich keine unnötige Arbeit beim Gestalten der Folien. Es geht darum, einen Eindruck für die Projektinhalte zu vermitteln, nicht darum, die Teams zu beeindrucken.

Wie Sie das Projekt beschreiben, bleibt Ihnen überlassen. Wir empfehlen jedoch:

Beispielfolien

Anmerkung: Die Beispielfolien beinhalten nicht so klar eine spezifische Slide für die Rahmenanforderungen, da wir dies erst seit WS2024 explizit angeben.

Positive Punkte der Beispielfolien:

Rahmenanforderungen

Wenn Sie schon vorher wissen, dass bestimmte Rahmenanforderungen von den Teams erfüllt werden müssen, dann müssen Sie diese bereits auf den Werbeslides nennen. Darunter fällt z. B.:

Es ist möglich, dass Ihr Projekt keine solchen Rahmenanforderungen hat. In diesem Fall notieren Sie dies bitte einfach auf der letzten Slide.

Sie sollten diese Anforderungen auch nach der Gruppenzuteilung noch einmal direkt mit der Gruppe diskutieren.

Es ist auch möglich, dass sich Rahmenanforderungen erst nach der Gruppenzuteilung ergeben. In diesem Fall liegt es an Ihnen, mit der Gruppe gemeinsam eine Lösung zu finden, die für alle akzeptabel ist.

Fragen und Antworten

Hat mein Projekt einen geeigneten Umfang?

Es ist immer schwierig, den Umfang von Softwareprojekten einzuschätzen. Deshalb kann es typischerweise notwendig werden, den Projektumfang ad hoc anzupassen, je nachdem wie gut das Team vorankommt. Dies kann in beide Richtungen gehen. Wenn das Team nicht gut vorankommt, sollte trotzdem versucht werden, ein Teilproblem vollständig zu lösen, anstelle von halbfertiger Software, die keinen praktischen Nutzen hat. Für den Fall, dass ein Team gut vorankommt, ist es wünschenswert, dass das Projekt sinnvoll erweitert wird, um die Bearbeitungszeit zu füllen.

Der vorgesehene Arbeitsumfang für die Studierenden gliedert sich wie folgt:

Im TPSE ist ein iterativer Prozess vorgesehen, in welchem in Zwei-Wochen-Abschnitten nächste Schritte priorisiert und Teilergebnisse besprochen werden, um sicherzustellen, dass die Entwicklung auch in die richtige Richtung geht.

Dafür ist es vorteilhaft, eine große Projektvision von dem zu haben, was Sie gerne hätten. Denn dann kann das Team Vorschläge machen, wie sich das in kleinere Bestandteile zerlegen lässt, die Sie dann priorisieren können.

Kann im Rahmen des Projektes ein existierendes Projekt erweitert werden?

Selbstverständlich können auch bestehende Projekte erweitert werden. Berücksichtigen Sie jedoch, dass die schon existierende Codebase einer Einarbeitung des Teams bedarf, das entsprechend mehr Zeit in Anspruch nimmt.

Entscheidend ist, dass sich klare „User Stories“ herausarbeiten lassen, deren Erfolg sich prüfen lässt.

Qualitätsmerkmale wie die Wartbarkeit des Codes sind „nicht-funktionale“ Anforderungen – diese sicherzustellen ist auch Teil des Projektes, kann aber nicht die einzige Aufgabe sein.

Wie gestalte ich mein Projekt attraktiv für Studierende, damit diese das Projekt auch wählen?

Zur Bewerbung Ihres Projekts fertigen Sie als AG einen kurzen Foliensatz an. Diese Folien werden den Studierenden zur Verfügung gestellt und können gerne auch noch Links auf weitere Informationen enthalten. Dabei erscheint Ihr Projekt umso attraktiver, je verständlicher, spezifischer und bildhafter Sie das Projekt beschreiben können. Eine geringere Komplexität und nicht zu großer Umfang helfen dabei auch. Auch hilft es, die Relevanz des Projekts zu verdeutlichen. Nennen Sie auch gerne die expliziten Vorteile, die die Studierenden von Ihrem Projekt haben.

Aufgrund der hohen Anzahl an Themen (wir rechnen mit ~100) ist außerdem die Wahl eines geeigneten und interessant klingenden Titels wichtig.

Als Tipp: Für viele Teams ist es attraktiv, wenn das Team die eingesetzten Technologien selber wählen kann, da dann bestehende Kenntnisse genutzt werden können.

Kann im Rahmen des Projektes geforscht werden?

Forschungsfragen fallen in dieser Form nicht in das TPSE, da sie zu wenig Softwareentwicklungsarbeit enthalten.

Was aber durchaus denkbar wäre, ist ein Auftrag, bei dem das Team eine Plattform für die Auswertung von Daten erstellt. Dies könnte z. B. beinhalten:

Was nicht vom Team durchgeführt werden sollte, sind Aufgaben wie:

Kurzum: Das Team soll Software entwickeln, die für Sie als AG am Ende des TPSEs weiterhin nützlich ist (oder zumindest nützlich sein könnte), ohne dass das Team weiterhin Aufgaben erfüllt.

Was ist, wenn ich noch nicht genau weiß, was ich will?

Es ist normal, mit dem Team zu diskutieren und zu entscheiden, wie effektive Lösungen für Ihre Probleme aussehen könnten. Das involviert die Balancierung von dem, was für Sie wichtig ist und was das Team zügig entwickeln kann. Wenn absehbar ist, wer die User der zu entstehenden Software sein werden, lassen Sie das Team mit diesen sprechen, um die spezifischen Bedürfnisse zu erfassen und so eine zugeschnittene Lösung zu entwickeln.

Bedenken Sie: Damit Teams Ihren Projektvorschlag wählen, ist es sehr hilfreich, konkrete Beispiele zu liefern, was eine Softwarelösung können soll. Machen Sie aber auch klar, dass dies nur Beispiele sind und Anpassungen während des Entwicklungsprozesses möglich sein werden, je nach o. g. Feststellungen.

Welche Vorkenntnisse kann ich von dem Team erwarten?

Das Team besteht typischerweise aus Bachelor-Studierenden im 5. Semester. Das Grundstudium selbst lehrt Softwareentwicklung in Java, Python, sowie vereinzelt andere Programmiersprachen.

Es ist gut möglich, dass Teams sehr wenig Vorerfahrung mitbringen und sich zu Beginn des Projektes erst einarbeiten müssen.

Gleichzeitig ist das Selbststudium ein Skill, der von den Studierenden abverlangt werden kann. Und es gibt immer wieder Teams mit verschiedensten Hintergründen, die sich ergänzen können.

Falls Ihr Auftrag Vorwissen erfordert (oder sehr davon profitiert), raten wir deshalb, dies in der Projektbeschreibung anzumerken, damit Teams den Auftrag entsprechend wählen oder vermeiden können.

Können auch Unternehmen als Auftraggeber*innen teilnehmen?

Aus Gründen der Verantwortlichkeit bei der Benotung und des Datenschutzes müssen Auftraggeber*innen Angehörige der TU Darmstadt sein. Für Unternehmen steht das Software Engineering Project (SEP) zur Verfügung, ein ähnliches, jedoch umfangreicheres Projekt. Dort wird die Verantwortung durch das Lehrpersonal kostengünstig übernommen.