Muss das Abschlussprojekt erfolgreich und lauffähig sein?

Viele Prüflinge stellen mir die Frage, ob das Programm, das sie im Rahmen des Abschlussprojekts erstellen, lauffähig sein muss. Sie meinen, dass ein Projekt nur dann erfolgreich ist, wenn das erstellte Programm auch vernünftig funktioniert.

Das stimmt natürlich auch – in der Praxis. Aber beim Abschlussprojekt geht es nicht primär darum, lauffähige Software zu produzieren. Die Antwort auf die Frage ist also: Nein, das Programm muss nicht lauffähig sein. Ebenso wenig muss das Projekt erfolgreich sein. Allerdings sollte man es gut begründen können, wenn das Programm tatsächlich nicht läuft oder das Projekt scheitert.

Text der Berufsverordnung

Hier ist der entsprechende Ausschnitt aus der Verordnung über die Berufsausbildung im Bereich der Informations- und Telekommunikationstechnik, §15 Abs. 2:

Durch die Projektarbeit und deren Dokumentation soll der Prüfling belegen, daß er Arbeitsabläufe und Teilaufgaben zielorientiert unter Beachtung wirtschaftlicher, technischer, organisatorischer und zeitlicher Vorgaben selbständig planen und kundengerecht umsetzen sowie Dokumentationen kundengerecht anfertigen, zusammenstellen und modifizieren kann.

Dort steht nichts von lauffähiger Software. Vielmehr geht es um die Projektplanung und -durchführung. Und natürlich um die Dokumentation. Man könnte für das Abschlussprojekt das agile Manifest also einfach umdrehen 😉

Comprehensive documentation over working software

Aber Spaß beiseite. Insbesondere unter Berücksichtigung der Alternative zur Programmierung einer Anwendung, der Erstellung eines Pflichtenhefts, die genauso als Abschlussprojekt zugelassen ist, wird deutlich, dass nicht ein Programm bewertet wird, sondern die Projektdokumentation. Ihr könnt euer gesamtes Projekt umsetzen, ohne auch nur eine Zeile Code zu produzieren:

Entwickeln eines Pflichtenheftes, einschließlich Analyse kundenspezifischer Anforderungen, Schnittstellenbetrachtung und Planung der Einführung

Und die Prüfer bekommen von euch ja auch ausschließlich die Dokumentation geliefert. Oder müsst ihr auch euren Quelltext mit abgeben? Wohl kaum.

Ok, ich habe schon von Ausschüssen gehört, die sich vor der mündlichen Prüfung tatsächlich den Quelltext zuschicken lassen, aber das ist wohl eher die Ausnahme (wobei ich durchaus auch selbst Interesse am Quelltext einiger Projekte hätte, um zu prüfen, ob wirklich etwas entwickelt wurde).

Meine Empfehlung

Versteht mich nicht falsch: Ich empfehle nicht, dass ihr nicht lauffähige Software produziert oder lediglich ein Pflichtenheft schreibt. Ich bin der Meinung, ein Anwendungsentwickler muss im Abschlussprojekt etwas programmieren. Aber rein theoretisch gibt es die Möglichkeit, mit einer guten Note aus der Prüfung zu gehen, ohne Quelltext geschrieben zu haben.

Ich bin aber auch ganz ehrlich: Ich habe noch keine Projektdokumentation gelesen, die nicht die Erstellung einer Anwendung zum Inhalt hatte. Das mag natürlich in anderen Ausschüssen anders sein.

Ich sehe das Programmieren als absolute Basisfähigkeit, die jeder Anwendungsentwickler haben muss. Daher finde ich es richtig, ein Projekt umzusetzen, das eine lauffähige Software zum Ergebnis hat.

Erfolgreiche Projekte

Der zweite Teil der Frage geht in Richtung erfolgreicher Projekte. Unabhängig von der Programmierung einer Anwendung kann ja noch so einiges mehr schiefgehen. Und die allseits bekannte Chaos-Studie geht (für 2012) von über 50% nicht erfolgreichen Projekten (komplett gescheitert oder nicht im geplanten Rahmen aus Zeit, Kosten und Anforderungen umgesetzt) aus.

Da wäre es also durchaus realistisch, wenn euer Abschlussprojekt auch scheitert. Und das wäre tatsächlich auch gar nicht so schlimm, wenn ihr es denn vernünftig begründet.

Bei einem gescheiterten Projekt – oder gehen wir vielleicht besser von einem Projekt aus, das nicht vollständig umgesetzt oder teurer wurde – ist eure Aufgabe als Prüfling, zu hinterfragen, warum das Projekt nicht erfolgreich war. Ihr müsst also analysieren, was schief gelaufen ist und warum. Und natürlich ist wichtig, zu zeigen, wie man diese Fehler beim nächsten Projekt verhindern kann.

Alternativ kann es natürlich auch sein, dass euer Projekt zur Aufgabe hat, die Machbarkeit einer bestimmten Anforderung zu zeigen. Und dabei kann es natürlich sein, dass die Machbarkeit nicht gegeben ist. Dann war euer Projekt trotzdem erfolgreich, in dem Sinne, dass die Machbarkeit nun geklärt ist. Auch hier wäre eure Aufgabe wieder, darzulegen, warum das Projekt nicht umsetzbar war.

Auch zu diesem Punkt bin ich nun wieder ehrlich: Ich habe noch keine Dokumentation gelesen, die ein gescheitertes Projekt beschreibt.

Vermutlich wäre es mir als Prüfling auch zu heikel, die Wahrheit zu erzählen. Obwohl theoretisch nichts gegen ein gescheitertes Projekt spricht und man trotzdem (oder gerade deswegen) eine gute Note bekommen kann, würde ich bei so einer wichtigen Arbeit wohl auch auf Nummer sicher gehen, und das Projekt gerade biegen.

Fazit

Das Abschlussprojekt muss nicht erfolgreich sein und auch keine lauffähige Software als Endergebnis aufweisen. Dennoch habe ich in über 5 Jahren Prüfertätigkeit kein einziges Projekt gesehen, das nicht erfolgreich war. Meine Empfehlung geht also ganz klar in diese Richtung: Seht zu, dass euer Projekt erfolgreich ist, und produziert lauffähigen Quelltext. Wenn ihr euch im Vorfeld ein geeignetes Thema für euer Projekt sucht, könnt ihr das mit ziemlicher Sicherheit auch hinbekommen.

Was habt ihr für Erfahrungen gemacht? Ist euer Projekt vielleicht gescheitert? Was hat der Prüfungsausschuss dazu gesagt?

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.

4 comments on “Muss das Abschlussprojekt erfolgreich und lauffähig sein?

  1. Dennoch habe ich in über 5 Jahren Prüfertätigkeit kein einziges Projekt gesehen, das nicht erfolgreich war.

    Wahrscheinlich weil jeder Prüfling eher zu Hause „heimlich“ weitermacht bevor er zugeben muss es verhauen zu haben.

    Jetzt würde man sagen „Ja aber die Timestamps von den Dateien?“ Auch die kann man faken… Wobei Quellcode ja nichtmal unbedingt vorgelegt werden muss.

  2. Stefan Macke sagt:

    Na klar, das ist mir bewusst. Sicherlich werden viele Projekte nicht fertig oder dauern deutlich länger als 70h. Und die Prüflinge werden in diesen Fällen wohl immer etwas „nachhelfen“, um nicht schlecht auszusehen. Ich wollte aber darauf hinweisen, dass es potentiell trotz fehlgeschlagenem Projekt eine gute Note geben kann und man nichts faken muss.

  3. Mohammed sagt:

    Hallo Markus, ich habe bis 26.02.2020 noch Zeit für die Einreichung des Projektantrages bis jetzt habe ich keine Idee was für ein Thema ich umsetze und wie ich das mach mir fehlt leider die Unterstützung.
    Ich habe gefühlt alle deine Dokumentationen gelesen das hat mir sehr geholfen aber ich stehe gerade auf dem Schlauch.
    Kannst du mir ein paar Tipps geben oder was ich machen muss.
    Danke

  4. Stefan Macke sagt:

    Hallo Mohammed, zunächst: ich heiße Stefan! 😉 Zum Projektthema schau mal hier: Themenfindung für das Abschlussprojekt.

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