ascer schrieb:Für viele KI-Module bei mir z.B. - autonomes Fahren - kann ich gar keine Tests schreiben, weil es viel zu komplex ist, die Realität auch nur irgendwie in solchen Tests abzubilden.
Theoretisch möglich, aber praktisch ist es ungleich viel günstiger einen eigenen Simulator zu schreiben und die Module im Zusammenspiel im Simulator zu beobachten und i.d.R. wöchentlich dann auch noch auf den Teststrecken mit echten Autos.
Gleiche Argumentation wie immer: Mein Problem X ist viel kompelxer als alle anderen Probleme Y deshalb kann ich keine Tests schreiben. Ich habe ja nicht gesagt dass es NUR Unit Tests sein sollen. Natürlich braucht es Integrations- und Regressionstest auch mit den von dir genannten Simulatoren. Aber ein unabdinngbarer Grundbaustein ist und bleibt der automatisierte Test in einer dem Produktivcode gleichen Umgebung bez. Programmiersprache, Frameworks. etc.
Ergänzung ()
benneq schrieb:Du vermischst da verdammt viele Sachen...
Ja und nein. Klar es ging ursprünglich um Kommentare sinnvoll oder nicht bzw. Clean Code allgemein. Ich für meinen Teil trenne da nicht so gern zwischen den einzelen Disziplinen weil sie viel zu eng miteinander verstrickt sind. Aber ja, eine differenzierte Diskussion füre ich gerade nicht, das tut mir leid. Aber dafür mag ich das Getippe in einem Forum nicht gern genug.
Ergänzung ()
benneq schrieb:Das alles hat aber auch herzlich wenig mit Software Engineering zu tun. Beim Software Engineering geht's um
Ja auch da hast du recht, ích habe den Begriff Software Engineering vereinfacht dargestellt und die ingenieurshafte Tätigkeit dahinter zu kurz gefasst. Das heißt aber nicht, dass ich nicht weiß was es bedeutet bzw. die Punkte die ich genannt habe fallen sehr wohl unter diesen Begriff. Ich habe auch nie behauptet dass meine Antwort Anspruch auf alleinige Richtigkeit bzw. Vollständigkeit hatte.
Dem Rest den du schreibst sehe ich teilweise so, teilweise anders. Aber wie gesagt, ich finde sowas ist schwer per Tasttatur auszudisktutieren.
Ergänzung ()
PHuV schrieb:Und wenn Du dann der einzige bist im Team, der das macht? Dann ist zwar Dein Code schön und gut, aber der Rest nicht. Das kannst Du nur beeinflußen, wenn die Kollegen alle vernünftig, klug und nett sind (was leider eher nicht so zutrifft) und auf Dich hören, oder es muß von administrativer Ebene angewiesen werden (was meistens funktioniert, weil die Vorgesetzen, im Gegensatz zu Dir, sanktionieren und weisen können).
benneq hat es wirklich gut ausgedrückt.
Gut dass du es ansprichst. Bei meinem jetzigen Arbeitgeber sind wir 6 Entwickler. Als ich dort for 4 Jahren angefangen habe war ich der einzige der das Wort Clean Code etc. überhaupt kannte. Die anderen Entwickler waren weder dumm noch unerfahren, jedoch hatten sie einfach kein know how in dem Thema. Ich habe dann einfach mit meinem Teamleiter geklärt, dass ich jede Woche ein paar Stunden Workshop zu dem Thema halte. Er war zuerst nicht begeistert, ich ließ mich jedoch nicht davon abbringen. Heute arbeiten 5 Entwickler, inklusive meinem Teamleiter, agil nach den CC Methoden, haben ein funktionieredes CI etc.
Ein Entwickler hat das alles nicht so wirklich umsetzen können. Auf eigenen Wunsch ist er jetzt unser Scrum Master und arbeitet eher im Projektmanagement.
Müsste ich auf Dauer mit einem Team arbeiten, dass solche Maßnahmen verweigert, würde ich irgendwann das Unternehmen verlassen und mir was anderes suchen.
Und wie gesagt, ja ich vermische da einiges
Ergänzung ()
benneq schrieb: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.
Und das ist leider Ausrede Nr. 1: Clean Code [andere professionelle Methoden] sind zu teuer/bezahlt der Kunde nicht, dauern zu lang. Sorry aber auch hier: Das ist Blödsinn.
Wenn ich mir ein Haus bauen lasse, möchte ich dann einen Architekten, Bauingenieur, ... der nach den Prinzipien seines Berufes arbeitet und mir eine Konstruktion nach 3 Monaten für 10.000 € anbietet die noch 100 Jahre steht?
Oder lieber nach 2 Wochen was für 1.000 € was schief ist, wackelt und nach 10 Jahren baufällig ist?
Das gleiche Beispiel kannst du auf die Bereiche Chirurgie, Jura oder eben die Softwareentwicklung anwenden.
Ein Kunde zahlt dir das was du möchtetst wenn du professionell auftrittst und deinen Projektplan objektiv argumentieren kannst. Clean Code, Unit Tests und alle anderen Bereiche die nicht direkt den Produktivcode bestimmen sind für eine professionelle Entwicklung unabdingbar.
Ich arbeite seit ca. 2 Jahren nebenberuflich für einen Kunden der auch zuerst skeptisch war bezüglich Kosten und Zeit. Ich konnte ihn aber relativ einfach davon überzeugen, dass es nicht anders geht. Und jeder der es anders anbietet eben m.E. unprofessionell agiert. Die folgen für eine unprofressionelle Schätzung von Kosten und Zeit sollte jedem einleuchten.
Ergänzung ()
benneq schrieb:Im Endeffekt wollte ich aber darauf hinaus: Ob, wann, wie und in welchem Umfang Tests geschrieben werden liegt nicht in der Hand des Software Engineers.
Schade dass du so denkst. Denn es ist nicht so.
Ergänzung ()
new Account() schrieb:Er hat auch nicht gesagt, dass diese nicht in die normale Anwendungsentwicklung einsteigen würden/könnten
Es hat sich halt so gelesen. Nicht jeder Dipl./Master Absolvent möchte KI machen. Ich habe meinen Master in Computer Science ("nur" FH wenn ihr arrogant sein wollte und kann mir nichts besserers Vorstellen als Anwendungsentwicklung. Das ist aber natürlich jetzt sehr subjektiv.
Zuletzt bearbeitet: