mistalan schrieb:
Wieso nicht? Wieso sollte ein (Master) Studiengang Software Engineering o.ä. Studienabgänger nicht zu gut versierten Software Ingenieurn ausbilden, die die defacto Standards beherrschen?
mistalan schrieb:
Der einzige der für das Einhalten von Coding Standards verantwortlich ist, bin ich selbst.
Du vermischst da verdammt viele Sachen...
Ja, wenn du Code schreibst, bist du natürlich für deinen Code verantwortlich - außer man macht Pair Programming, dann trägst du nur 50% der Verantwortung. In großen Firmen steckt hinter deinem Commit aber noch eine ganze Reihe weiterer Leute, wie z.B. Code Reviewer. Dann liegt die Verantwortung bei denen, dass der Code die Standards erfüllt bevor er in den master gemerged wird.
Tests schreibt - je nach Typ der Anwendung - auch nicht unbedingt der Software Entwickler, sondern ein dedizierter Tester.
Die Tests führt inzwischen auch meist nicht mehr der Software Entwickler oder Tester aus, sonder das CI System.
Das alles hat aber auch herzlich wenig mit Software Engineering zu tun. Beim Software Engineering geht's um das analysieren und lösen von Problemen - ganz abstrakt. Den Code schreiben die Entwickler. Demnach haben Code Conventions und Tests relativ wenig im Software Engineering Studium zu suchen: Tests tragen nichts zu Lösung der Probleme bei, die die Anwendung lösen soll. Tests tragen zur Lösung der Probleme bei, die der Entwickler nicht bedacht hat.
Genau so wie beim Bau eines Hauses nicht der Architekt und Ingeneur das Haus mauert und das Dach deckt.
In kleinen Software Schmieden ist das natürlich was anderes, da macht oft eine einzelne Person all diese Jobs und ist womöglich gleichzeitig noch Projektmanager.
Und dann gibt's am Ende natürlich immer noch die Punkte Finanzen und Zeitrahmen. Dein Vorgesetzter ist dafür verantwortlich, dass das Projekt im Zeitrahmen bleibt. Das ist - wie in jedem anderen Job auch - eine wirtschaftliche Frage: Es bringt ja nichts, wenn der Code schön einfach verständlich ist, mit 100% Test Coverage, aber das Budget und/oder Zeitlimit derart überzogen wird, dass man am Ende in den finanziellen Ruin stürzt.
Natürlich sollte sowas vor Projektbeginn entsprechend geregelt werden, sodass jeder mit gutem Gewissen Feierabend machen kann. Ohne dass über Nacht der Server abbrennt, weil Budget und Zeit nicht hergegeben haben, dass man alles ausgiebig testet.
Aber wenn's hart auf hart kommt, fügst du dich den Anweisungen von oben, oder du wirst gegangen.
Als Freelancer ist das auch nicht anders. Wenn ich ein festes Zeitbudget bekomme, dann werde ich sicherlich nicht unbezahlt meine Freizeit aufopfern, damit ich ein schönes Kunstwerk abliefern kann - außer es ist Teil des Vertrags. Entweder der Kunde legt noch mal was oben drauf, oder ich muss Abstriche machen. Hängt natürlich auch davon ab, ob der Kunde sich das finanziell und zeitlich leisten kann.[/QUOTE]