Foundations for Professionals .NET Professionals im Profil guide to C# guidgen.de

Blog

Nutze den Augenblick
und teile der Welt mit, was Du zu sagen hast.

Freiberuflicher Wissensvermittler und Technologieberater

Samstag, 3. April 2010, 20:24 Uhr
Permalink | Kommentare (4) | Kommentare als RSSRSS

Am 1. Juni 2010 wird es so weit sein: Ich mache den Schritt in die endgültige und vollständige Selbständigkeit. Ab diesem Tag werde ich auf freiberuflicher Basis als Wissensvermittler und Technologieberater für .NET, Codequalität und agile Methoden arbeiten.

Im Rahmen von .NET habe ich mich dabei auf die Sprache C# und die Architektur von Webanwendungen spezialisiert. Meine Auszeichnung als Microsoft Most Valuable Professional (MVP) für C# am 1. April 2010 wie auch meine zweifache Zertifizierung als Microsoft Certified Professional (MCP), unter anderem für die Entwicklung .NET-basierter Webanwendungen, unterstützen diese Schwerpunkte.

Besonderes Augenmerk richte ich bei der Entwicklung einer Webanwendung auf eine auch in der Zukunft tragfähige Architektur wie auch auf die Erreichung einer sehr guten Wartbarkeit und Evolvierbarkeit des Codes. Zu diesem Zweck lege ich besonderen Wert auf hohe Codequalität, von der Einhaltung etablierter Coderichtlinien über testgetriebene Entwicklung bis hin zu Codeanalyse und -reviews.

Dabei unterstützen mich mein akkurates, präzises und reflektiertes Vorgehen wie auch ausgeprägte analytische Fähigkeiten: Ich plane, entwerfe und entwickle mit Liebe zum Detail und achte stets auch auf Feinheiten. Als bekennender Clean Code Developer trete ich zudem für Professionalität in der Softwareentwicklung ein.

Meine Arbeitsweise richtet sich dabei nach den agilen Werten, die durch das Agile Manifest definiert werden, zu dessen Unterzeichnern ich gehöre. Inbesondere schätze ich Extreme Programming (XP) und Scrum als einander ergänzende agile Methoden zur Durchführung von Projekten.

Zu all diesen Themen vermittle ich Wissen und berate Firmen, die auf Basis von .NET Softwareentwicklung durchführen, bei der Evaluierung, Erforschung und Verwendung geeigneter Technologien und Methoden, wobei mir meine langjährige Erfahrung als Softwarearchitekt und Technologieberater wie auch als Autor, Referent und Trainer zu Gute kommt.

Darüber hinaus werde ich auch zukünftig journalistisch für Fachzeitschriften wie auch als Referent und Content Manager für Konferenzen tätig sein. .NET-affinen Usergroups stehe ich als INETA-registrierter Referent ebenfalls zur Verfügung. Weiterhin werde ich außerdem Webcasts für die deutschsprachige MSDN erstellen.

Wenn Sie meine Unterstützung bezüglich Beratung oder Training zu den Themen .NET, Codequalität und agilen Methoden anfordern möchten, können Sie mich gerne jederzeit per E-Mail oder telefonisch kontaktieren. Ich freue mich auf Ihre Anfrage!

Accuracy

Mittwoch, 26. August 2009, 19:11 Uhr
Permalink | Kommentare (1) | Kommentare als RSSRSS

Vor zwei Wochen habe ich begonnen, mich ausführlich mit Extreme Programming zu beschäftigen, nicht zuletzt deshalb, weil diese Methodik – zumindest in weiten Teilen –meine persönliche Vorgehensweise widerspiegelt.

Als essenziell wird im Extreme Programming die Einhaltung von Programmierstandards angesehen, da diese als Rahmen für die gemeinsame Verantwortlichkeit aller Entwickler für den geschriebenen Code fungieren.

In einer Diskussion mit Peter Bucher zu diesem Thema kamen wir zu dem Schluss, dass es für uns beide nur schwer vorstellbar ist, nach gänzlich anderen als den von uns eingehaltenen Programmierstandards zu entwickeln. Aus dieser Feststellung resultierte schließlich die Frage, warum uns Standards und deren Einhaltung eigentlich so wichtig sind.

Ich für meinen Teil möchte folgende Antwort auf diese Frage geben: Im Mai 2009 hatten Peter und ich das Thema Woran erkennt man einen guten Entwickler? für unser Streitgespräch ausgewählt. Als wesentlich habe ich damals zwei Eigenschaften genannt:

  • Smart: Zum einen muss er “smart” sein. Joel Spolsky meint damit, dass ein guter Entwickler kreativ, aufgeschlossen und neugierig sein muss, dass er zudem bereit sein muss, ungewöhnliche Wege zu gehen, und dabei gleichzeitig in der Lage, gegebenenfalls um eine Ecke mehr zu denken als ein durchschnittlicher Entwickler.
  • Gets Things Done: Zum anderen muss er seine Aufgaben allerdings auch erledigt bekommen – und zwar in der vorgegebenen Zeit. Denn all die zuvor genannten positiven Eigenschaften nützen nichts, wenn es einem Entwickler nicht gelingt, auf den Punkt zu kommen und seine Aufgaben zeitgemäß abzuschließen.

Beide Forderungen gehen dabei auf Joel Spolsky und sein Buch Smarts and Gets Things Done zurück. Ralf Westphal hat meinem damaligen Blogeintrag kommentiert und strengere Kriterien gefordert:

Auch wenn ich Joels Kriterien "smart" und "gets things done" gut finde, so sehe ich nicht, dass er damit einen guten Entwickler charakterisiert. Sie sind für ihn nötige, aber keine hinreichenden Beschreibungen. Er benutzt sie ja auch vor allem in Bezug auf die Bewerberauswahl. Da hilt es nämlich, nicht nach dem perfekten Kandidaten zu suchen, sondern sich schon mit einem smarten, der seine Aufgaben auch erledigt, zufrieden zu geben.
Das ist aber nur der Anfang! Denn wenn einer nur smart und verlässlich ist, dann ist er noch lange nicht produktiv. Er muss womögl erst noch lernen, seine Smartness und Verlässlichkeit mit den relevanten Werkzeugen und Materialien einzusetzen.

Ich muss zugeben, dass Ralf damit vollkommen recht hat: Angesprochen und explizit charakterisiert wird dadurch nämlich nur auf die äußere Form der Arbeit – die innere hingegen bleibt verschwommen.

Deshalb möchte ich heute nachlegen und bei dieser Gelegenheit auch direkt die Frage beantworten, warum Peter und mir Standards und deren Einhaltung so wichtig sind.

In dem Computerspiel Quake III Arena gab es einige Auszeichnungen, die man als Spieler erreichen konnte. Eine davon war Accuracy, die für eine Trefferquote von über 50% verliehen wurde. Laut dict.cc bedeutet dieses Wort außer Treffsicherheit und Treffgenauigkeit auch Exaktheit und Sorgfalt.

Und genau damit bezeichnet Accuracy eine aus meiner Sicht ausgesprochen wichtige Anforderung an einen Entwickler: Die Liebe für Details, und die Fähigkeit, auch auf jeden Punkt und jedes Komma zu achten – und nicht nur oberflächlich mal eben schnell über Code hinweg zu gehen.

Interessanterweise verfügen alle Entwickler, die ich kenne und deren Arbeit ich schätze, über diese Eigenschaft – sich nicht mit dem Erstbesten zufrieden zu geben, sondern nachzuhaken und genau hinzusehen. Das merkt man dann nicht nur an der Art, wie Code geschrieben wird, sondern beispielsweise auch daran, wie Code gedebuggt wird.

Für diese Entwickler sind Programmierstandards dann nämlich kein lästiges Hindernis, das es einzuhalten gilt, sondern ein hilfreiches Rahmenwerk für die äußere Form, das es ermöglicht, sich auf das Wesentliche zu konzentrieren.

Aus diesem Grund erachten auch Peter und ich Programmierstandards als dermaßen wichtig: Sie erfüllen eben nicht nur die im Extreme Programming verfolgte Intention, gemeinsame Verantwortlichkeit zu etablieren, sondern ermöglichen uns auch, den Code des anderen schneller zu verstehen und uns gegenseitig zu helfen.

Die spannende Frage ist: Lässt sich diese Liebe zum Detail erlernen, oder ist sie – zumindest zu einem gewissen Grad – angeboren?

Weihnachtsgewinnspiel: IT, quo vadis?

Mittwoch, 19. November 2008, 20:41 Uhr
Permalink | Kommentare (1) | Kommentare als RSSRSS

Noch hat sich das Jahr 2008 nicht endgültig seinem Ende entgegen geneigt, doch die Tage werden zunehmend kürzer und kälter, und der Winter bricht auf absehbare Zeit über uns herein. Der Unwirtlichkeit dieser Jahreszeit zum Trotz bietet es sich an, es sich zu Hause mit Lebkuchen und Glühwein vor dem Kamin gemütlich zu machen, und die rasanten Fortschritte der vergangenen Monate in der Softwareentwicklung zu überdenken.

Das Jahr 2008 hat uns von diesen Fortschritten ausgesprochen viele gebracht, nicht zuletzt auf der PDC 2008 in Form von Windows Azure. Doch nicht nur die Server-, auch die Clienttechnologien haben riesengroße Sprünge gemacht: Von Silverlight als Webtechnologie bis hin zu Surface als neuartiges und hochflexibles Eingabemedium reicht dabei die Spannbreite.

Dass all diese Technologien die zukünftige Entwicklung von Software maßgeblich beeinflussen werden, steht außer Frage. Eine wichtige Frage, die jeder Entwickler individuell für sich beantworten muss, ist die Frage, welche dieser Technologien einen näheren Blick Wert sind: Welche dieser Technologien sind relevant für die eigene, persönliche Zukunft? Denn die Zeit, in der man .NET als Ganzes überblicken und beherrschen konnte, ist spätestens mit .NET 4.0 endgültig vorbei.

Die meiner Meinung nach spannendste Frage, die man im Hinblick auf all diese Technologien stellen kann, ist jedoch eine andere als die bislang genannten. Die für mich spannendste Frage lautet:

Welche Lösungen werden wir Menschen zukünftig auf Basis von Technologien wie Windows Azure, .NET 4.0 und Surface finden können, um die Welt ein bisschen besser zu machen?

Diese Frage möchte ich als Basis für mein diesjähriges Weihnachtsgewinnspiel auf Des Eisbären Blog wählen.

Alle Leser, die mir bis zum 24. Dezember 2008 um 18 Uhr eine E-Mail mit potenziellen Antworten auf diese Frage an webmaster@goloroden.de schicken, nehmen an dem Gewinnspiel teil. Bewertet werden so wohl Kreativität wie auch Umsetzbarkeit der Ideen.

Unter allen Teilnehmern werden folgende Preise verlost, die von Microsoft Deutschland und der Redaktion der dotnetpro zur Verfügung gestellt wurden:

  • 1x Microsoft Flight Simulator X Professional
  • 1x Microsoft Windows Live OneCare
  • 10x jeweils eine Ausgabe der dotnetpro

Ich wünsche allen Lesern viel Fantasie und Erfolg!

Designwechsel

Freitag, 22. August 2008, 23:12 Uhr
Permalink | Kommentare (3) | Kommentare als RSSRSS

Heute, am 22. August 2008, ist es so weit: Meine persönliche Webseite, goloroden.de, und mein Blog, Des Eisbären Blog, haben ein neues Design erhalten. Auch das technische Innenleben der beiden Webseiten wurde vollständig ausgetauscht, denn der zu Grunde liegende XHTML- und CSS-Code sind erstmals weitestgehend sauber getrennt.

Doch auch inhaltlich gibt es einige Änderungen. Die schwerwiegendste Änderung ist vermutlich, dass die englische Sprachversion der beiden Webseiten entfallen ist und dass mein Blog in diesem Zusammenhang zukünftig in deutscher Sprache geführt wird. Thematisch wird sich das Blog allerdings nach wie vor mit der Entwicklung von Software in C# und .NET wie auch der dazugehörigen Software wie beispielsweise Windows Server und SQL Server beschäftigen.

Generell beabsichtige ich, wieder vermehrt ausführliche Artikel zu schreiben, was sich zwar in einer verminderten Häufigkeit, dafür aber auch in einer erhöhten Qualität widerspiegeln dürfte.

Mein bisheriges Blog, das ich seit November 2004 geführt habe, wird zukünftig nicht mehr zur Verfügung stehen, da zahlreiche Artikel - insbesondere aus der Anfangszeit meines Blogs - nicht technischer, sondern persönlicher Natur waren. Einige herausragende Artikel werde ich allerdings in den nächsten Monaten überarbeiten und übersetzen und als zweite Version wieder zur Verfügung stellen.

In diesem Sinne - auf geht's!