Software Entwicklung

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.

Themengebiet

Meine Stärke ist die Entwicklung von Lösungen auf der .NET Plattform von Microsoft. Ich bin aber auch andere Betriebssysteme gewohnt - so arbeite ich z.B. auf einem MacBook Pro. Meine Windows-Systeme sind sind auf dem MacBook virtualisiert.

Innerhalb der .NET Plattform kenne ich die Haupt-Technologien und kann für den Desktop, fürs Internet oder für Enterprise Umgebungen Lösungen evaluieren und bauen. Langjährige Erfahrung habe ich in der Entwicklung von Windows CE. Ursprünglich bin ich aber ein Web-Entwickler.

Entwicklung

Es sollte in unserer Branche sehr viel mehr Wert darauf gelegt werden, wartbaren Code zu produzieren. Denn 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 Testgetriebener Entwicklung (TDD). Ich kenne die Ideen und Konzepte dahinter und beherrsche die nötigen Tools dafür. Dazu gehört natürlich automatische Testausführung beim Commit 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.

Toolset

Ich möchte darauf verzichten, hier eine lange Liste von 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 etwa 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 Tool-Unterstützung dazu ist in der Regel schnell erlernt. Damit ist auch schon gesagt, dass ich nicht den Wert von Tools nicht geringschätzen will. Viel wichtiger ist jedoch, die richtigen, passenden Konzepte auf ein Problem anzuwenden und sich zur Umsetzung die richtigen Tools dazu zu suchen und zu erlernen.

Kontakt

affolter.NET GmbH
Kirchbergstrasse 11b
3421 Lyssach

martinaffolter.net

+41 32 510 82 70

+41 79 506 68 51