Kostenlose Aufzeichnungen der #msts14 - Jetzt weiterbilden!

Nur kurze Zeit nach der Microsoft Technical Summit 2014 wurden auf Channel 9 wie versprochen die Aufzeichnungen zu den Sessions veröffentlicht. Sowohl die Videos als auch die Präsentationen sind übersichtlich in der Agenda zu der Veranstaltung verlinkt.

Unseren Beitrag zum Microsoft Fakes Isolation Framework gibt es dort ebenfalls zu sehen. Viel Spaß beim Anschauen (wir hatten auf jeden Fall Spaß beim Halten der Session)! 

Microsoft Technical Summit 2014 - Pre-Review und ein Announcement!

Diese Woche findet vom 11.11.2014 bis zum 13.11.2014 in Berlin die Technical Summit 2014 statt. Microsoft hat bekannter Weise die Visual Studio Evolution mit der TechNet Conference zusammengelegt und lädt diese Woche für drei Tage Softwareentwickler und IT Infrastrukturspezialisten gemeinsam ein, von Experten aufregende und z.T. neue Technologien vorgestellt zu bekommen. Die Agenda zeigt dabei nicht nur einen Querschnitt durch alle relevanten Technologien, sondern auch das Who is Who der Speaker-Szene.

Die angebotenen Sessions bewegten sich inhaltlich von Einstiegs-Themen bis hin zu Deep Dives und auch zukunftsorientierten Bereichen wie IoT (Internet of Things) und Application Insights (im Zusammenhang mit Predictive Analytics und den entsprechenden Angeboten via Microsoft Azure).

Uns hat die Konferenz sehr gefallen und wenn wir auch nicht die ganze Zeit da waren, konnten wir den Dienstag immerhin nutzen, um ebenfalls als Speaker dem interessierten Publikum erneut das Microsoft Mocking Framework Fakes näherzubringen. Nachdem wir einige technische Hürden genommen haben (merke: Immer einen Displayport-Adapter dabei haben), konnten wir neben einer kleinen Historie einen umfangreichen Einstieg in Microsoft Fakes liefern inkl. spannender Informationen über Microsoft Pex. Pex hat im Zusammenspiel mit dem Fakes-Vorläufer Moles das Leben eines Softwareentwicklers beim Schreiben von Unit Tests enorm erleichtert. Die Pex Engine ermöglichte es, Codepfade automatisch analysieren zu lassen, um auf der Basis sogar Grundgerüste für sinnvolle Unit-Tests zu generieren. Microsoft sprach bei Pex (Program Exploration) von einem Whitebox Testing Tool. 

Announcement

Durch die Produktifizierung von Moles ist Pex lange Zeit auf der Strecke geblieben. Bis vor kurzem gab es lediglich ein kostenlos erhältliches Addin über die Visual Studio Gallery, das auf die Pex Engine aufsetzt und mit Visual Studio 2013 kompatibel ist. Code Digger - so der Name - stellte einen eingeschränkten Funktionsumfang von Pex zur Verfügung.

Zusammen mit der heutigen Ankündigung von Visual Studio 2015 und der neuen Community Edition (die die Express SKU ersetzt) wurde angekündigt, dass Pex nachzieht! Microsoft spricht an dieser Stelle von Smart Unit Tests und dieses Feature ist großartig!

With Visual Studio 2015 preview, we have introduced Smart Unit Tests. Explore your .NET code to generate test data and a suite of unit tests. For every statement in the code, a test input is generated that will execute that statement. A case analysis is performed for every conditional branch in the code. For example, if statements, assertions, and all operations that can throw exceptions are analyzed. This analysis is used to generate test data for a parameterized unit test for each of your methods, creating unit tests with maximum code coverage. Then you bring your domain knowledge to improve these unit tests.

Details dazu wie das funktioniert, finden sich hier und in den kommenden Tagen auch auf diesem Blog.

Wir gehen jetzt erst einmal feiern!

Update

Vielen Dank an Tao Xie, dem dritten im Bunde hinter Microsoft Pex & Fakes neben Nikolai Tillmann und Jonathan "Peli" de Halleaux, für die Veröffentlichung eines spannenden Dokuments mit Informationen zum Migrationspfad von Pex zu Fakes und Code Digger (Jetzt: Smart Unit Tests). Das kostenlose Dokument gibt es hier zum Download.

Top n NuGet Pakete, die jeder kennen sollte

In diesem Beitrag wird sukzessive eine Liste sinnvoller NuGet Pakete erstellt (und kontinuierlich ergänzt), die jeder kennen sollte. Nachdem bereits ältere Posts regelmäßig bei eigenen Recherchen zu Themen immer wieder auftauchen, hat sich gezeigt, dass unser Blog sich hervorragend als externes Gedächtnis eignet. Und da nicht nur wir draufschauen, haben alle etwas davon.

Vorschläge für weitere Pakete? Comment please and subscribe.

Und los geht's:

  1. Newtonsoft Json.NET
  2. Fody
  3. ...

Newtonsoft Json.NET

Bei Json.NET handelt es sich um eine Bibliothek, die die Arbeit mit Json deutlich vereinfacht. (De-) Serialisierung, Schema-Validierung und Linq2Json werden damit zum Kinderspiel. Via NuGet einfach eingerichtet ist die Bibliothek verfügbar für Windows und Windows Phone (auch als Portable Class Library).

Fody

Fody ist eine IL Weaver Bibliothek. Als solche füllt sie eine Lücke, die das .NET Framework durch fehlende AOP (Aspekt Orientierte Programmierung) mitbringt: Verschiedene Fody Plugins vereinfachen den Umgang mit Cross Cutting Concerns wie z.B. der Implementierung des INotifyPropertyChanged Interfaces bei datengebundenen Applikationen (PropertyChanged.Fody)

 

Noch 3x schlafen, dann ist Weihnachten…

… naja vielleicht noch nicht ganz, aber der Start der BASTA! 2014 wird sicherlich für den ein oder anderen eine ähnliche Bedeutung haben! Ab Montag, den 22.09.2014 ist es nämlich soweit, die BASTA! 2014 öffnet in der Rheingoldhalle in Mainz für eine ganze Woche ihre Pforten und wird mit ~120 praxisnahen Vorträgen, ~70 renommierten Speakern und 13 themenspezifischen Special Days Wissen streuen und zum ein oder anderen angeregten Gespräch mit den Speakern einladen.

Wir freuen uns, dass wir am Donnerstag mit Johannes Paul Langner und Marcus Jacob ebenfalls wieder mit 2 Speakern und 2 Sessions vor Ort dabei sein dürfen, in denen wir über die Mikrocontroller Entwicklung mit dem .NET Micro Framework und den Möglichkeiten der Proximity API auf dem Windows Phone berichten werden. Der Spieltrieb eines Entwicklers soll ja schließlich nicht zu kurz kommen…

Wer nicht live dabei sein kann, folgt der Konferenz am besten über den hashtag #bastacon auf Twitter, alle anderen sehen wir dann vor Ort!

Jahresgebühr entfällt. Mitgliedschaft im Windows Dev Center Programm auf Lebenszeit!

Gestern hat der General Manager für Windows Apps und Store, Todd Brix, bekanntgegeben, dass künftig keine Jahresgebühr mehr fällig wird, um im Dev Center Programm Mitglied zu sein. Nachdem bereits vor einiger Zeit die Programme für Windows und Windows Phone Entwicklung zusammengeführt wurden, war das der nächste logische Schritt.

Nach einer einmaligen Gebühr von gerade mal 14 Euro Netto fallen somit ab sofort keine Folgekosten mehr an.

Benefits

Gleichzeitig hat Microsoft das Dev Center Benefits Programm gestartet, um die Möglichkeiten zur Entwicklung und Vermarktung von Apps zu verbessern. Die sog. Benefit Pakete teilen sich auf in Explorer, Expert und Master. Die Idee dahinter ist, Anfängern genau die Hilfestellung zu geben, die sie benötigen, um zügig in das Design und die notwendige Architektur für die Entwicklung von Windows und Windows Phone Apps einzusteigen. Das Bewerben von Apps und mögliche Publisher Verträge sind Bestandteil des Expert Levels, während im Master Paket der VIP Zugang zu Ressourcen wie Developer und Marketing Support und Early Access für SDKs freigeschaltet wird.

Details dazu und zu weiteren Optimierungen in diesem Kontext kann man hier nachlesen.

 

Stakeholder an die Macht – Projektbeteiligte erhalten kostenlosen Zugriff auf Visual Studio Online

Brian Harry berichtete nach der Early Adopter Phase Anfang Juli bereits davon, dass viele Projektzuordnungen von Mitarbeitern wieder aufgehoben wurden. Der Zusammenhang mit dem Ende der Einführungszeit war offensichtlich: Zuvor war der Zugriff kostenfrei, nun konnten “nur noch” bis zu fünf Nutzer gratis Visual Studio Online nutzen.

Da Microsoft allerdings erhöhten Reibungsverlusten in den Entwicklungsprojekten zuvorkommen möchte, hat Brian angekündigt, mit der Stakeholder Rolle eine neue Lizenz einzuführen, die es einer praktisch unlimitierten Anzahl Projektbeteiligter ermöglichen soll, weiterhin kostenfrei auf den gehosteten Team Foundation Server zuzugreifen und in allen für ihre Arbeit relevanten Belangen zu nutzen.

Assigning a stakeholder license

 

Als Stakeholder können Nutzer nun gegenüber der früheren Work Item Only View folgendes:

  • Die Projekt Homepage betrachten
  • Auf die meisten arbeitsrelevanten Funktionen zugreifen
  • Das Backlog einsehen
  • Einträge hinzufügen und bearbeiten
  • WorkItem-Abfragen erstellen und ausführen
  • Benachrichtigungen abonnieren

Aus unserer Sicht ist Microsoft mit der Einführung der Stakeholder Lizenz in VSO ein ganz großer Wurf gelungen, deren Umsetzung extrem schnell nach der initialen Ankündigung realisiert werden konnte. Dass diese Funktion mit dem kommenden Update sogar in weniger als einem halben Jahr danach On Premise verfügbar sein wird zeigt die enormen Vorteile der neuen Rapid Release Strategie von Microsoft.

Mehr Informationen darüber, welche Funktionen und Möglichkeiten den Projektbeteiligten nun offen stehen, finden sich auf der eigens dazu eingerichteten Landing Page.

#epic. Oder: Ruck, wenn Scrum zu krass ist?

Bei Scrum handelt es sich eine Management Methode, die zumeist in der Softwareentwicklung eine große Hilfe dabei ist, umfangreiche Projekte steuerbar zu machen. Kernpunkte sind dabei u.a. die Leistungsbereitschaft der Teammitglieder und deren Selbstorganisation, die Aufteilung des Projektes in Timeboxes und regelmäßig stattfindende Meetings.

Das klingt zunächst einfach, bedingt aber eine absolute Disziplin, damit das Konzept aufgeht. Marcus Jacob hat dazu auf der letzten Developer Week einen Vortrag gehalten. Thema: Football, Poker, PM oder: Wir führen Scrum ein!*

Während es zuhauf Dokumentationen, Fachbücher, Artikel, Prozess-Templates u.ä. zu Scrum gibt, soll dieser Blogartikel allerdings etwas vorstellen, das kaum jemand kennt, von dem sich aber viel lernen lässt.

Microsoft Ruck

Rucks […] are similar to scrums in that several players are bound together while fighting over the ball. In the case of rucks, however, the ball is literally up for grabs, unlike in the relatively controlled environment of the scrum. Quelle: isport.com

Dieses Zitat von einer Sportseite drückt es bereits treffend aus. So wie Scrum eine Methode zur “kontrollierten” Softwareentwicklung ist und sich für die Namensgebung einer Sportmetapher bedient, entnimmt Microsoft eben jener Sportart – Rugby – einen weiteren Begriff (Ruck), der im Prinzip die gleiche Bedeutung hat, aber weniger Disziplin erfordert.

Bedeutet nun “weniger Disziplin” nun auch weniger Qualität? Oder sogar Fehler? Nein. Ganz im Gegenteil. In diesem Kontext löst dieses Vorgehensmodell typische Probleme, die verteilte Entwickler-Teams haben: Sie entwickeln nicht zur gleichen Zeit, es steht nicht immer jeder Mitarbeiter zur Verfügung, andere Projekte haben eine höhere Priorität… und im Zweifelsfall befinden sich die Entwickler nicht einmal in der gleichen Zeitzone. Die meisten Prinzipien von Scrum müssten in solchen Fällen über Bord geworfen werden.

Im Kontext der sog. ALM Rangers hat Microsoft daher eine eigene Methode entwickelt, die sich zwar an Scrum anlehnt, dabei aber wesentlich mehr Freiheiten ermöglicht und das ganze konsequenterweise Ruck genannt.

Bei den ALM Rangers handelt es sich um eine Gruppe von Enthusiasten, die kontinuierlich Tools, Dokumentationen, virtuelle Labs und dergleichen mehr außerhalb des regulären Entwicklungszyklusses des Team Foundation Servers bereitstellen. Da deren Hauptaufgabe allerdings häufig durch andere Themen bestimmt wird (mitunter zählen sogar Freelancer zu den ALM Rangers), benötigten sie eine Methode, die es ihnen erlaubt trotz der widrigen Umstände eine hohe Qualität abzuliefern.

image

Herausforderungen eines zeitzonen-übergreifenden Teams

Microsofts Lösung

Hier einige Schlüsselfaktoren, die entscheidend mit zu dem Erfolg bei Microsoft in verteilten Teams wie den ALM Rangers beitragen:

  • Sprint-Planungsmeetings finden virtuell und online statt (via Microsoft Lync und Email).
  • Neben Schätzungen, die das Team verantwortet (z.B. via Planning Poker) wird häufig auf die Schätzung desjenigen zurückgegriffen, der die Umsetzung verantwortet.
  • Das Team entscheidet, wann und wie oft “Standup-Meetings" stattfinden (i.d.R. wöchentlich), dabei schicken abwesende Teammitglieder Status-Updates per Email an den Lead / Ruckmaster.
  • Wer am Sprintreview nicht teilnehmen kann, stellt ein kurzes Demo-Video seiner Arbeit bereit.
  • Auch zur Retrospektive können Erkenntnisse per Email eingereicht werden; eine Zusammenfassung der Ergebnisse stellt der Lead in der Ruck Improvement Community allen Teammitgliedern zur Verfügung.

Darüber hinaus ist der Worfklow gegenüber Scrum leicht verändert und es gibt auch weitere Workitem Typen (wie z.B. sog. Epics, die über einem Feature stehen und ein Thema auf übergeordneter Ebene betrachten).

Da das Thema in Summe allerdings zu umfangreich ist, um es in Gänze in einem Blogartikel zu betrachten, sei an dieser Stelle auf das Material verwiesen, das Microsoft kostenlos zum Download zur Verfügung stellt.

Über die Landing Page “Supporting Guidance and Whitepapers” gibt es weiterführende Informationen und Materialien, die einem helfen in Bild, Ton und Text den Ruck Prozess und die virtuellen Personas zu verstehen und bekommt ergänzend dazu Whitepaper, Sample Solutions, Hands on Labs und dergleichen mehr, um sich auch praktisch mit dem Thema auseinandersetzen zu können.

Fazit

Wer sich mit seinem Team den Herausforderungen moderner Softwareentwicklung stellen will und feststellen muss, dass Methoden wie Scrum im spezifischen Fall nicht funktionieren können, der findet im Ruck Prozess eventuell die Lösung. Es lohnt sich aber in jedem Fall, einen Blick in das Material zu werfen, da auch unabhängig davon einige wirklich interessante Konzepte vermittelt werden (wie z.B. das der Personas). Da es sich dabei um Anwendungsfälle aus der gelebten Praxis handelt, fällt die Adaption umso leichter.

*Im Übrigen ist niemandem aufgefallen, dass das Wort Scrum seine Herkunft im Rugby hat und nicht im Football. :)

#dwx14 – Wiedersehen macht Freu(n)de!

Heute vor einem Monat war es endlich soweit: Während ganz Deutschland noch den Fußball WM Sieg feierte, öffnete das NCC Ost in Nürnberg seine Hallen für die Developer Week 2014. Natürlich ging die WM Stimmung auch hier nicht an uns vorbei, sind wir Speaker doch zur Eröffnung zu Andreas Bouranis WM Hymne “Auf Uns!” unter Applaus auf die Bühne marschiert; es hätte nicht schöner anfangen können!

DWX2014_all_speakers_download_fullsize 

Konferenzen sind für uns immer ein kleines Klassentreffen, auf dem man viele bekannte Gesichter wiedersieht aber auch jedes Mal neue kennenlernt. Als Speaker verschiebt sich der Schwerpunkt somit vom Know-How Erwerb hin zum Socialising. Am besten ist es jedoch, wenn sich beides miteinander kombinieren lässt und ja, das ließ es sich auch dieses Mal wieder ;-)

Dank ca. 250 Sessions ballte sich ein sehr vielfältiges Wissen, das für reichlich Gesprächsthemen zwischen und nach den Vorträgen sorgte. So gab es am ersten Abend Thementische zum gemütlichen Diskutieren, begleitet von Live Musik der Band “The Blackscreen”. Der zweite Abend bot abwechslungsreiche Unterhaltung durch bspw. PowerPoint Karaoke, Coding Dojos und der Microsoft Gadget Garage, die zum Auto- und Spherorennen per Bluetoothsteuerung vom Windows Phone aus verführte. Wer sich zwischendurch mal eine Pause gönnen wollte, konnte auf den Massagesesseln der Firma BrainLight relaxen und wieder zu Kräften kommen. Die Verköstigung war ebenso reichhaltig wie lecker – selbst als Vegetarier kam man auf seine Kosten – und sogar Club Mate und Energy Drinks standen zur freien Verfügung und ließen die Nächte zum Tag werden! Es lässt sich festhalten, dass wirklich für jeden etwas dabei war und Langeweile einfach nicht aufkommen konnte.

Die Developer Week hat sich weiterentwickelt und auf das Teilnehmerfeedback reagiert. So gab es dieses Jahr bspw. keine geschlossene Abendveranstaltung, die im letzten Jahr noch für reichlich Irritation sorgte. Ebenso ging man weiter mit der Zeit und stellte mobile Konferenz Apps zur Verfügung. Leider nur für Android und iOS, weswegen man als Windows Phone Besitzer das Nachsehen hatte. Wer zur letzteren Kategorie gehörte, konnte somit lediglich die WebApp verwenden, die allerdings noch einiges an Verbesserungspotenzial mit sich bringt. Aber ganz im Ernst? Das ist Jammern auf hohem Niveau und kann somit getrost vernachlässigt werden. An dieser Stelle wird zum nächsten Jahr sicherlich nachgebessert.

Von unserer Seite aus bleibt jetzt nur noch ein großes Dankeschön, sowohl an das gesamte Veranstaltungsteam, als auch natürlich an die Teilnehmer der Konferenz und unserer Sessions insbesondere! Es zeigte sich auch dieses Jahr wieder, dass neben Mainstream Themen rund um Scrum auch Sessions über Touch Develop, dem Microsoft Fakes Isolation Framework und sogar Windows Installer XML für großen Anklang beim Publikum sorgten. Uns hat es auf jeden Fall wieder richtig viel Spaß gemacht und wir freuen uns schon auf’s nächste Klassentreffen!

Ich wollte ein virtuelles Test Lab einrichten. Du wirst nicht glauben, über welche Lösung ich dabei gestolpert bin!

Um mal aus dem Nähkästchen zu plaudern: Vor über zehn Jahren ist unser Unternehmen mit Dell Workstations gestartet und unser Geschäftsführer besaß privat u.a. einen Rechner in einem formschönen (…) Thermaltake Gehäuse samt externem Festplatten-Tower.

Nachdem wir einige Jahre später für ein Produkt, das bei uns entstanden ist, ein Test Lab benötigten (zu dem Zeitpunkt waren wir bereits schon lange auf Notebooks umgestiegen und die alten Workstations fristeten im Keller ihr Dasein), nutzen wir kurzerhand eben diese Altsysteme, um daraus (natürlich im Keller – wie praktisch) ein solches Lab zusammenzubauen. Inklusive Cisco Router, KVM Switch und einem Set bestehend aus Tastatur, Maus und – zunächst – CRT Display. Auch der alte Rechner im Thermaltake Gewand kam (als Server) zum Einsatz (kommentiere, wenn Du ein Foto vom Testlab sehen möchtest).

Heute – ungefähr sieben Jahre später – möchten wir das Test Lab natürlich virtuell abbilden. Mit aktuellstem Betriebssystem und modernsten Mitteln. Und auf der Suche nach möglichen Abkürzungen fanden wir dies:

Windows Server 2012 R2 Test Lab Guide

Wer die Virtual Labs von Microsoft kennt (und liebt) hat sich sicher das ein oder andere Mal gefragt, wie die das so fein hinbekommen. Immerhin gibt es nicht gerade wenige davon und deren Konfiguration umfasst mitunter neben Domain Controllern, Internetservern und Clients auch noch Edge-Server und dergleichen mehr.

Wer die Virtual Labs nicht kennt, findet indes hier einen Einstieg.

Kurz gesagt: Ziel für den Benutzer ist es, möglichst schnell z.B. Verständnis für eine ihm neue Technologie aufzubauen. Dazu stellt Microsoft eine virtuelle Infrastruktur bereit, die über einen festen Zeitraum (meist etwa 2 Stunden) zur Verfügung gestellt wird und mit der sich der Benutzer via Remote Desktop verbinden kann. Passend zu dem jeweiligen Thema gibt es dann Begleitmaterial in Form von meist Word Dokumenten, die einen Schritt für Schritt durch Konfigurationsszenarien, Anwendungsfälle und vieles mehr leiten.

Das, was uns vollkommen überrascht hat, ist, dass Microsoft nicht nur diese Test Labs vollkommen gratis bereitstellt, sondern auch eine Dokumentation, wie diese erstellt werden können. Der Link oben führt zu dem Word Dokument, das Schritt für Schritt erläutert (inkl. passender Powershell Scripte), wie sich folgende Basis Test Lab Infrastruktur aufbauen lässt:

image 

 

Mehr noch: Das TechNet Wiki enthält darüber hinaus sogar eine Liste von weit mehr als 50 bereits vorhandener TLGs (Test Lab Guides), die ebenfalls frei verfügbar sind.

Hier ein kleiner Auszug:

  • Fabrikam Base Configuration
  • Install Exchange Server 2013
  • Demonstrate IPv6
  • Demonstrate Direct Access
  • System Center 2012 Configuration Manager

Wer sich nun noch dafür interessiert, eigene TLGs für Produkte, Features, Komponenten oder beispielsweise auch eigene Serverprodukte zur Nutzung im eigenen IT Bereich zu schreiben, der wird überdies hier fündig:

Test Lab Guide (TLG) Content Creation Kit

Microsoft liefert mit dem Content Creation Kit eine vollständige Sammlung an Word Templates, Powerpoint Folien und Grafiken, um selber Test Lab Guides zu entwerfen.

Ich weiß nicht, wie es euch geht… aber meine Augen leuchten!

Natürlich kann es auch sein, dass ich mit meinem Fokus auf die Softwareentwicklung auf einsamer Flur stehe, was das Thema betrifft und das für euch IT Spezialisten ein alter Hut ist. In diesem Fall freut euch einfach für mich, denn mir kommt es vor wie der heilige Gral. Falls aber nicht, werft einen Blick darauf! Es gibt sicher auch bei euch das eine oder andere Szenario in dem so eine Dokumentation durchaus sinnvoll ist und gerade auch das TLG Content Creation Kit eine große Hilfe dabei darstellt, eigene Dokumentationen zu erstellen.

Wie man 50.000 Euro Projektkosten einspart

Machen wir uns nichts vor: Wir haben 2014 und die Tagessätze für Berater, Softwareentwickler und dergleichen sind nicht mehr dieselben wie noch vor zehn Jahren. Auch im Großkundensegment sind Tagesätze von deutlich unter 1.000 Euro mittlerweile Gang und Gebe. Die Ursachen hierfür sind vielfältig und liegen nicht allein darin begründet, dass Zwischenhändler, Subgeschäft und Rahmenverträge die Margen auf nicht mehr nur ein Unternehmen verteilen. Häufig sind es auch schlicht die Kosten, die so unverhältnismäßig gestiegen sind, dass der Kunde knapper kalkulieren muss, damit sich ein Projekt rechtfertigen und damit auch beauftragen lässt.

Gestiegene Komplexität

Um Beispiele aus der Windows Welt und im Speziellen der Softwareentwicklung aufzugreifen: Früher gab es zwar weniger Auswahlmöglichkeiten, dafür war die Welt aber auch deutlich weniger komplex. Es gab Windows Forms für clientbasierte Anwendungen mit Benutzeroberflächen und ASP.NET für den Browser. Natürlich gab es auch zu der Zeit bereits Hersteller von Drittlösungen, die das .NET Framework für diese Plattformen ergänzten, aber im Wesentlichen ließ sich mit Boardmitteln bereits fast alles umsetzen. Parallel existierte noch die alte Welt der Visual Basic 6 Entwickler, die ebenfalls mehr oder weniger komfortabel Lösungen auch ohne Informatikstudium bereitstellen konnten (wir sprechen hier noch nicht über Evolvierbarkeit & Co… das kam erst später).

Heute gibt es allein in der Windows Welt nicht mehr nur Windows Forms und ASP.NET. Hinzugekommen sind u.a. Silverlight, WPF, ASP.NET MVC, jQuery, HTML5, nicht zu vergessen die SharePoint Apps, Office Apps, Windows Store Apps, Windows Phone Apps und sogar die guten alten nativen MFC Anwendungen feiern ein Comeback. Ein Trend, der hierbei sichtbar wird: Die Anwendungen werden mehr und mehr ins Internet verlagert und seit neuestem setzt sich auch die Anforderung durch, dass sie möglichst plattformunabhängig funktionieren müssen. Der Begriff BYOD (bring your own device) hat sich zwar – so scheint es auf den ersten Blick – als Rohrkrepierer erwiesen, trifft uns nun aber von hinten wie ein Bumerang: Schließlich wollen Kunden die Anwendungen meist auf allen Plattformen umgesetzt haben.

Gestiegene Kosten

Immer mehr SDKs und APIs ermöglichen die Entwicklung eben solcher Multi-Device Apps, was aber ebenfalls auffällt, ist, dass immer mehr gewohnte Standardkomponenten aus den Boardmitteln verschwinden. Ein Beispiel: Sog. Line of Business (LOB) Anwendungen drehen sich i.d.R. immer um das Verwalten von Stammdaten. Hierbei werden Informationen erfasst, gespeichert und weiterverarbeitet. Im Zentrum steht dabei meist die tabellarische Darstellung der Daten.

Genügt dazu folgende Oberflächengestaltung aus?

image

 

In den meisten Spezifikationen sehen die ersten Roh-Entwürfe tabellarischer Darstellungen tatsächlich so oder so ähnlich aus.

Hier ein Gegenbeispiel:

image

 

Was sich hieraus erkennen lassen sollte sind folgende Funktionen:

  • Gruppierung (hier z.B. nach der Stadt)
  • Sortierung
  • Inline-Bearbeitung (hier z.B. zu erkennen an der TextBox in der Spalte “Name”)
  • Filterung (hier z.B. nach Datum; möglich wären auch komplexe Filter wie beispielsweise Von/Bis/Enthält/Enthält Nicht/Kleiner/Größer/etc.)
  • Paging (bei extrem vielen Einträgen evtl. sinnvoll)
  • Vertikales Scrolling (ob Scrolling UND Paging gleichzeitig sinnvoll sind, darüber lässt sich streiten)
  • Darstellung von Boolean-Werten (hier: Aktiv) als CheckBox
  • Farbliche Unterscheidung (in diesem Fall unbekannt, ob bei der Selektion, aufgrund fachlicher Kriterien oder einfach nur beim Drüberfahren mit der Maus)

Kundenprojekte laufen hier Gefahr, in diese Falle zu tappen: Ohne die Abstimmung mit denjenigen, die die Anforderungen letzten Endes umsetzen (die Entwickler) gelangen Darstellungen wie die zuerst abgebildete in die Spezifikation. Während des Projektes aber kristallisiert sich i.d.R. immer mehr die zweite Abbildung heraus. Dass es sich bei der Umsetzung um eine komplexe und umfangreiche Entwicklung eines Steuerelements handelt (das es so übrigens weder in HTML5, noch JavaScript, Windows Forms oder ASP.NET MVC gibt), steht außer Frage.

Und so steigen die Projektkosten aufgrund der Entwicklung von Steuerelementen problemlos (und exponentiell) um das x-fache. Denn zu der reinen Umsetzung der Anforderungen kommen Fragen nach Wartung, Dokumentation, Plattformunabhängigkeit und vermutlich auch Auslagerung in eigene Bibliotheken für den projektübergreifenden Einsatz.

Selbst im simpelsten Fall wäre es nicht ungewöhnlich für ein Gedankenspiel anzunehmen, zwei Entwickler würden 50 Projekttage mit der Implementierung eines einfachen Tabellen-Steuerelementes für eine ASP.NET MVC Web-Anwendung benötigen, das einen Teil der oben beschriebenen Funktionen implementiert. Weiterhin angenommen, ein Projekttag kostet pro externem Entwickler um die 500 Euro (was nicht viel ist), hat den Kunden dieses Control nun etwa 50.000,00 Euro gekostet. Folgekosten nicht eingerechnet (Bugfixing, Support, etc.)

Kosten einsparen

Wir versuchen, unseren Kunden diese Zusammenhänge wo es geht zu vermitteln und neben der Softwareentwicklung selbst auch beratend in den Projekten zu unterstützen. Natürlich sind auch wir in der Lage, spezifische Anforderungen in Form oben beschriebener Controls umzusetzen und freuen uns über entsprechende Aufträge. Allerdings werden die meisten unserer Projekte eher zentral durch die Umsetzung fachlicher Anforderungen bestimmt. Der Rest ist Mittel zum Zweck.

Daher:

Erfinde nicht das Rad neu,… es sei denn, Du willst etwas über Räder lernen.

Soll heißen: Falls man nicht gerade ein Produkthersteller ist, der sich auf die Entwicklung von Steuerelementen spezialisiert hat, oder Anforderungen hat, die schlicht von keinem solchen umgesetzt werden, dann gibt es keinen vernünftigen Grund, die Kosten für die Entwicklung derartiger Basiskomponenten selbst zu tragen, geschweige denn, externe Entwickler damit zu beauftragen.

Es gibt eine große Anzahl von Herstellern, die bereits Produkte vermarkten, die nicht nur über umfangreiche Unterstützung verschiedenster Plattformen verfügen, sondern auch entsprechenden Support mitbringen und umfassende Dokumentationen. Schließlich leben sie davon. Nach einem Vergleich zwischen den Kosten für Einzelplatz, Mehrfach- oder Firmenlizenzen mit den möglichen Kosten, die bei einer Eigenentwicklung entstehen können, lässt sich die Erkenntnis, dass der Preis in keinem Verhältnis zum Nutzen steht, nur noch schwer abstreiten.

Sinnvoller ist es also, zum Projektstart genaue Überlegungen hinsichtlich der UI-Anforderungen anzustellen, dabei die Softwareentwickler und deren Kompetenzen einzubeziehen und im Anschluss daran ganz regulär unterschiedliche Frameworks zu evaluieren, die einer Entscheidungsmatrix nach passen könnten. Selbst die Anpassung der eigenen Anforderungen an das dann ausgewählte Zielframework (falls dieses nicht alle Kriterien erfüllt) ist in den meisten Fällen noch immer sinnvoller, als stattdessen den Eigenbau zu bevorzugen.

Fazit

Wenn die Antwort auf folgende Fragen Ja lautet, spricht das für die Entwicklung eigener Steuerelemente:

  • Ist das Ziel, die Steuerelemente an andere Unternehmen zu lizenzieren?
  • Gibt es keine Steuerelemente von Drittherstellern, die die (kritischen) Anforderungen unterstützen?
  • Ist geplant, unternehmenseigene Bibliotheken langfristig zu entwickeln und in jedem Fall unabhängig von Drittherstellern zu sein?

Wenn die Antwort auf folgende Fragen Ja lautet, spricht das gegen die Entwicklung eigener Steuerelemente:

  • Handelt es sich bei den Anforderungen weitestgehend um Standards?
  • Liegt der zentrale Fokus in der Implementierung fachlicher Anwendungen?
  • Ist Multi-Plattformfähigkeit ein Thema?

Falls Sie an einem Punkt sind, an dem Sie sich entscheiden müssen, ob sie in den Erwerb von Lizenzen eines Drittherstellers investieren, oder lieber selbst Hand anlegen und dabei Unterstützung benötigen, sprechen Sie uns bitte an.

Sehr gerne helfen wir Ihnen bei der Entscheidung und stehen auch für die Evaluation möglicher Lösungen zur Verfügung. Wir verkaufen weder Lizenzen noch verdienen wir daran, kennen dafür aber verschiedenste Frameworks, haben Experten im Requirements Engineering, der Softwareentwicklung und dem Lizenz-Management. Damit sind wir der richtige Ansprechpartner für Sie, um nachhaltig Ihre Projektkosten zu optimieren und die Softwareentwicklung mit hoher Effizienz auf den Kern Ihrer Anforderungen zu lenken: Dem Bau von Fahrzeugen,… ohne zuvor das Rad neu erfinden zu müssen.

Über die Autoren

Christian Jacob ist Leiter des Geschäftsbereiches Softwarearchitektur und -entwicklung und zieht als Trainer im Kontext der .NET Entwicklung sowie ALM-Themen Projekte auf links.

Marcus Jacob fokussiert sich auf die Entwicklung von Office-Addins sowie Windows Phone Apps und gilt bei uns als der Bezwinger von Windows Installer Xml.

Martin Kratsch engagiert sich für das Thema Projektmanagement mit dem Team Foundation Server und bringt mit seinen Java- und iOS-Kenntnissen Farbe in unser ansonsten von .NET geprägtes Team.

Aktuelle Kommentare

Comment RSS