Teilprojekt vs. Einzelprojekt für das Abschlussprojekt

Nicht alle Ausbildungsunternehmen können ihren Azubis für das Abschlussprojekt ein komplett eigenständiges Projekt anbieten. Und manchmal ist das auch gar nicht sinnvoll. Wenn auch die normale Arbeit im Betrieb so organisiert ist, dass alle Entwickler gemeinsam an einem Projekt arbeiten, sollte man für das Abschlussprojekt nicht unbedingt eine Ausnahme machen.

Daher stehen viele Prüflinge vor der Aufgabe, ihr Teilprojekt umzusetzen, zu dokumentieren und zu präsentieren. Die Frage, die sich viele von ihnen nun stellen, ist:

Worauf sollte man bei der Umsetzung eines Teilprojekts für die Abschlussprüfung achten?

Die kurze Antwort: Es muss eindeutig die Eigenleistung des Prüflings erkennbar sein.

Vor- und Nachteile von Teilprojekten

Man kann nicht grundsätzlich sagen, das Teil- oder Einzelprojekte besser für die Abschlussprüfung sind. Es kommt immer auf die individuelle Arbeit an. Einzelprojekte haben den Vorteil, dass unmissverständlich klar ist, was der Prüfling überhaupt gemacht hat. Das können die Prüfer dann direkt bewerten. Außerdem hat man natürlich freie Hand bei der Umsetzung und kann (falls es keine Vorgaben seitens des Unternehmens gibt) Programmiersprache, Datenbank, Entwicklungsprozess usw. selbst wählen. Auch den kompletten Projektablauf inkl. Planung und Kostenbetrachtung hat man in der eigenen Hand.

Bei Teilprojekten ist das Hauptproblem vieler Prüflinge, zu zeigen, was ihr Anteil am Projekt war. Allerdings entspricht die Umsetzung eines Teilprojekts in den meisten Betrieben wahrscheinlich eher der Realität. Denn wo werden in der Praxis tatsächlich solch kleine Projekte auf der grünen Wiese von einer Person umgesetzt? Meistens werden die Entwickler wohl eher gemeinsam an vorhandenen Projekten arbeiten.

Außerdem stellen sich bei Gemeinschaftsprojekten auch ganz andere Aufgaben. Man muss z.B. genau die Zuständigkeiten planen, Abhängigkeiten berücksichtigen, Meetings durchführen, Versionsverwaltung und Continuous Integration aufsetzen, Coding Guidelines erstellen und befolgen usw. Das sind natürlich alles Aufgaben, die ein professionelles Vorgehen erfordern – also genau das, was wir im Abschlussprojekt sehen wollen.

Teilprojekte haben also durchaus ihren Reiz. Sie sind anspruchsvoll (zumindest auf organisatorischer Ebene) und realistisch.

Herausstellen der Eigenleistung

Auch wenn Teilprojekte nun also eher der Realität in der Softwarebranche entsprechen, stellen wir doch an die Abschlussprüfung ganz besondere Anforderungen. Es geht um eine Prüfungsleistung, die bewertet wird. Der Prüfling soll zeigen, dass er methodisch Software entwickeln kann. Also muss er seine Fähigkeiten unter Beweis stellen.

Ein tolles Gesamtprojekt, zu dem der Prüfling nur Kleinigkeiten beisteuert, reicht also nicht als Prüfungsleistung aus. Er muss schon einen gewissen fachlichen Beitrag leisten, der auf dem Niveau eines Einzelprojekts liegt. Vielleicht werden gewisse Teile nicht so intensiv beleuchtet wie in einem Einzelprojekt (die Datenbank ist vielleicht schon vorhanden oder das Framework für die GUI ist bereits entworfen). Aber dann erwarte ich als Prüfer eine tiefere Auseinandersetzung mit den restlichen Bereichen (z.B. Schnittstellenproblematik, Einhaltung der Architektur, Abstimmung mit anderen Entwicklern).

Häufig werden in Projektarbeiten von Teilprojekten auch nicht alle üblichen Bereiche – Datenhaltung, Logik, Präsentation – der Softwareentwicklung behandelt. Wenn die Datenbank und die GUI bereits definiert ist, hat der Prüfling hier halt nichts mehr zu tun. Dennoch möchte ich als Prüfer natürlich ein umfassendes Bild der Fähigkeiten des Prüflings bekommen. Und wenn ich „nur“ die Programmierung gezeigt bekomme, aber die Datenmodellierung oder Oberflächengestaltung „fehlt“, erwarte ich eine deutlich intensivere Auseinandersetzung mit den vorhandenen Teilen. Es sollte dann z.B. nicht nur ein Klassendiagramm vorhanden sein, sondern auch mal das ein oder andere Sequenz- und Objektdiagramm, auf das man in einem Einzelprojekt vielleicht zugunsten von ERM und Mockups verzichten würde.

Kurzum: Auch wenn der Prüfling Teil eines Gesamtprojekts ist, muss mir als Prüfer deutlich werden, was genau er gemacht hat, und dass ihm die üblichen Methoden bei der Softwareentwicklung vertraut sind und er sie korrekt anwenden kann.

Erläuterung des Gesamtprojekts

Ein häufiges Problem in Projektdokumentation und -präsentation bei der Beteiligung an Gesamtprojekten ist, dass viel Zeit und Platz für die Erläuterung des Gesamtprojekts vergeudet wird. Sicherlich ist es wichtig, zu erklären, worum es beim Gesamtprojekt geht und wie das Teilprojekt dort eingegliedert ist. Aber wie gesagt interessiert mich als Prüfer lediglich die Eigenleistung des Prüflings. Genausowenig wie der tolle Ausbildungsbetrieb zu einer besseren Abschlussnote beiträgt, hat das imposante Großprojekt Auswirkungen auf die Notenfindung, wenn der Prüfling nicht den erwarteten Beitrag geleistet hat.

Ich empfehle daher, in den Artefakten der Projektarbeit nur so kurz wie möglich und so lang wie nötig auf das Gesamtprojekt einzugehen. Der Zusammenhang muss deutlich werden und die Prüfer müssen die Aufgabenstellung verstehen. Alles, was für dieses Verständnis notwendig ist, muss in der Projektdokumentation und -präsentation gezeigt werden. Alles andere sollte ersatzlos gestrichen werden.

Außerdem lassen viele Prülinge in Teilprojekten einfach die Kostenplanung außen vor. Das hat ja immerhin schon jemand anders gemacht – nämlich für das Gesamtprojekt. Warum also nochmal das Teilprojekt individuell betrachten? Das mag zwar in der Praxis so sein, aber trotzdem erwarte ich in der Prüfungsleistung eine kaufmännische Auseinandersetzung mit dem Teilprojekt. Das ist ein (meiner Meinung nach) zwingender Bestandteil der Projektarbeit. Der Prüfling muss über die technischen Kenntnisse hinaus auch die wirtschaftlichen Aspekte berücksichtigen und in seiner Projektarbeit demonstrieren. Es ist vielleicht schwierig, den für das Gesamtprojekt angeschafften teuren Server anteilig auf das Teilprojekt umzulegen oder die potentiellen Einsparungen genau dieses einen Projektteils zu bewerten, aber wie bereits erwähnt haben Teilprojekte nun einmal besondere Anforderungen.

Fremde Artefakte deutlich kennzeichnen

Bei der Abgrenzung des Teilprojekts vom Gesamtprojekt werden in Projektdokumentation und -präsentation häufig Artefakte wie Architekturdiagramme verwendet. Hierbei ist darauf zu achten, dass deutlich erkennbar ist, wer diese Artefakte erstellt hat. Oftmals habe ich in Dokumentationen nicht erkennen können, ob z.B. ein Komponentendiagramm vom Prüfling erstellt oder einfach vom Architekten des Gesamtprojekts (leider meist ohne Quellenangabe) übernommen wurde.

Letzterer Fall müsste natürlich bei fehlendem Quellennachweis zu Punktabzug – oder noch schlimmer zum Nichtbestehen – führen. Aber anders herum kann ich die erstellten Artefakte auch bei korrekter Zitation nicht als Leistung des Prüflings anrechnen und bewerten, da er sie nicht selbst erstellt hat. Daher nochmal meine Empfehlung von oben: Nur gerade so viel wie nötig zum Gesamtprojekt erzählen und den Fokus auf die eigene Leistung legen – und das schließt alle Darstellungsformen ein.

Häufig habe ich diesbzgl. gesehen, dass z.B. in komplexen Datenbankmodellen die Tabellen deutlich hervorgehoben (z.B. farbig) werden, die der Prüfling hinzumodelliert hat, oder in Klassendiagrammen auf Package-Ebene unterschieden wird, wer welche Teile implementiert hat. Das ist dann völlig in Ordnung, da die Leistung des Prüflings klar erkennbar ist.

Fazit

Teilprojekte sind eine gute Wahl für realistische Abschlussprojekte. Wenn man als Prüfling darauf achtet, seine eigene Leistung herauszustellen und mit selbst erstellten Artefakten zu dokumentieren, gibt es keine Vor- oder Nachteile gegenüber Einzelprojekten, die der Prüfling komplett alleine umsetzt. Im Gegenteil, die Arbeit als Teil eines komplexen Projekts stellt den Prüfling vor besondere Herausforderungen, die auch meist durch die Prüfer honoriert werden.


Hast du ein Teil- oder Einzelprojekt für deine Prüfung gewählt? Warum hast du diese Entscheidung getroffen? Was sind deiner Meinung nach Vor- und Nachteile beider Varianten bzw. worauf hast du in der Projektarbeit besonders geachtet?

Probeabo bei Audible (Affiliate)

Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

6 comments on “Teilprojekt vs. Einzelprojekt für das Abschlussprojekt

  1. Mario sagt:

    Hey Stefan,

    danke für deinen tollen Beitrag.
    Mir ist ein kleiner Rechtschreibfehler aufgefallen „Prülinge“.
    Wenn du danach suchst, wirst du den Fehler wahrscheinlich direkt finden.

    Grüße Mario

  2. Stefan Macke sagt:

    Danke! Werde ich korrigieren!

  3. Nadine sagt:

    Hey,

    du erwähnst hier gute Punkte, die ich auf alle Fälle bei meinem Teilprojekt berücksichtigen will. Doch leider habe ich ein ganz anders Problem mit meinem Teilprojekt. Mein Projekt ist so aufgegliedert, dass ich Funktionalitäten zur Benutzung des Tools umsetze, aber kein Loginsystem oder Deployment als Teil des Projekts vornehme. Am Ende meines Projekts kann man also mein Tool nur lokal nutzen. Da stellt sich jetzt bei mir die Frage, wie ich bei den Projektkosten und der grafischen Ansicht der Amortisationsdauer vorgehen soll. Projektkosten sind eigentlich nur die Kosten, die mein Projekt innerhalb meiner Entwicklung auch wirklich verursacht hat. Dennoch verfälscht es ja die Amortisationsdauer, wenn das Projekt noch nicht vollständig genutzt werden kann. Soll ich dann doch die weiteren Kosten, die Umsetzung des Loginsystems und Deployment nach sich ziehen würde, schätzen und miteinfließen lassen oder wie würdest du da vorgehen?

    Danke für deinen Rat und liebe Grüße
    Nadine

  4. Stefan sagt:

    Hallo Nadine, hast du das hier schon gelesen? Mein Projekt amortisiert sich nicht (FAQ)

  5. Nadine sagt:

    Hallo Stefan,

    danke für den Link. Den hatte ich mir schon mal durchgelesen, bin es aber nun nochmal im Detail durchgegangen und finde darin leider keine Antwort auf mein Problem. Ich weiß wie ich die Amortisationsrechnung durchführen und aufgrund von welchen Faktoren ich das machen kann. Momentan argumentiere ich auch mit „Durch die Entwicklung des Tools können x Stunden im Jahr eingespart werden.“. Nur beziehen sich meine Projektkosten auf die bislang tatsächlich verursachten Kosten (ohne Loginsystem und Deployment) und die Amortisationsargumentation beruht auf dem fertigen Stand des Projekts, was durchaus auch Sinn macht, weil die zwei Bereiche zwar ausgeklammert sind, aber im Nachhinein noch implementiert werden (was allerdings noch nicht eingeplant ist). Mein Problem ist also eher dieser Widerspruch in der Kostenkalkulation und der Amortisationsrechnung. Wahrscheinlich muss ich doch die zusätzlich auftretenden Kosten noch schätzen, um diesen Widerspruch zu beseitigen und das auch, obwohl die zwei Bereiche noch gar nicht eingeplant sind und vielleicht auch gar nicht umgesetzt werden?

    Hoffe es wurde dadurch etwas klarer, was ich eigentlich meinte.

    Liebe Grüße
    Nadine

  6. Stefan Macke sagt:

    Hallo Nadine, warum setzt du denn den Teilbereich des Projekts um? Was ist die Begründung dafür? Warum nutzt ihr kein fertiges Tool oder lasst es extern entwickeln? Leite die Amortisation doch aus deiner Projektbegründung ab. Irgendwann wurde ja mal entschieden, dass du das Teilprojekt selbst umsetzen sollst. Was war der Grund dafür? Diese Frage bringt dich auf die Spur zur Amortisation.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax