Infoblatt Auftraggeber*innen

Read the English 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.

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

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

Geeignete Projekte

Projektumfang für Student*innen

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:

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.