Schmaga beim nationalen Imagine Cup Finale und dem Community Open Day

Diese Woche ist es wieder soweit. Es findet das nationale Finale des Microsoft Imagine Cup statt, einem Technologiewettbewerb für Studenten. In unterschiedlichen Kategorien (dieses mal Games, Innovation und World Citizenship) treten dort die jeweils besten drei Teams der Kategorien aus Deutschland gegeneinander an. Eine Vorauswahl passierte bereits in diversen regionalen Finalen. Den erstplatzierten der Kategorien winkt neben Sachpreisen eine Teilnahme beim internationalen Finale in Seattle. Und dadurch vielleicht noch viel mehr Ruhm und Ehre; Denn durch die hohe Sichtbarkeit dort könnten durchaus Investoren, Unterstützer und andere Interessierte auf die Teams aufmerksam werden. Ich bin mit dem Imagine Cup auch durchaus emotional verbunden, da wir in 2009 mit einem Team aus Freunden beim nationalen Finale den zweiten Platz gemacht haben. Inklusive Handshake der damaligen Bundesentwicklungsministerin 😉

Dieses mal gibt es aber insofern eine Besonderheit, als dass ich in der Jury sitzen werde 🙂 Und zwar in der Kategorie Games. Ich muss ehrlich zugeben: Ein Platz in einer solchen Jury ist ein Novum für mich, und ich bin ein klein wenig nervös. Wer mich kennt weiß dass ich ein leidenschaftlicher Gamer bin, der schon hunderte Spiele in seinem Leben verschlungen hat. Daher werde ich natürlich versuchen mein bestes zu geben, um ein objektiver und fairer Juror zu sein. Nach einem ersten Blick auf die drei Finalisten-Teams kann ich nur sagen: Es wird absolut spannend.

Die Siegerehrung geschieht dann kommenden Freitag bei der Eröffnung des Microsoft Community Open Day (COD), an dem ich in meiner Rolle als Leiter der .NET Usergroup Essen auch teilnehmen werde. Beim COD werden diverse Usergroup Leiter, Most valuable Professionals und andere Personen aus der Microsoft Community zusammenkommen, um zu diskutieren, spannende Vorträge zu schauen, und zu netzwerken. Ich bin schon sehr gespannt und freue mich auf viele bekannte und neue Gesichter.

Über gute Entwickler…

Im November habe ich auf den Clean Code Days in München einen Vortrag darüber gehalten, wie unzufrieden ich mit vielen Entwicklern in Deutschland bin, mit denen ich während meiner bisherigen Laufbahn Kontakt hatte oder zusammengearbeitet habe. Das war allerdings ein ziemlich pessimistischer Blick auf die Welt. Daher drehe ich den Blickwinkel heute mal um und möchte beschreiben was es bedeutet ein guter Entwickler zu sein bzw. was man meiner Ansicht nach benötigt um einer werden zu können.

Durch befreundete Entwickler, mein wachsendes Netzwerk, und vor allem meine Arbeit in der Microsoft Community bin ich in letzter Zeit mit vielen Entwicklern zusammengetroffen, die ich als überdurchschnittlich engagiert und talentiert wahrnehme. Natürlich stellt man sich dann an dieser Stelle oft die Frage, wie man sich selbst zwischen all diesen Entwicklern einzuordnen hat.
Um genau diese Einordnung für mich vornehmen zu können, habe habe ich in letzter Zeit sehr viel darüber nachgedacht, was die ordentlichen Entwickler von den Guten, und die Guten von den absoluten Ausnahmetalenten unterscheidet.

Es gibt einige Fähigkeiten/Eigenschaften, die ich in diesem Kontext als essentiell wahrnehme, und die bei diesen drei Entwicklertypen besonders ausgeprägt sind. Das wären z.B.:

  • Eine schnelle Auffassungsgabe. Je besser ein Entwickler ist, desto schneller kann er sich meiner Meinung nach in neue Themen und Technologien einarbeiten. Das trifft genauso auf fachliche Inhalte zu.
  • Die Fähigkeit zur Abstraktion von Details, als auch die Konzentration auf Details. Und vor allem dazwischen gut umschalten können.
  • Ein breites technisches Grundwissen. Gute Entwickler schauen über den Horizont. Lernen gerne neue Technologien, beherrschen möglicherweise mehrere Plattformen und Sprachen. Sie kennen sich mit Netzwerken und Protokollen aus, beschäftigen sich vielleicht sogar mit hardwarenahen Dingen.
  • Gute Allgemeinbildung und Interessen, die über ihr eigenes Fach hinausgehen. Viele der guten Entwickler die ich kennenlernen durfte haben breit gefächerte Interessen. Manche sind aktive und engagierte Musiker, wiederum andere arbeiten an gemeinnützigen Projekten mit, sind sportlich sehr aktiv, etc. Sie beschäftigen sich mit dem aktuellen Weltgeschehen, sind politisch informiert, und man kann sie durchaus als aktive Bürger des Landes ansehen.
  • Sie brennen für Ihren Job, sind dort überdurchschnittlich engagiert und arbeiten viel. Vor allem unter den Freelance-Entwicklern in meinem Bekanntenkreis macht keiner eine 40-Stunden Woche… fast alle arbeiten weitaus mehr, nehmen Ihre Arbeit aber nicht als Belastung wahr, sondern lieben sie. Mit Genuss werden hier Blog-Posts, Videos und sonstige Inhalte zu Softwareentwicklung und darüber hinaus verschlungen, ausprobiert, kommentiert und vielleicht sogar in eigenen Posts weiterverarbeitet. Spontane Coding-Sessions mitten in der Nacht nach einem coolen Einfall sind in dieser Gruppe keine Besonderheit. Genauso wie durchgehackte Wochenenden.

Mein Eindruck dieser ganzen Eigenschaften ist, dass sie sich vermutlich gegenseitig bedingen. Wer Spaß an seinem Job hat und auch noch entsprechend mit Anerkennung versehen wird (was bei den meisten Softwareentwicklern der Fall sein könnte, mindestens finanziell) wird vermutlich generell mehr Zeit und Leidenschaft in seinen Job stecken. Vermutlich wird eine solchermaßen engagierte Persönlichkeit egal in welchem Fach herausstechen (sei es nun Softwareentwicklung oder beispielsweise Jura). Zumindest macht dieser Gedankengang für mich Sinn. Aber darüber hinaus kommt bei vielen Entwicklern noch diese beschriebene tiefere intrinsische Motivation hinzu. Dies ist ein Antrieb den ich bei vielen anderen Personen aus meinem Bekanntenkreis nicht finde, die in anderen Berufen und Branchen unterwegs sind. Aber das mag daran liegen, dass ich natürlich in Beruf und Alltag zwangsweise primär mit Softwareentwicklern zu tun habe und dadurch einen gewissen Tunnelblick erleide.

Möchte man alles was ich hier so erzählt habe kurz zusammenfassen, läuft es eigentlich auf drei Dinge hinaus: Einen wachen und offenen Geist, der Interesse an neuem hat. Ein regelmäßiger Blick über den Tellerrand und zuletzt eine starke Identifikation mit der eigenen Tätigkeit die weit über den eher verbreiteten Lohn-und-Brot Ansatz hinaus geht. Lässt man das mal kurz sacken bemerkt man: Fast nix davon hat primär mit hartem technischen Wissen zu tun. Alles mehr oder weniger Soft Skills… Verwundert das wen? Mich ehrlich gesagt nicht.

Sollte diese Erkenntnis fernab meiner persönlichen Meinung auch tatsächlich etwas Wahrheit enthalten, so müsste man daraus vielleicht ableiten, sowohl in der Ausbildung als auch später bei der Einstellung von Mitarbeitern und im Alltag viel mehr darauf zu achten, diese weichen Kriterien zu prüfen und zu vermitteln. Vielleicht sollte es auch schon vor dem Studium eine weitaus bessere Eignungsfeststellung geben. Das würde vermutlich auch die in Informatikstudiengängen immer noch drastische Abbrecher- und Durchfallquote verringern. Ich kann nur allen angehenden und schon berufstätigen Entwicklern empfehlen, sich viel stärker mit solchen Themen auseinanderzusetzen. Es gab auch bei mir einen Punkt während meines Studiums ab dem ist mir dieser Aspekt erst klar geworden. Danach war es ein langsamer und mühsamer Prozess stetigen Lernens. Aber es lohnt sich!

Die Clean Code Initiative ist da ein sehr guter Startpunkt, über die man an die entsprechenden Bücher, Quellen und auch Übungen verwiesen wird. Zumindest das „Clean Code“ Buch von Robert C. Martin und der Nachfolger „The Clean Coder“ sind ein guter Einstieg zur Selbstreflektion. Hoffentlich führen Sie Euch in die richtige Richtung. Viel Spaß beim Lernen!

Schmaga im Wunderland – Rezertifizierung des MCSD für Web mit der 70-494 Prüfung

Seit einiger Zeit wird von Microsoft ja verlangt, dass man bestimmte Zertifizierungen alle 2 Jahre erneuern muss. Der Microsoft Solution Developer für Web Application ist einer dieser Kandidaten. Ich habe die drei Einzelprüfungen vor einiger Zeit gemacht, und nun stand meine Rezertifizierung an.

Nun gut, Microsoft hatte gerade ein Second Shot Angebot, weswegen ich mich anmeldete und ohne Vorbereitung in die Prüfung ging. Was hatte ich schließlich zu verlieren, und der zweite Versuche wäre ja umsonst? Immerhin setze ich viele der abgefragten Technologien in meinen Projekten fast täglich ein oder habe sie früher oft eingesetzt. Das Wissen muss ja für irgendwas gut sein…

Letztendlich hat es leider nicht gereicht. Ich lag sehr knapp (vermutlich eine Frage, den Punkten nach zu urteilen) daneben, und es erschien am Ende das böse „FAIL“ am Bildschirm.

„OK“ sagte ich mir. „Du hast ja auch überhaupt nicht für die Prüfung gelernt“. Dafür ist so ein knappes Ergebnis ja wirklich akzeptabel. Ich muss dazu sagen, dass mir trotzdem einige der Fragen wirklich wirklich komisch vorkamen.

Gestern habe ich meinen zweiten Versuch gewagt. Ich habe in der Zeit dazwischen wirklich die beiden Prüfungsbücher gründlich durchgearbeitet und weitere Themenrecherche betrieben. Es war eine recht intensive Vorbereitung. Es reichte für *Trommelwirbel*………………… eine absolute Punktlandung. Ich habe genau die Punktzahl erreicht die zum Bestehen nötig war. Was zur Hölle? D.h. vermutlich eine Frage mehr richtig gehabt. Und nachdem mir nun die Fragen teilweise vertraut waren und einige neu, fühle ich mich etwas verarscht. In der Retrospektive hätte ich einiger dieser Fragen nichtmal richtig beantworten können, wenn ich die beiden Bücher dabei gehabt hätte. Leider darf ich Aufgrund der Prüfungs-NDA nicht auf Details eingehen, aber teilweise waren die Teile (selbst die vermeintlich richtigen Antworten) gespickt mit Fehlern. Ich habe selten soviele Kommentare geschrieben. Und wenn es darum geht Konfigurationsdatei-Syntax auswendig zu lernen oder Konfigurationsschritte in Reihenfolge zu sortieren… Da muss ich zugeben weigert sich mein Kopf irgendwie dafür Zeit und Energie aufzuwenden. Macht so etwas einen guten Solution Developer aus? Wenn ja, dann will ich keiner sein.

Mein Fazit: Die Bücher durchzuarbeiten ist nur bedingt sinnvoll und hilft nur bei Teilthemen. Entweder man hat die genutzten Komponenten in den Fragen schon öfter eingesetzt, oder halt Pech. Ich habe noch nie so eine schlecht designte Microsoft Prüfung gemacht. Und es ist bestimmt schon meine zehnte die ich bisher machen durfte/musste, je nachdem wie man es sieht. Evtl. sollte Microsoft einen „I am feeling lucky“ Button in die Prüfungen einbauen lassen…

Ein Jahr Selbstständigkeit – Endlich online

Hallo Welt,

ursprünglich hatte ich geplant diese Website spätestens zum 1.5. zu starten. Sozusagen zum einjährigen Geburtstag meiner Selbstständigkeit. Das hat natürlich nicht geklappt (Warum habe ich das überhaupt geplant?), da ich in Projekten eingebunden war. Aber jetzt ist es endlich soweit und diese Seite ist online.

Ich werde versuchen in der nächsten Zeit auch einige technische Blog Einträge zu schreiben, in der Hoffnung dass die Problemlösungen die ich in meinem Entwickleralltag erzeuge auch für andere interessant sein könnten.

Ich freue mich natürlich auch immer über Feedback zur Seite.

Viele Grüße,
Euer Schmaga