Clean Code Developer
Posts 11-18 of 18
- Back
- Next
-
Post visible to registered members
-
Rusi FilipovThe company name is only visible to registered members.Re^6: CCD im Informatikstudium
"Wer die CCD Prinzipien aber einsetzt, der bekommt nicht in 10 Minuten darüber Feedback, sondern in Monaten oder gar Jahren erst. Das (!) ist der Grund, warum man CCD Prinzipien und Praktiken anders lernen muss. Zu deren Einsatz kann kein Compiler oder die Laufzeit unmittelbares Feedback geben, sondern das muss von anderen Menschen kommen."
Mir ging es ähnlich, ich habe einiges über TDD, OO-Entwurfsprinzipien etc. gelesen und verfolgt. Aber richtig begriffen habe ich es durch die Praxis und intensives Pair-Programming mit einigen Arbeitskollegen die den CCD Mindset haben. Wenn ich ab und zu mit einem Kumpel etwas programmiere versuche ich auch zu vermitteln, und ich glaube das wirkt. Von der Hinsicht glaube ich dass es auch etwas bringt jemanden mit CCD zu "infizieren", der sucht dann selbständig weiter.
Vielleicht bringt es etwas die Studenten mit richtig fetten, unsauberen und verwickelten Code zu konfrontieren. Und erstmal analysieren zu lassen, was der Code macht, ohne Doku, ohne Kommentare, und mit reichlich irreführenden Identifiern. Dann sie versuchen lassen den Code zum laufen zu bringen, zu debuggen und die Ursache eines Fehlers herauszufinden. Und dann einen angemessenen einen Fix zu erstellen... das wird ziemlich frustrierend sein glaube ich. Und ja, am Ende sollte jeder der es durchhält eine Kopie von "Working Effectively with Legacy Code" oder "Clean Code" geschenkt kriegen. Finanziert von der IT Industrie, logischerweise.
- 09 Jan 2012, 10:03 pm
-
Ralf Westphal Premium Member Group moderatorThe company name is only visible to registered members.Re^7: CCD im Informatikstudium
Tut mir leid, ich glaube nicht, dass eine Ansteckung mit CCD so einfach ist bei Studenten. Das funktioniert ja auch bei Existenziellerem nicht wie bei der Gesundheit: Zeige den Leuten Raucherlungen und sie hören auf mit dem Rauchen. Nein, das hat sich als Irrtum herausgestellt.
So einfach ist es aber nicht nur wg der menschlichen Psyche (weil es da attribution bias gibt oder sonstwelche Mechanismen), sondern ganz fundamental aus ökonomischen Gründen:
Im Studium geht es nicht um Ideale, sondern darum, das Studium innerhalb des Budgets gut zu schaffen. Es kostet Geld, es gibt nur eine bestimmte Timebox und es werden nur bestimmte Ergebnisse benotet.
Ein normaler Student schreibt im Sudium keinen Code, bei dem er unter Unwartbarkeit leidet. Alles viel zu kleine Projekte. Er hat also überhaupt keine direkte Motivation für CCD. Er will ja auch nicht fürs Leben lernen, sondern für die nächste Prüfung/den nächsten Schein. (Oder ist die heutige Studentengeneration so anders als die vor 25 Jahren?)
Solange also nicht CCD "scheinrelevant" ist, wird sich nichts wesentlich tun, wenn man Studenten (auch noch freiwillig) CCD aussetzt. Sorry, da bin ich leider sehr pessimistisch. (Wie gesagt, nicht dass da keiner was mitnehmen würde... aber hier geht es nicht um 3 von 100, sondern um 90 von 100.)
- 09 Jan 2012, 11:44 pm
-
Gregor ElkeThe company name is only visible to registered members.Re^8: CCD im Informatikstudium
Ich sehe das genauso wie Ralf, allerdings glaube ich auch nicht dass ein-zwei Semester CCD etwas bringen, denn man lernt für die Prüfung. Sobald der Alltag einen eingeholt hat, wird der Anreiz wieder verschwinden, denn wir wissen alle, wie es sich anfühlt unter Zeitdruck und Managementgängelei etwas fertigstellen zu müssen.
Solange in der Wirtschaft die CCD-Qualitätsstandards unbewust sind, also der Kunde darauf nicht baut, bleibt es imemr ein selbstloser Ideal, von dem man zwar moralisch profitiert, aber selten genug selbst davon was hat.
Die Wirtschaft hat nun eine Menge Modelle und Zertifizierungen zur Prozess- und Managementqualität geschrieben (ISO-900X, CMMI etc.), aber zur inneren Qualität gibt es selten genug explizite, geschweige denn konkrette und klare Anforderungen.
Wie ich meine wird stattdessen verucht von hinten herum dran zu Schrauben, in dem man den Entwicklern Prozess- und Projektvorgaben a la Dokumentation im Überfluss macht, was vielleicht zur Sichtbarkeit beiträgt, oder gar Management und Prozesseinhaltung verbessert, aber selten dort was ändert wo es wirklich weh tut: im Code.
Daher bin ich skeptisch dass die Unis es alleine hinbekommen bessere Programmierer und Entwickler auszubilden, solange sich in der IT bzw Softwareentwicklung nicht die Mentalität gewandelt hat. Es ist ja so, dass wir uns nicht einmal einig sind, was Softwareentwicklung ist. Handwerk, Dienstleitung, Entwicklung, Design, Ingeneurswerk, alles findet man irgendwo, dediziert oder vermischt, oder gar nicht.
Softwareentwicklung hat von allem etwas, je nach Geschäftsmodell mehr oder weniger. Was aber jedes Geschäftsmodell haben sollte ist das Bewusstsein des Expertentums und progressive Kundenorientierung. Wir sind die Entwickler, wir wissen wie es am besten geht, was am besten geht und warum. Daher sind wir verpflichtet dem Kunden zu sagen wie seine Anforderugen am besten umzusetzen sind und welche davon potenzielle Kostengräber sind, sowie welche Qualität ein mindestmaß sein muss. Ich sage auch nciht dem Architekten, wie er die Statik meines Hauses machen soll, dem Klempner nicht, wie meine Rohrer zu verlegen sind, dem Ingeneur nicht, wie die Bremse zu funktionieren hat, etc. Man muss den Kunden beraten und wo nötig führen, das muss einfach sein. Dann klappts auch mit CCD im altag
Gruß
Gregor
- 10 Jan 2012, 09:26 am
-
Post visible to registered members
-
Gregor ElkeThe company name is only visible to registered members.Re^9: CCD im Informatikstudium
D.H.S. schrieb:
Aber dennoch ist der Freiheits-
grad insbesondere an der Universität schon reichlich groß und man kann
sie weidlich nutzen, um sich seinen Interessen gemäß zu bilden (um mal
'spezialisieren' zu vermeiden). Been there, done that.
Ja, das stimmt, aber hier ist auch ein Teil des Problems. Was wird gefordert und erwartet in der Industrie? ich habe noch nirgend CCD gesehen, dafür aber unmengen an Spezialisierungen in Technologien. Wo liegt alsonder anreiz beim Studi? selten genug beim CCD.
Gruß
Gregor
- 10 Jan 2012, 09:35 am
-
Ralf Westphal Premium Member Group moderatorThe company name is only visible to registered members.Re^9: CCD im Informatikstudium
D.H.S. schrieb:
Äh, Einspruch. Ja, es stimmt, das mit der Einführung von Studiengebühren
in der Regel auch die Timebox enger gefasst wurde und es ist auch richtig,
dass bestimmte Ergebnisse gefordert werden. Aber dennoch ist der Freiheits-
grad insbesondere an der Universität schon reichlich groß und man kann
sie weidlich nutzen, um sich seinen Interessen gemäß zu bilden (um mal
'spezialisieren' zu vermeiden). Been there, done that.
Das erwähnte Budget hat nichts mit Studiengebühren zu tun. Auch ohne die muss das Leben als Student bezahlt werden. Dadurch ist die Zeit begrenzt. Ökonomisches Handeln im Sinne einer bestmöglichen Nutzung der Zeit ist angezeigt. Und worauf konzentriert sich da der Student?
Auf das, was den Messkriterien dient. Da CCD-Kompetenz nicht gemessen wird, fällt hier CCD aus dem Raster.
Auf das, was ihm Spaß macht bzw. über das Curriculum hinaus als nützlich erscheint. Auch da steht CCD ganz hinten. Denn erstens ist CCD jenseits des Curriculums schwer zu sehen, weil es in der Industrie ja eben nicht etabliert ist (ein Henne-Ei-Problem also). Und zweitens macht es weniger Spaß, sich auf Aspekte zu konzentrieren, die eine Anwendung nicht äußerlich greifbar voranbringen. Softwareentwicklung macht ja immer dort besonders Spaß, wo es cool ist und man es anderen zeigen kann. "Schau mal, wie performant ich das hingekriegt habe!" oder "Schau mal, wie toll 3D das ist!" Wer hätte je gehört, dass ein Student dem anderen stolz zeigt, "Schau mal, wie ich hier das SRP und LoD beachtet habe. Mein Programm ist jetzt viel evolvierbarer."
Und noch zum unwartbaren Code in der Uni: Ja, den gibt es. Besonders in Forschungsprojekten, also da, wo es länger dauert. Hier wäre womöglich wirklich ein Ansatz auch für die Uni, an CCD interessiert zu sein. Denn Forschungsgelder sind knapp; da sollte man zusehen, dass sie nicht in unwartbaren Code versenkt werden. Umso merkwürdiger, dass die Curricula CCD nicht enthalten und schon gar nicht die CCD-Kompetenz gemessen wird. Nicht mal an dem Code, der da fleißig über Assi-Generationen hinweg produziert wird. Die Uni ist am Ende eben doch wie die Industrie.
- 10 Jan 2012, 11:03 am
-
Post visible to registered members
- Back
- Next
