Software Entwicklung

Freelancer

Ich arbeite als .NET Freelancer gerne in Ihren Projekten mit! Ich bringe meine eigene Hardware und meine eigenen Lizenzen ein und und integriere mich in Ihr Projektteam. Als guter Kommunikator und anpassungsfähiger Teamplayer bin ich sicher, dass ich auch in Ihrer Umgebung und Projektsituation funktioniere. Vielleicht kann ich sogar mithelfen, neuere Technologien zum Einsatz zu bringen oder neue Entwicklungskonzepte vorzustellen.

 

Technologien

Meine Stärke ist die Entwicklung von Lösungen auf der .NET Plattform von Microsoft. Ich entwickle vor allem im Web-Umfeld - d.h. auf dem Server mit MVC/Web.API (REST) und auf der Client Seite mit HTML5/Javascript. In Single Page Applications verwende ich unter anderem Node, Bower, Grunt/ und Angular.js.

Ziel: Wartbarer Code

Es sollte in unserer Branche sehr viel mehr Wert darauf gelegt werden, wartbaren Code zu produzieren. Jede Software, vor allem im Business Umfeld, läuft über längere Zeit und muss anpassungsfähig sein und bleiben. Ansonsten rechnen sich die hohen Investitionskosten nicht und die Änderungskosten steigen mit den Jahren exponentiell an.

Ich halte daher sehr viel von automatisierten Tests und Executable Specifications. Ich kenne die Ideen und Konzepte dahinter und beherrsche die nötigen Tools dafür. Dazu gehört natürlich die automatische Testausführung beim Pushen von Code und im Rahmen von Nightly Builds.

Der zweite Punkt, der dabei helfen soll, die Software wartbar und änderungsfreundlich zu halten, ist Inversion of Control (IoC) und die Einhaltung von SOLID Prinzipien. Dadurch wird die Architektur modularer und änderungsfreundlicher.

Damit der Code lesbar bleibt und Entwickler sich schnell darin zurecht finden, sollte ein Tool zur automatischen Formatierung und Sortierung eingesetzt werden. Erstens enthalten solche Tools in der Regel Produktivitätsfunktionen, die einen schlicht schneller machen. Zweitens ist es viel einfacher, Softwarestände zu vergleichen, wenn Leerzeilen und -zeichen nicht das diff-Bild stören.

Dass als Grundlage der Entwicklung ein Version Control System (VCS) verwendet werden sollte, bedarf heutzutage keiner Erklärung mehr. Allerdings sind verteilte VCS wie Git oder Mercurial noch nicht so verbreitet, wie sie es sein sollten. Sie bieten deutlich mehr Funktionalität und Flexibilität bei der Planung und Umsetzung von Entwicklungstasks, als dies zentralistisch organisierte VCS tun.

Tools

Ich verzichte darauf, hier eine lange Liste von Techniken, Tools und Kenntnissen zu Fähigkeiten darzustellen (und pflegen zu müssen), wie sie Recruiter in der Regel verlangen. Ich habe festgestellt, dass diese Liste mindestens monatlich abgeändert und angepasst werden müsste und dass sie in der Regel wenig bis nichts über das tatsächliche Mindset des Entwicklers aussagt, der sie veröffentlicht.

Viel wichtiger sind die oben beschriebenen Konzepte zur Schaffung von sauberem, wartbarem Code. Die Technologie ist in der Regel vorgegeben und die Tool-Unterstützung dazu schnell erlernt. Damit ist auch schon gesagt, dass nicht der Wert von Tools oder die saubere Evaluierung und Auswahl der Technologie in Frage gestellt wird. Jedoch sollten zuerst die richtigen, passenden Konzepte im Mittelpunkt stehen. Die besten Tools für die jeweilige Aufgabe zu suchen und zu erlernen, ist Nebensache.