Muss ich für mein Abschlussprojekt alles selbst programmieren?

Schon mehrere Prüflinge haben mich gefragt, ob sie den gesamten Code für Ihr Projekt selbst programmieren müssen. Die kurze Antwort: Nein.

Darf man fremde oder sogar eigene Bibliotheken verwenden?

Der Hintergrund der Frage ist, ob man vorhandene Bibliotheken nutzen darf oder alle Funktionen selbst entwickeln muss. Ein klassisches Beispiel wären allgemeine Frameworks wie ORMs, Template-Engines oder Bibliotheken für eine REST-Schnittstelle.

Häufig taucht die Frage aber auch im Zusammenhang mit unternehmensinternen Bibliotheken auf. Darf man z.B. einfach den Code der Kollegen verwenden oder muss man alles neu programmieren?

Konzentriere dich auf die Fachlichkeit!

Die Antwort ist: Nein, du musst nicht alles selbst entwickeln. Du musst lediglich den Teil deines Projekt selbst umsetzen, der das fachliche Problem löst. Es ist nicht sinnvoll und auch gar nicht möglich, in der kurzen Projektzeit den gesamten Infrastruktur-Code selbst zu schreiben.

Das zu fordern wäre auch völlig realitätsfern. Wir sollen uns als Anwendungsentwickler mit der Lösung fachlicher Probleme beschäftigen und nicht das siebenunddreißigste ORM programmieren. Solche verfügbaren Lösungen kannst und sollst du selbstverständlich in deinem Projekt verwenden.

Das Gleiche gilt genauso für interne Bibliotheken. Wenn es in deinem Unternehmen z.B. ein CSS-Framework für das Corporate Design gibt, dann benutzt du es natürlich, anstatt dich stundenlang mit CSS-Gefrickel aufzuhalten. Und die Datenbankabstraktionsschicht deines Unternehmens darfst du ebenfalls verwenden.

Was allerdings nicht geht, ist, deine fachliche Logik von jemand anderem schreiben zu lassen oder dessen Lösung zu übernehmen. Denn ein bisschen musst du ja schon selbst programmieren. Also nimm diesen Artikel bitte nicht zum Anlass, dein Projekt fremdentwickeln zu lassen. Du musst bitte weiterhin dein Gehirn benutzen.

Wo verfügbare Bibliotheken allgemeingültige Probleme lösen, benutzt du sie, um dir Arbeit zu ersparen. Die gesparte Zeit investierst du dann bitte in die bestmögliche Lösung deines fachlichen Problems. Das ist deine Aufgabe als Softwareentwickler/in.

Der wirtschaftliche Aspekt

Hinzu kommt, dass dein Projekt wirtschaftlich sein muss. Und die Entwicklung der x-ten Lösung für bereits gelöste Probleme ist sicherlich nicht wirtschaftlich. Außer du arbeitest für einen ORM-Anbieter 😉

In deiner Projektdokumentation musst du die wirtschaftlichen Vorteile deines Projekts darlegen. Und dazu gehört auch eine Amortisationsrechnung. Die meisten Projekte amortisieren sich durch eingesparte Zeit und/oder Kosten durch die Automatisierung eines betrieblichen Prozesses. Und wenn du nicht gerade ein allgemeines technisches Tool für die Entwicklerkollegen schreibst, das langfristig Entwicklungszeit spart, wird sich die eigene Implementierung nicht rechnen. Eine bereits vorhandene Komponente zu nutzen ist (wahrscheinlich) deutlich sinnvoller.

Quellennachweis nicht vergessen

Wichtig ist, dass du alles, was du an fremdem Code genutzt hast, auch deutlich kennzeichnest. Denn fremde Arbeit als deine eigene auszugeben, geht gar nicht. Und das führt ggfs. zum Nichtbestehen der Prüfung aufgrund eines Täuschungsversuchs.

Das mag sich selbstverständlich anhören, aber ich habe schon mehrere Dokumentationen gelesen, bei denen mir am Ende nicht klar war, ob das abgebildete ERM vom Prüfling selbst erstellt wurde oder es bereits vorhanden war. Das ist natürlich eine schöne Möglichkeit, eine dünne Projektarbeit aufzubauschen. Allerdings geht das direkt nach hinten los, wenn es rauskommt. Also versuche gar nicht erst, den Prüfern fremden Framework-Code als deinen eigenen zu verkaufen.

Fazit

In der Verordnung über die Berufsausbildung im Bereich der Informations- und Telekommunikationstechnik steht explizit, dass es sich beim Abschlussprojekt um ein reales Projekt handeln soll. Und in der Praxis verwenden Softwareentwickler vorhandene Lösungen, um sich das Leben einfacher zu machen und nicht ständig das Rad neu zu erfinden. Und genauso ist es auch im Abschlussprojekt. Der einzige Code, den du schreiben solltest, löst das gestellte fachliche Problem. Kennzeichne die von dir verwendeten fremden Bestandteile sauber und einer erfolgreichen Projektarbeit steht nichts mehr im Weg.


Hast du in deinem Abschlussprojekt Frameworks verwendet? Wenn ja welche waren es? Oder hast du gar selbst ein Framework entwickelt?

Weitere Infos zur Projektdokumentation

Du suchst noch mehr Tipps rund um die Projektdokumentation? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um die Projektdokumentation.

Kennst du schon meine Microsoft Word-/LibreOffice-Vorlage für die Projektdokumentation? Unter dieperfekteprojektdokumentation.de kannst du sie herunterladen.

Und wenn du dich für meinen Newsletter einträgst, kannst du dir jetzt sofort meine Checkliste für die Projektdokumentation herunterladen.

Checkliste für die Projektdokumentation

Jetzt anmelden!

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.

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