Software Entwicklung zu schwer, Erfahrungen?
Hallo zusammen,
ich arbeite seit 5 Jahren in der Software Entwicklung und während dieser Zeit war ich bei 3 verschiedenen Arbeitgebern, aktuell bei einem neuen und das noch in der Probezeit.
Bisher hab ich immer gerne programmiert, im Studium, sogar in meiner Freizeit.
Aber sobald ich auf Arbeit programmiere, komme ich nicht zurecht. Meistens bekomme ich ein Projekt in C# oder MySQL-Migrationen von Vorgängern präsentiert die ich übernehmen soll und mit diesem Programm/Quellcode komm ich überhaupt nicht zurecht, es ist jedes mal dasselbe. Es ist zu viel, unverständlicher und undokumentierter Quellcode. Gerade bei meinem aktuellen Arbeitgeber ist das gang und gebe.
Ich frag mich, ob ich aus diesem Grund das programmieren lieber sein lassen sollte, mittlerweile hasse ich es. Nur weiß ich nicht, was ich sonst machen soll. Ich hab in den letzten 5 Jahren nur programmiert. Ich frag mich nur, ob es hier jemanden aus der Branche auch schon so erging und ob er dafür vielleicht eine Lösung hatte?
9 Antworten
Dann mache deinen Arbeitgeber klar, dass es sich zeitlich enorm lohnt, wenn die Mitarbeiter ihren Quellcode ordentlich dokumentieren.
Das es immer gute Dokumantation braucht ist eine Lüge, ich kenn den Quellcode mit dem du arbeitest nicht aber man kann sich eben nicht darauf verlassen, dass etwas gut dokumentiert ist. Gewöhn dir einen guten Debugging workflow und Code zu verstehen an. Überleg dir was wichtig ist, such einen Einstiegspunkt und arbeite dich von da an weiter vor, Spring in andere Funktionen und überleg dir warum das so gemacht wurde.
Ich habe auch schon alte Projekte übernommen die furchtbar waren und dann war ich halt mal 2 Tage damit beschäftigt n bisschen aufzuräumen. Irgendwelche Magic Numbers durch Konstanten zu tauschen, komplexe Funktionen verstehen und neu implementieren. Kommt vor, damit muss man klar kommen. Ich musste teilweise Operationen die Bitmasken mit dezimalrechnungen berechnet haben refactoren, natürlich ist so was absolut dämlich aber wenn man dann erst mal teils 5 Zeilen durch einen einzelnen Operator ausgetauscht hat wird der Code auch lesbarer und man kann vernünftig arbeiten. Das kann dann auch Spaß machen, aus scheiße Gold zu machen und nebenbei amüsiert man sich über die frühere Inkompetenz eines Kollegen der so was heute vermutlich auf keinen Fall mehr verzapfen würde aber es damals nicht besser konnte.
Gerade wenn man SQL nicht gut kann und dann an komplexen Queries arbeiten muss ist aber tatsächlich nicht leicht. Liegt auch dran weil man als Entwickler eben oft nicht SQL so tief lernt.
Und: viele dieser C# SQL Dinger sind absoluter Standard Kram von Firmen die teils scheinbar selber keine Ahnung haben. Wenn du was suchst was auch Spaß macht dann orientier dich an den Technologien die dir Spaß machen. So was zu finden ist aber nicht leicht. Ja, bei den meisten Firmen ist Softwareentwicklung ein langweiliger Prozess voller Ärgernisse und vermeidbarer Komplikationen.
Du hast recht und ich kenne auch Entwicklerfreunde, die wären an meiner Stelle damit klar gekommen. Ich gebe auch nicht prinzipiell dem Quellcode oder das Projekt die Schuld. Ich kann es mir nicht angewöhnen mich in ein großes Projekt einzuarbeiten, mag es mangelndes Verständnis oder Konzentration sein, das haben die letzten 5 Jahre gezeigt. 50% meiner Projekte hab ich bisher nicht abgeschlossen und das immer zusammen mit Ärger und Selbstzweifel. Irgendwann muss man sich eingestehen, das dieser Bereich nichts für einen ist und sich nach anderen Optionen umsehen, mir würde sonst keine andere Lösung einfallen.
Tja vielleicht bin ich einfach schneller als du ;)
Aber bevor du mich falsch verstehst, ich habe nie behauptet mit 2 Tagen wäre es getan. Aber in der Frage ging es ja auch um Code verstehen, und erst mal den offensichtlichen Mist zu fixen ist eben ein guter Weg da rein zu kommen.
Den Rest zu beheben ist natürlich ein längerer Prozess und sein wir mal ehrlich so eine Situation entsteht nicht weil die Entwickler so viel Zeit haben sich mit dem Code zu beschäftigen. Das fixen muss man eben oft sowieso nebenbei machen, aber am Anfang kann man sich noch Zeit nehmen etwas zu fixen weil man sich ja noch "reinarbeitet". Die Zeit musst du nutzen. Wenn man Zeit bekommt Dinge zu fixen dann sicher keine Monate.
Klingt so als ob du lieber neue Dinge programmieren willst.
Such dir doch irgendein Startup. Da ist man von Anfang an, an den Entwicklungen beteiligt und kann bestimmen in welche Richtung es gehen soll.
Oder geh zu einer Firma die wirklich IT Solutions macht, wo du halt wirklich etwas auf die beine stellen kannst.
Ja, das ist natürlich belastend. Habe dasselbe Problem, meistens will ich mich nur noch lachend in den Dachstuhl hängen, wenn ich so ein uralt Coding von 2003 sehe.
Nie ist irgendetwas dokumentiert. Aber wenn du das präsentiert bekommst, sei doch mal ein bisschen nervig und nutze dein Recht zu fragen ob der Kollege dir nicht etwas mehr dazu sagen kann.
Wie ein Kundengespräch. Frag ihn nach jeder Einzelheit. Und dann mach du es besser. Schreib Dokus, Inline Dokus, technische und Userdokus etc.
Vllt überzeugst du deinen Arveitsgeber auch mal eine Jira/Confluence-Lizenz anzuschaffen, dann macht das Dokumentieren Spaß.
Wenn sich niemand darum kümmern will müssen wir das eben tun. Lasst uns nerven und endlich Schwung in die Sache bringen. Es soll Pflicht sein Code zu dokumentieren und mindestens ein UML Diagram dazu anzufertigen.
Viele programmieren leider nach dem Motto: If it was hard to write, it should also be hard to read :)
Migrationen fremder Software machen keinen Spaß. Das wird sich auch nie ändern. Ich hab mal ein ganzes Paket auf verschiedene Plattformen portiert, das kann schon eine Strafarbeit sein. Das sind Eigenentwicklungen und deren Umsetzung natürlich wesentlich erfrischender. Nur reine Programmierung ist nicht jedermanns Sache. Für mich wäre es nichts gewesen. Also im Zweifelsfall lieber auf andere bereiche der IT verlegen,
Danke für die Hilfreiche Antwort. An was für IT Bereiche hättest du da gedacht? Software-Tester oder Projektleiter? Für ersteres sollten meine Erfahrungen auf jeden Fall genügen, Projektleitung ist glaube ich aber eine anderes Kaliber.
Man kann sich durchaus hocharbeiten. Tester ist ein Anfang, auch dafür gibt es Weiterbildungen. Projektleiter ist auch eine Frage der Projektgröße. Prinzipiell aber auch das. Manchmal werden aber Erfahrungen in Prince oder eine Weiterbildung als Scrum Master verlangt. Auch ITIL Foundation gehört heute dazu (oder auch mehr). Vielleicht liegt dein Erfolg aber auch im Support oder in einer Tätigkeit als Operations Admin, wobei so ein Job an der "Front" auch nichts für jeden ist.
Ich gebe dir in allen Punkten recht, aber... "2 Tage aufräumen"?
Nur?? Das muss ja ein mickriges Popelprojekt gewesen sein... :D
Erfahrungsgemäß sind Projekte, die x Jahre schlecht gewartet wurden, nicht in 2 Tagen aufgeräumt.
Meist sind es gar nicht ein paar blöd versteckte Konstanten oder dumm implementierte Funktionen. Sondern eingefahrenes, unwartbares Design. Das dann zukunftssicher zu machen dauert bei größeren Projekten eher Monate als Tage. Da gibt es mehr Baustellen als nicht...