Infoblatt Auftraggeber*innen
Änderungen:
- 2024-11-05 Ergänzung Anforderungen aus dem BP Handbuch.
- 2024-11-05 Entfernung der englischen Version.
Dies ist das Infoblatt für Auftraggeber*innen (AGs) im Bachelor-Praktikum (BP) des FB Informatik.
Alle Mitarbeiter*innen der TU Darmstadt können als AGs Softwareprojekte von Gruppen von 4 bis 5 Bachelor Student*innen bearbeiten lassen.
- Fragen bitte an bp@cs.tu-darmstadt.de
- Anmerkung: Bestätigungsemails wurden am 1. Oktober gegen 18:30 versendet, wenn sie keine Bestätigung erhalten haben, melden sie sich bitte noch mal direkt per E-Mail.
Projekt anmelden
Die Anmeldung erfolgt über ein Online-System. Für die Anmeldung ist nur eine kurze Projektbeschreibung notwendig. Eine frühe Anmeldung wäre für unsere Planung sehr hilfreich.
Nach der Anmeldung müssen die Studierenden das Projekt noch wählen. Bis Mitte Oktober benötigen wir dafür einen kurzen Foliensatz von Ihnen. Wir informieren Sie, wo Sie die Folien hochladen können. Die Folien sollten folgende Informationen enthalten: Titel, Projektbeschreibung, erwünschte Technologien, weitere Informationen und Kontaktmöglichkeiten. Beispielfolien finden Sie hier.
Wichtige Termine dieses Semester
- 02.10.2024: Deadline Projekteinreichung durch Auftraggeber*innen
- 10.10.2024: Deadline zum Einreichen der Werbeslides, anhand derer die Teams die Aufträge wählen.
- ca. 21-30.10.2024: Themenvergabe, Bestätigung, ob das Thema gewählt wurde.
- 04.11.-15.11.2024: Erstes Treffen mit den Studierenden
- 19.03.2025: Deadline für die Projektübergabe
Was ist das BP?
Das Bachelor-Praktikum (BP) ist ein Softwareprojekt für Bachelorstudierende der Informatik. Gegenstand des BP ist das Erlernen & Erleben der systematischen Durchführung eines nicht-trivialen Softwareprojekts in einer Gruppe von 4 bis 5 Personen.
Was bietet das BP?
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 BP eine Lehrveranstaltung ist.
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 folgende 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.
Ihre Aufgaben
- Regelmäßige (alle 2 Wochen) Treffen mit der Projektgruppe
- Gemeinsames Erarbeiten von Anforderungen für Implementierung und Qualitätssicherung
- Bereitstellen benötigter Hard- und Software
- Abschließende Bewertung der Entwurfs- & Implementierungsarbeit
Geeignete Projekte
- Das Projekt muss bis Ende Februar abgeschlossen werden.
- Kein tiefes Domänenwissen als Vorkenntnis erforderlich.
- Das zu lösende Problem ist klar definiert.
- Wichtig: Es geht für die Studierenden um Softwareentwicklung, nicht Forschungsprojekte, die Implementierung beinhalten.
- Das reine Training von KI Modellen ist kein Softwareentwicklungsprojekt.
Projektumfang für Student*innen
- ca. 180 Stunden pro Person für Entwicklung, Dokumentation, Organisation, Treffen, etc
- ca. 90 Stunden pro Person für Vorlesung, Vortragstraining, Abschlusspräsentationen etc.
Anforderungen
Ressourcen
Hardware, Software oder anderweitiges Material, die ein Pro- jektteam ggf. zur Durchführung benötigt, sind von Seiten des Auftraggebers zur Verfügung zu stellen. Das Selbe gilt für etwai- ge benötigte Räume.
Verwertung der Software
Bei dem Bachelor-Praktikum handelt es sich um ein Pflichtprak- tikum. Es gelten deswegen in Hinblick auf die wissenschaftliche bzw. kommerzielle Verwertung die selben 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 Themen- vorstellung zu erwähnen und im Rahmen des ersten Treffens noch einmal unmittelbar mit den Gruppen abzustimmen. Von Seiten der Projektbegleitung aus gibt es keine Vorgaben. Der Projektbegleitung muss jedoch ggf. Einsicht in den Code ge- währt werden, wenn es zu Problemen im Rahmen der Notenfin- dung kommt.
Fragen und Antworten
(Noch in Arbeit, Texte Teilweise redundant)
Hat mein Projekt einen geeigneten Umfang?
Es ist immer schwierig, den Umfang von Softwareprojekten einzuschätzen. Deshalb möchte ich darauf hinweisen, dass es im Bachelorprojekt typischerweise notwendig ist, den Projektumfang 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, anstatt halbfertige Software zu produzieren, die überhaupt nichts Nützliches tut. 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.
Im Bachelorprojekt ist ein iterativer Prozess vorgesehen, wo in 2 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 zu haben was man vielleicht alles gerne hätte, 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 verbessert werden?
Es wichtig, dass sich klare “User Stories” herausarbeiten lassen, deren Erfolg sich Prüfen lässt.
Wartbarkeit des Codes (oder andere Qualitätsmerkmale) ist eine “nicht funktionale” Anforderung – 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?
Was die Attraktivität des Projektes angeht, für die Studierenden sollen sie als AG noch Folien vorbereiten um das Projekt zu bewerben. Diese Folien werden den Studierenden zur Verfügung gestellt und können gerne auch noch Links auf weitere Informationen enthalten.
Wir melden uns noch mal wegen den Folien, sobald wir geklärt haben wie wir das sammeln der Dateien für uns am einfachsten gestalten.
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. Dies scheint in ihrem Fall gegeben.
Kann im Rahmen des Projektes geforscht werden?
Forschungsfragen fallen in dieser Form nicht in das BP, da sie zu wenig Softwareentwicklungsarbeit enthalten.
Was aber durchaus denkbar wäre ist ein Auftrag bei dem das Team eine Plattform für solche Art Auswertungen erstellt. Dies könnte z.B. beinhalten:
- Eine Oberfläche um Dokumente einzulesen (auch in großen Mengen)
- Integration von Werkzeugen um die Textdaten aus den Dokumenten zu extrahieren
- Ermöglichen von Analysen über die Textdaten
- Tools zum erstellen von Graphiken um Ergebnisse zu visualisieren.
Nur eben das finden von geeigneten Dokumenten, die Auswahl von geeigneten Algorithmen um Wissenschaftlich interessante Ergebnisse zu Berechnen, Auswahl und Vergleich von Graphen die am Besten die Ergebnisse präsentieren, und ähnliche Aufgaben sollten nicht von dem Team durchgeführt werden.
Oder vielleicht anders gesagt, das Team soll Software entwickeln die für sie als Auftraggeber am Ende des BPs weiterhin nützlich ist (oder zumindest nützlich sein könnte), ohne dass das Team weiterhin Aufgaben erfüllt.
What if I don’t know what I want yet?
It is normal to collaborate with the team to determine effective solutions to your problems. This involves balancing what is important to you with what the team can build quickly to maximize project utility. If there are expected users of the developed software, it is valid to ask the student team to talk to these individuals to understand their specific needs and come up with a tailored solution.
However, to aid in choosing the project, it is very helpful to provide concrete examples of how you imagine a solution. Make it clear that these are just examples and that you expect adaptations based on findings during the process.
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, 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 weit verbreitet, und es gibt immer wieder Teams mit verschiedensten relevanten Hintergründen.
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 Angestellte 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.