Donnerstag, 8. März 2007

Neue Sprecher bekommt das Land - Öffentliche Abschlussvorträge des Rhetoriktrainings

Am 2./3. April 2007 findet unser  öffentliches Rhetoriktraining für Softwareprofis statt. Das Besondere an unserem Rhetoriktraining neben seinem Fokus auf Softwareprofis ist nun, dass die Teilnehmer nicht nur während der zwei Tage unter sich viele Übungen durchführen, sondern... dass sie am Ende ihren Abschlussvortrag öffentlich halten. Ihr "Meisterstück" sollen sie vor einem richtigen, großen, unbarmherzigen, nein, wohlwollenden, aber kritischen Publikum abliefern. Denn auch wenn wir ihnen eine ganze Reihe von Tipps und Werkzeugen und Best Practices mit auf den Weg geben können - am Ende ist deren Anwendung in einem echten Vortrag immer noch etwas anderes. Damit aber auch das unter "kontrollierten Bedingungen" passiert, bieten wir den Teilnehmern für ihre Abschlussvorträge ein großen Forum, zu dem auch Sie herzlich eingeladen sind.

Wir würden uns freuen, wenn Sie am 3. April um 18h den Weg zu uns in den Technologiepark Karlsruhe finden würden. Zusammen mit unserem lokalen Kooperationspartner andrena objects bieten wir Ihnen einen thematisch vielfältigen Abend mit 7 technischen Vorträgen rund um die Softwareentwicklung. Von Multithreading über Eclipse bis zu SOA ist alles dabei.

Wir würden uns freuen, wenn Sie dabei wären, um die Teilnehmer des Rhetoriktrainings anzufeuern und sich von ihren frisch entwickelten Sprecherkompetenzen beeindrucken zu lassen.

Melden Sie sich am besten direkt auf der Seite des ObjektForums von andrena objects an:

http://www.andrena.de/ObjektForum/Veranstaltungen/72.html

Dort finden Sie auch die Vortragsthemen und eine Wegbeschreibung. Die Veranstaltung ist kostenlos - aber bringt den Absolventen des Rhetoriktrainings und ihnen hoffentlich gleichermaßen viel.

Renate Klein, meine Ko-Trainerin, und ich freuen uns auf Sie!

-Ralf Westphal

Sonntag, 4. März 2007

Untugenden der Softwareentwicklung

Gerade bin ich bei Google über einen interessanten Text gestolpert: Die 7 Untugenden des Informatik-Studenten. Da habe ich geschmunzelt, denn ich war ja auch einmal Informatik-Student.

Auf der anderen Seite aber... Leider hat der Text nichts von seiner Aktualität eingebüßt. In unserer Branche ist ja vieles sehr flüchtig, aber manches hat auch Bestand. Und so erkenne ich einige der beschriebenen Untugenden auch bei den professionellen Softwareentwicklern wieder.

Vernachlässigung der Theorie

Professionelle Softwareentwickler interessieren sich selten für theoretische Aspekte der Softwareentwicklung.  Komplexitätsabschätzungen von Algorithmen, Graphentheorie, Endliche Automaten... das alles und mehr halten viele für irrelevant. Sie sehen keinen praktischen Nutzen in solchen theoretischen Konzepten. Brauchbar ist, was Microsoft in eine Technologie gegossen hat. C#/VB lernen, .NET Framework Klassenbibliothek lernen, SQL Server/Oracle lernen. Was braucht man mehr fürs Tagesgeschäft? Das höchste der theoretischen Gefühle scheinen heute Datenbanknormalisierung und Entwurfsmuster zu sein.

Vernachlässigung des Handwerks

Was gehört zum Handwerk eines Softwareentwicklers? Das Programmieren, klar. Softwareentwickler sollen vor allem Code schreiben, um Probleme zu lösen. Aber so wie es aussieht, ist die Fähigkeit dazu doch nicht so weit verbreitet, wie sie sein sollte. Liegt das daran, dass solche Berichte sich auf ferne Länder beziehen? Leider nein, denn während der Assessments, die das Professional Developer College zur Unterstützung von Personalentscheidungen in Softwarefirmen durchführt, sind wir ähnlich überrascht worden.

Aber es geht nicht nur darum, dass viele Stellenbewerber selbst einfachste Programmierprobleme nur unter Mühen lösen können. Zum Handwerkszeug gehört es eben nicht nur, Code zu schreiben, sondern diese Tätigkeit als Teil eines Prozesses zu sehen. Softwareentwickler sollten nicht nur Techologieexperten sein, sondern auch Code grundsätzlich modellieren und systematisch testen können. Da aber hapert es.

Modellierungsaufgaben bereiten immer wieder großes Unbehagen und führen nicht zielstrebig zu einem Ergebnis. Über systematisches und automatisches Testen wird lange debattiert und am Ende bleibt der kursorische manuelle Test. Die Planung der Codierung und die Überprüfung des Codes als grundlegendes Handwerkszeug sind im Bewusstsein vieler Entwickler einfach nicht verankert.

Zu späte Spezialisierung

Während der Text eine zu frühe Spezialisierung beklagt, sehe ich das Problem im Gegenteil. Entwickler spezialisieren sich zu spät oder gar nicht, sondern verharren in einem Anspruch von Generalistentum, den sie selbst nicht einlösen können. Das verhindert den systematischen Erwerb von Tiefenwissen und lässt daher die Qualität der Produkte sinken, weil technologische Optionen nicht oder nur suboptimal ausgenutzt werden.

Der Employability ist dieses Denken auch nicht zuträglich, den der Wert am Arbeitsmarkt wird sich zukünftig mehr danach richten, wie gut einer in 1-2 Spezialgebieten ist. Bewerbungen, in denen von Smalltalk über Java bis C# alles drin ist, verlieren an Wert. Mehr als eine Entwicklungsplattform wie .NET wirklich (!) zu beherrschen, halte ich für schlicht unmöglich. Und innerhalb von .NET wirklich (!) gut in mehr als 2-3 Spezialgebieten zu sein, ebenfalls.

Wer diese Spezialgebiete für sich aber nicht bewusst findet und seine Fortbildung darauf fokussiert, der verliert den Anschluss.

Vernachlässigung der Soft Skills

Softwareentwicklung ist mehr als einsames Codieren. Software entsteht immer mehr im Dialog: im Dialog mit Kollegen, mit Beratern, mit Kunden, mit Peers.

Im Dialog zu bleiben und ihn zu nutzen, erfordert jedoch andere Fähigkeiten, als die fachliche Problemlösung. Neben den üblichen Hard Skills sind dafür Soft Skills nötig. Die aber erwerben Softwareentwickler nicht in der Ausbildung und auch nicht systematisch am Arbeitsplatz.

Die Qualität der Produkte wird daher durch Friktionen in den sozialen Systemen beschränkt.

Fazit

Das mag alles bitter klingen. Und, ja, das Schmunzeln ist mir schon ein Stück vergangen. Aber es geht ja nicht um eine Schuldzuschreibung und Verdammung, sondern nur um die Schilderung eines Eindrucks, dessen ich mich nicht erwehren kann.

Die Gründe dafür, dass es so ist, liegen ja auch nicht vollständig bei den Entwicklern. Die Ausbildung, die Heterogenität der Hintergründe, der hohe Projektdruck, erfolgsgetriebene Chefs... es kommt viel zusammen.

Aber nur weil es so ist, muss es ja nicht so bleiben.  An all diesen "Fronten" bemühen wir uns beim Professional Developer College zu helfen.

Die Grundausbildung zum .NET Softwareentwickler, die wir gerade erarbeiten, wird auch Theorie und "erweitertes" Handwerkszeug vermitteln. Und unsere Soft-Skill-Seminare, bei denen wir mit dem Rhetoriktraining einen Anfang gemacht haben, nehmen sich der "weicheren" Aspekte der Programmierung an.

Wir hoffen, wir können mithelfen, etwas zu bewegen...