adesso Schweiz AG
Jede:r Softwareentwickler:in geht Probleme anders an. Diese Unterschiede können dazu führen, dass Entwicklerteams nicht rund arbeiten und es zu Missverständnissen und Fehlern kommt. Clean Code Development bietet ein gemeinsames Verständnis der Softwareentwicklung, das die Zusammenarbeit im Team erleichtert.
Historisch gewachsener Quellcode ist oft schwer lesbar – und noch schwerer zu verstehen. Code-Änderungen sind nur mit hohem Aufwand möglich, neue Features kaum mehr abbildbar. Unsere Clean Development Trainer schulen die Teilnehmenden in der Entwurfsmethode Flow Design und geben wertvolle Tipps für Syntax und Semantik.
Das Fehlen elementarer Unit Tests und Integrationstests ist nicht nur ein großes Risiko, es hemmt auch die Entwickler:innen bei der Arbeit, da sie kein Vertrauen mehr in den Code haben. In unseren Clean Code Schulungen vermitteln wir die wichtigsten Konzepte, Techniken und Technologien rund um automatisiertes Testing.
Clean Code Wissen und Erfahrungen aus der Praxis und aus realen Projekten
Unsere Clean Code Trainer sind ausgebildet von Stefan Lieser, einem der Gründer der Clean Code Development Initiative
Wir stimmen unsere Schulungen individuell auf Ihren Wissenstand und auf Ihre Lernziele ab
Hohe Flexibilität: Wann, wie lange, bei uns, bei Ihnen vor Ort oder remote – Sie bestimmen die Rahmenparameter
Praxiserprobte Toolbox: Flow Design, automatisierte Tests, Mindset, Definition of Done u.v.m.
Über 10 Jahre Clean Code Development als Unternehmensgrundsatz
Wir passen unsere Schulungen individuell auf Ihre Wünsche, Lernziele und Ihren Wissensstand an. Unsere Trainer können Sie in folgenden Disziplinen und Inhalten unterstützen:
Softwarequalität ist nicht gleich Softwarequalität. Wir unterscheiden zwischen innerer und äußerer Qualität, wobei das Augenmerk unserer Clean Code Schulung auf der inneren Qualität liegt - also auf der Qualität des Quellcodes. Adressiert werden die Themen Lesbarkeit, Nachvollziehbarkeit, Testbarkeit und Wandelbarkeit (Evolvierbarkeit).
Die Vorteile eines gemeinsamen Qualitätsbewusstseins:
Die Clean Code Development Initiative gründet auf dem Buch Clean Code von Robert C. Martin. Darauf aufbauend haben die zwei deutschen Entwickler Stefan Lieser und Ralf Westphal 2009 ein normgebendes Wertesystem für Softwareentwickler konzipiert, das neben Lernmodulen auch eine Sammlung von Prinzipien und Praktiken beinhaltet. An oberster Stelle thronen die vier Clean Code Werte:
Flow Design ist eine Technik, um Quellcode sinnvoll zu planen und zu strukturieren - noch bevor er geschrieben wird. Dabei geht es immer um die Frage, wie man von einer Anforderung zum tatsächlichen Code gelangt. Die Technik arbeitet dabei mit hierarchischer Zerlegung der Anforderung auf ihre kleinsten Einheiten: Datenflüsse.
Die Vorteile von Flow Design:
Automatisierte Tests sorgen nicht nur dafür, dass der Quellcode korrekt arbeitet, sie sind auch ein gutes Mittel Anforderungen besser zu verstehen und zu definieren. Und sie sorgen für Vertrauen und Sicherheit bei den Entwickler:innen. Allerdings ist das Schreiben von Tests sowie komplexer Testsuites, bestehend aus System-, Integrations- und Unit Tests, ein Handwerk für sich. Unsere Trainer vermitteln grundlegende Konzepte, Techniken und die nötigen Technologien, wie bspw. SonarCloud, um die Test-Coverage im Back- und Frontend zu steigern und bei Penetrationtests gute Ratings zu erzielen.
Obwohl alle Clean Code Prinzipien ihre Daseinsberechtigung und Wichtigkeit haben, gibt es Prinzipien, die eigentlich immer angewendet werden sollten und damit auch wichtiger Teil unserer Schulungen sind:
Abhängigkeiten im Quellcode können dabei helfen Strukturen zu vereinfachen. Zu viele Abhängigkeiten können jedoch dazu führen, dass Code-Änderungen mit unerwarteten Nebenwirkungen einhergehen und der Code mit der Zeit unübersichtlich wird. In unseren Schulungen geben wir den Teilnehmenden Techniken und Best Practices an die Hand, um Abhängigkeiten effektiv zu managen und wenn nötig aufzulösen.
Pair Programming, Pairing oder auch Tandem-Programmierung beschreibt eine Clean Code Entwicklungsmethode, bei der zwei Entwickler:innen gleichzeitig an einem Problem und am gleichen Code arbeiten. So sinnvoll die Herangehensweise in manchen Fällen ist, so ineffizient kann sie in anderen Fällen werden. Unsere Trainer geben Best Practices, wie und wann die Methode Sinn macht.
Clean Code Development darf nicht zum Selbstzweck verkommen. Beschäftigt man sich mit Quellcode, wird man immer wieder Stellen finden, die man optimieren kann. Aber irgendwann ist das einfach nicht mehr produktiv und steht nicht mehr im Verhältnis zu den Kosten. Die Frage lautet nur: wann?
In unseren Clean Code Schulungen geben wir den Teilnehmenden Tools an die Hand, um zur richtigen Definition of Done zu gelangen – individuell abgestimmt auf das Projekt, die Anforderungen und auf die Unternehmensziele.
Genauso wichtig, wie das Handwerkliche, ist das richtige Mindset. Dabei geht es darum, die Clean Code Werte immer wieder aufrecht zu erhalten und auf sie hinzuweisen. Die Inhalte werden demnach nicht in einer abgeschlossene Session vermittelt, sondern parallel über die gesamte Schulung hinweg. Im Detail geht es um agiles Arbeiten, Effizienz durch Fokus, Reflexion, Verantwortlichkeiten, Erwartungshaltungen und Zusammenarbeit.
Nur durchs Machen, lernt man Clean Code. Deshalb legen wir sehr großen Wert auf einen hohen Praxisanteil in unseren Schulungen. Das sind einerseits kleine Übungsaufgaben, um ein theoretisch besprochenes Thema zu vertiefen. Andererseits sind es gemeinsame Code-Reviews, in denen die Ergebnisse der Übungsaufgaben oder andere Code-Beispiele mit allen Teilnehmenden im Detail besprochen werden.
Code Checks einer bestehenden Applikation sind ein guter Einstieg, um herauszufinden, wo ein Team mit seiner Codebasis steht. Ähnlich wie in einem Code-Review wird der Code dabei durch unsere Trainer sowie den ursprünglichen Entwickler:innen analysiert. Durch solch eine reflexive Herangehensweise lernen die Teilnehmenden viel über sich und ihre Vorgehensweise.
Unsere Clean Code Schulungen richten sich ausschließlich an Menschen mit Programmier-Know-how. Also an Softwareentwickler:innen, an System und Software Architekt:innen oder Software Tester:innen.
Unsere Trainer bieten aber auch Vorträge auf Management-Ebene an, bei denen sie auf die Vorteile von Clean Code Development aus Business-Sicht eingehen. Wie Clean Code zum Unternehmenserfolg beitragen kann, erläutert unser CTO Sebastian Betzin in folgendem On-Demand-Video:
Wie gesagt ist Programmier-Know-how notwendig, um den Kursen folgen zu können. Die Teilnehmenden müssen Programmierbeispiele in C#, Java, Typescript etc. verstehen und die Sprachen auch schreiben können.
Gerade für die praktischen Übungen sollten alle Teilnehmenden einen Computer mit installierter Entwicklungsumgebung, wie beispielsweise VSCode oder VisualStudio, mitbringen.
Das hängt ganz von Ihnen und Ihren Wünschen ab. Wir passen die Länge unserer Clean Code Trainings Ihren Lernzielen an. Das können Ein-Tages-Workshops oder Sessions über mehrere Tage sein.
Auch das ist Ihnen überlassen. Entweder Sie kommen zu uns nach Karlsruhe oder unsere Clean Code Trainer kommen zu Ihnen ins Unternehmen und halten Inhouse-Trainings mit Ihrem Team.
Schreiben Sie uns einfach über das Kontaktformular, dass Sie an einer Clean Code Schulung interessiert sind, und wir melden uns bei Ihnen. Wenn Sie bereits wissen, wann Sie die Schulung gerne machen würden, wie viele Teilnehmenden es sein werden und welche Lernziele Sie verfolgen, tragen Sie diese Informationen einfach in das entsprechende Freitextfeld ein.