Nachlese zur Visual Studio 2012 Evolution

Nachdem die Veranstaltung am 1.10.2012 in Düsseldorf ein voller Erfolg war, stehen nun auch die Videos aller Sessions zur Verfügung. Wer leider nicht die Gelegenheit hatte, an dem Event teilzunehmen hat nun die Möglichkeit, sich im Detail über die neuen Funktionen und Features zu informieren.

Die drei Tracks rund um Visual Studio 2012, .NET 4.5 und Services wie Azure, Windows Phone und TFS as a Service wurden dabei von 14 bekannten Speakern unterhaltsam und informativ vorgestellt. Auf folgender Website können interessierte Entwickler ihr Wissen wieder auffrischen oder sich Sessions anschauen, die sie verpasst haben.

http://www.microsoft.com/germany/msdn/events/vs-evolution-2012/default.aspx

Gratis E-Book

Wer sich darüber hinaus passend zur Evolution Session Unit Testing & Fakes noch intensiver mit dem Thema Testing mit dem Visual Studio 2012 auseinandersetzen möchte, dem sei ein kostenloses E-Book des Pattern & Practices Team von Microsoft empfohlen, das hier heruntergeladen werden kann.

One more thing…

3 Worte die neugierig machen…
3 Worte die zum Träumen anregen…
3 Worte die Magie versprühen…

One more thing” ist grade zu Apple’s “I love you” an die Welt, Steve Jobs wusste damit die Menschen zu beeindrucken, sie mit Unerwartetem zu überraschen. Der Smartphone Markt wäre heute nicht derselbe, hätte es 2007 nicht diese eine weitere Kleinigkeit gegeben. Doch wie schaut es heut zu Tage aus?

Der Markt wird mit einer 2/3 Mehrheit von Google’s Android dominiert. Apple’s iOS ist grade mal an 2. Stelle und zur Zeit noch weit abgeschlagen auf dem 6. Platz liegt Microsoft’s Windows Phone. Die Prognose für die nächsten Jahre sieht für Microsoft dennoch sehr gut aus, wie bereits im letzten Artikel zu dem Thema beschrieben. Grade das Zusammenspiel zwischen Windows 8 und Windows Phone 8 (WP8) wird hier interessant werden, daher ist für WP8 auch die Popularität von Windows 8 selbst sehr wichtig.

Surface – das neue iPad?

Microsoft arbeitet intensiv daran mit eigenen innovativen Gadgets wie z.B. dem im Juni überraschend vorgestellten Surface Tablet aufzutrumpfen, um damit den Markt attraktiver zu gestalten und darüber hinaus ihre eigene Vision eines Windows 8 Tablets zu verwirklichen. Ob das Surface Tablet lediglich als Referenzprodukt dienen oder doch ein direktes Konkurrenzprodukt zum iPad werden wird, werden die nächsten Monate zeigen.

Zunächst einmal wartet die Welt gespannt darauf, ob und wann es außerhalb der USA veröffentlicht und wie viel es dann wirklich kosten wird. Laut Steve Balmer wird der Preis irgendwo zwischen 300$ und 800$ liegen, die Gerüchteküche kommt alle paar Wochen mit eigenen Preisvorstellungen die zwischen 199$ und 500$ für das günstigste Modell schwanken. Anhand des Preises wird sich dann auch die Strategie ableiten lassen. Je günstiger es ist, desto mehr geht es um die Verbreitung des Betriebssystems, je teurer es ist, desto mehr darum, selber Marktanteile im Tablet Segment zu erreichen. In zwei Wochen wissen wir es genauer, denn am 26.10.2012 wird das Surface zusammen mit Windows 8 veröffentlicht.

Noch eine Kleinigkeit…

Nur drei Tage später, am 29.10.2012, findet dann der Launch für Windows Phone 8 statt. Während Nokia, HTC und Samsung ihre Smartphones bereits vorgestellt haben, verstärken sich die Gerüchte, dass Microsoft an einem eigenen WP8 Smartphone arbeitet. Zunächst unter dem Namen “Juggernaut Alpha” gefunden, mittlerweile und naheliegender weise als “Surface Phone” von der Netzgemeinde tituliert. Details sind nicht bekannt, Microsoft hüllt sich dazu natürlich noch in Schweigen, dennoch besagen die Gerüchte, dass es Anfang 2013 erscheinen soll.

Würde es daher verwundern, wenn Steve Ballmer am 29.10.2012 nicht nur Windows Phone 8 vorstellt, sondern in guter alter Steve-Manier das letzte Viertel der Veranstaltung mit einem diebischen Lächeln beginnt, sowie den Worten “One more thing”? ;)

Slides und Demos zur Visual Studio 2012 Evolution

Die Folien und auch die Demos zu den Themen Unit-Testing und Fakes von der Visual Studio 2012 Evolution können bereits jetzt hier heruntergeladen werden.

 

 

 

Das war die Visual Studio 2012 Evolution

... oder hat sie gerade erst begonnen?

Am 1.10.2012 fand in Düsseldorf der Visual Studio 2012 und .NET 4.5 Launch-Day statt. Dabei habe ich mich sehr darüber gefreut, dass die Entscheidung über die Art der Veranstaltung gegen einen virtuellen Launch und zugunsten einer Präsenzveranstaltung fiel.

Die Zahl der Teilnehmer, die es am Montag nach Düsseldorf geschafft haben, floatet - je nachdem, wen man fragt - zwischen 550 und 700 Personen. Aber auch ohne sich an der genauen Teilnehmerzahl aufzuhalten: Die kostenlose Veranstaltung war "ausverkauft", die Konferenzräume waren voll und das Interesse des Publikums an den Themen hoch.

Alles Neue...

Neuerungen im Visual Studio 2012 und auch .NET Framework 4.5 standen naturgemäß im Vordergrund und wer im Sommer die eine oder andere Roadshow zu den Themen besucht hat (damals hieß es noch "Visual Studio goes to 11"), der wird auch viel Bekanntes vorgefunden haben. Grandios waren dabei aber auch Sessions zu beispielsweise Azure, bei der Dariusz Parys u.a. ein End-To-End Szenario von der Implementierung einer ASP.NET MVC Applikation, über die Quellcodeverwaltung im TF Service auf tfspreview.com bis hin zur Build Automation in der Cloud und dem Continuous Deployment nach Azure präsentiert hat. Azure for Website ist übrigens kostenfrei.

Frank Prengel hat wie erwartet die Fahne für Windows Phone 8 hochgehalten während Chris Binder und Neno Loje  fast schon mit Show-Charakter sehr unterhaltsam demonstriert haben, was passiert, wenn Microsoft nicht nur Drag & Drop im Web für sich entdeckt, sondern der "Kunde" auch noch den Weg auf die entsprechenden Slides von Microsoft findet: PowerPoint Storyboarding, TFS Dashboard, Exploratives Testen und der neue Feedback Client führen zur effizient arbeitenden Teams und resultieren damit in (hoffentlich) noch coolerer Software (und wenn schon nicht sexy, dann doch wenigstens qualitativ hochwertiger; die Erkenntnis, dass Softwareentwickler keine Designer sind, läßt sich spätestens seit der Einführung von WPF kaum mehr ignorieren). Und wer sich gewundert haben sollte: Natürlich sprechen Scrum-Entwickler nicht von Burnout Charts sondern von Burndown Charts. Sollte dieser freudsche Versprecher in den Webcasts herausgeschnitten werden, freue ich mich schon jetzt auf die Outtakes.

Die TOP TECHNOLOGIES hatte zudem das große Vergnügen, dem interessierten (und zahlreich erschienenen) Publikum Neues zum Thema Unit-Testing und dem Microsoft Fakes Isolation Framework näher zu bringen. Auf diesem Blog gab es schon den einen oder anderen Artikel dazu und in einer der kommenden Ausgaben der dotnetpro wird dazu noch ergänzendes Material veröffentlicht. Spannend ist neben der Unterstützung von Async & Await in Unit-Tests beispielsweise die Integration von 3rd Party Frameworks (und das bezieht sich zumindest theoretisch auf alle Frameworks), und die direkte Integration von Fakes in das Visual Studio. Somit steht dem Entwickler erstmals ein leistungsfähiges Mocking Framework ab Werk zur Verfügung. Einziger Wehrmutstropfen ist die Beschränkung auf die Ultimate Edition. Aber es hat ja auch ein paar Versionen gebraucht, bis das Unit Testing auch in die Express Versionen Einzug gefunden hat.

Quaterly Updates

Eine Änderung in dem Entwicklungsmodus der Microsoft läßt daher Hoffnung zu. Da das Developer Team intern ebenfalls nach Scrum arbeitet und in kurzweiligen Zyklen Features fertigstellt und Bugs behebt, werden Entwickler nun nicht mehr auf Major Releases alle paar Jahre angewiesen sein (oder sich auf unregelmäßige Powertools freuen), sondern von vierteljährlich erscheinenden Updates profitieren können. Dabei plant Microsoft diese bereits vor dem Release als CTP der interessierten Community zur Verfügung zu stellen. Während diese zwar nicht für den produktiven Einsatz empfohlen werden, nutzt Microsoft sie intern sehr wohl produktiv. "Eat your own dogfood" lautet da das Credo.

Das erste CTP für das geplante November Update ist bereits verfügbar, bereitet bei der Installation allerdings noch die eine oder andere Schwierigkeit. Lohnen tut sich der Blick darauf dennoch, wie ein Blogeintrag von Brian Harry zeigt.

Wer sich das Visual Studio 2012 und den dazugehörigen Team Foundation Server (oder auch gefahrlos das aktuelle CTP) genauer anschauen möchte, dem sei der kostenfreie ALM Hyper-V Server empfohlen, den man bei Microsoft hier herunterladen kann. Optimal ist der Einsatz in einem Hyper-V Server unter Windows 8, der sich als Feature problemlos nachinstallieren läßt; die Einbindung der virtuellen Maschine gestaltet sich zum einen problemlos und ist zum anderen optimal dokumentiert. Ergänzend findet sich in dem Archiv eine große Anzahl detaillierter Hands-On Labs, die einladen, alle Features einfach mal auszuprobieren. 

Alle, die leider nicht an dem Event teilnehmen konnten, werden sich übrigens darüber freuen, dass alle Sessions aufgezeichnet wurden und in ca. zwei Wochen als Webcasts zum Download angeboten werden.

In diesem Sinne: Viel Spaß und Erfolg mit Visual Studio 2012!

Die Evolution hat begonnen!

 

Die Katze ist aus dem Sack: SharePoint 2013

Mit der eher klein gehaltenen Pressekonferenz vom 16.07.2012 hat Steve Ballmer geladenen Journalisten Office 2013 (Codename Office 15) vorgestellt. Am gleichen Tag wurden die Bits der Preview nicht nur für Office 2013, sondern auch für SharePoint 2013 zur Verfügung gestellt sowie die API Dokumentation freigeschaltet und jede Menge Präsentationen veröffentlicht.

Fabian Moritz hat daraufhin in der Sharepoint Community einen Beitrag veröffentlicht, der die wichtigsten Links zusammenstellt. Ein Blick darauf lohnt sich!

Die Präsentationen zeigen, wie viel Wert Microsoft weiterhin auf Kollaboration, Community und Social Networking als Medium für die erfolgreiche Zusammenarbeit legt. Zwar hat der Zukauf des Yammer Netzwerkes erst einmal nichts mit der aufpolierten Oberfläche des Mitarbeiter Feeds in Sharepoint zu tun, gleichwohl aber scheint sie nun endlich brauchbar genug zu sein, um unternehmensintern Bits an Informationen schnell an die interessierte Zielgruppe zu verteilen!

Windows Phone 8–Coming soon!

Lange wurde spekuliert in welche Richtung sich Windows Phone 8 (WP8) wohl entwickeln würde, bis Microsoft es gestern auf der Windows Phone Summit der Öffentlichkeit präsentiert hat:

Die Spatzen pfiffen es schon von den Dächern und nun wurde es offiziell bestätigt. WP8 erhält neben einem überarbeiteten und dadurch noch stärker personalisierbaren StartScreen:

  • MultiCore Support
  • 3 verschiedene Auflösungen (800x480; 1280x768 in 15:9; 1280x720 in 16:9)
  • NFC Unterstützung
  • MicroSD Unterstützung

Viel interessanter aber als die Auflistung der reinen Hardwaredetails sind allerdings die Möglichkeiten, die sich mit WP8 ergeben. Wie erwartet liegt der Hauptaspekt natürlich in der Interoperabilität zwischen WP8 und Windows 8, die sich selbstredend dank des gemeinsamen Kernels ergibt. So müssen laut Microsoft nur wenige Zeilen Code angepasst werden, damit eine WP8 App auch unter Windows8 läuft – und andersherum. Wie gut dies in der Realität funktioniert wird sich natürlich noch zeigen müssen, kommt das WP8 SDK schließlich erst später im Sommer heraus.

Einen wesentlichen Beitrag zur Kommunikation zwischen den Geräten der Windows 8 Welt (W8 & WP8) leisten eindeutig die NFC Chips. Dank derer ist es möglich über die sogenannte “Tap&Share” Funktion zwischen einzelnen Geräten (nochmal: W8 & WP8!) Informationen wie Kontakte, Bilder und Videos über ein simples gegenseitiges Berühren miteinander auszutauschen oder auch ein Multiplayer Spiel untereinander zu starten. Spontane Erinnerungen an Microsoft Office Labs vision 2019 drängen sich förmlich auf.

Auf die Spitze treibt Microsoft diesen Gedanken mit einem Beispielvideo, das einen Restaurantbesuch skizziert, in dem sich eine Familie mit Hilfe von Windows 8 & WP8 Apps in ein Restaurant via Tapping mit seinen eigenen Kontaktdaten eincheckt, Essen bestellt und am Ende dank Wallet App bezahlt.


Windows Phone 8 NFC Technology

Ein weiterer Fokus wurde von Microsoft auf die Spieleentwicklung gelegt. Wurde bisher mit XNA entwickelt, so können Entwickler jetzt nativ Direct 3D, C und C++ nutzen, um noch leistungsfähigere Spiele zu ermöglichen. Ein nachvollziehbarer Schritt, sind verfügbare Spiele doch sehr häufig ein wesentlicher Kaufaspekt für den Endkonsumenten.

Enterprise ist mehr als nur ein Raumschiff

Microsoft hat auch im Enterprise Umfeld nachgebessert. Mit WP8 werden Bitlocker Verschlüsselung, Secure Boot, Device Management und LOB (Line of Business) App Deployment eingeführt. Wie insbesondere die letzten beiden Punkte funktionieren werden, wurde noch nicht bekannt gegeben, aber die Vermutung liegt nahe, dass Produkte wie Microsofts SCCM hier eine tragende Rolle spielen werden, um die Geräte zentral zu verwalten und mit Software auszustatten.

Hinzu kommt ein eigener Company Hub, über den eine Firma ihre Mitarbeiter mit Neuigkeiten, hervorgehobenen Apps und Passwort-Remindern ausstatten kann. Laut Microsoft kann der Hub den eigenen Gegebenheiten vollständig angepasst werden, aber auch hier gilt: “Details? Coming soon!”

Over the air – Updates jetzt in “richtig”

Während Updates bisher nur über USB Kabel an eine Workstation mit installierten Zune möglich waren, funktioniert dieser Prozess jetzt “over the air” und somit gänzlich ohne Kabel und: Ohne Zune! Damit entfällt zwar auch der bisherige Work around, über den Updates früher installiert werden konnten, als über das automatische Push Verfahren, doch auch hierfür deutet Microsoft eine Lösung an: Jeder der ein Update frühzeitig erhalten möchte, kann sich dafür schlichtweg registrieren und erhält es dann auch vor der offiziellen Verteilung durch die Mobilfunkprovider. Auf die Frage wie dies nun genau geschieht, wird Microsoft sicherlich in den nächsten Monaten eine Antwort geben.

Fazit

Mit Windows Phone 8 und insbesondere der Interoperabilität zu Windows 8 könnte Microsoft jetzt der große Wurf gelungen sein. Die bisher vorgestellten Features machen bereits einen ausgereiften Eindruck und wecken die Neugier darauf, was alles möglich sein wird. Damit der eingeschlagene Weg auch zum Ziel führt, muss Microsoft es jetzt schaffen die Entwickler zu motivieren und die Verbreitung von NFC Chips zu erhöhen, da sich grade hier das größte Potenzial bietet. Was nützen schon die besten Features, wenn sie aufgrund zu geringer Verbreitung der notwendigen Hardware nicht genutzt werden können? Wenn Microsoft diese Hürde überwindet und das volle Potenzial der Windows 8 Plattform zur Entfaltung bringen kann, dann sollte auch ein Licht am Horizont zu sehen sein, was die Marktanteilsprognosen anbelangt. 19,5% Marktanteil im Jahre 2015? Mit Windows Phone 8 ein realistischen Szenario!

Windows Phone 8 – Alles wird gut!

Seit geraumer Zeit wird darüber geredet und spekuliert, was sich mit Windows Phone 8 alles ändern wird. Bekannt ist seit längerem, dass der in die Tage gekommene Windows CE Kernel durch den Windows 8 Kernel ersetzt werden soll, ein logischer Schritt. Plant Microsoft doch sämtliche Plattformen auf einen gemeinsamen Nenner zu bringen und somit die Interoperabilität zu maximieren (ein kleiner Seitenhieb auf die stark fragmentierte Android-Welt sei hier einfach erlaubt). Doch es stellt sich die Frage, wie dieser Wechsel vollzogen und wie groß der Kollateralschaden wird…

Im Wesentlichen gibt es dazu bisher folgende Aussagen:

  • Windows Phone 7 (WP7) wird nicht auf Windows Phone 8 (WP8) aktualisiert werden können
  • WP7 bekommt ein Feature-Update und erhält somit zumindest die WP8 Features, die zu WP7 kompatibel sind
  • WP7 Apps werden auf WP8 funktionieren (keine Anpassungen notwendig)

Nüchtern betrachtet ist die Welt also vollkommen in Ordnung

WP8 wird einige hardwareabhängige Funktionen mit sich bringen, die ihr volles Potenzial erst auf einem neuen Gerät entfalten können. Diese Features hätte Microsoft bei einem Update auf WP8 ausblenden müssen. Außerdem stellt sich wieder das Problem, dass hier ein neues OS mit neuem Kernel auf Legacy Hardware unterstützt werden müsste. Das ist nicht unbedingt wartungsfreundlich und macht die Welt mit Sicherheit nicht einfacher. Die bisherigen Verkaufszahlen sind dabei außerdem gering genug, dass Microsoft auf diesen Schritt aus wirtschaftlicher Sicht verzichten sollte, um sich stattdessen mehr auf die eigentlichen Features zu konzentrieren. Warum dann nicht einfach die WP8-seitigen Features nehmen, die mit WP7 Hardware kompatibel sind und als separates OS Update herausbringen? Aus meiner Sicht ist das ein absolut logischer und vernünftiger Schritt in die richtige Richtung. Chapeau Microsoft!

Hinzu kommt, dass sämtliche bisher veröffentlichten Apps auch weiterhin funktionieren werden, wo ist also das Problem? Ganz einfach:

Transparenz & Kommunikation

Seit Monaten ist bekannt, dass WP8 auf dem Windows 8 Kernel aufsetzt und ebenso lange herrscht Unsicherheit darüber, was dies für die Entwickler bedeuten wird. Warum wird hier nicht gleich offen kommuniziert, um gar nicht erst so eine massive Unsicherheit entstehen zu lassen? Warum wird statt dessen zuerst bekannt gegeben, dass ein Update möglich ist, dann wieder dass es nicht möglich ist, um dann zuletzt bekannt zu geben, dass es ein Feature-Update geben wird? Für die Entwickler herrscht hier keine Transparenz, sondern Unsicherheit und für die Käufer der Geräte ist es nicht anders. Warum sollte zum jetzigen Zeitpunkt ein WP7 gekauft werden, wenn in ein paar Monaten WP8 herauskommt auf das nicht aktualisiert werden könnte? In den meisten der Fälle wird es wohl dank des Feature-Updates keine Probleme geben, wobei das natürlich von den WP8-spezifischen Updates abhängig ist.

Microsoft stand sich durch gefühlt planloses Vorgehen selbst im Weg, statt einfach frühzeitig Entwarnung zu geben. Dabei ist die Lösung nachvollziehbar und zeigt, dass die ganze Aufregung eigentlich umsonst war.

Wenn Apollo (nebenbei bemerkt war die Apollo 8 im Jahre 1968 der erste bemannte Flug zum Mond) nun also nicht von den Entwicklern und Benutzern sprichwörtlich auf den Mond geschossen werden, sondern stattdessen eher den Mond erobern soll, dann täte Microsoft gut darin, in Sachen Windows Phone Öffentlichkeitsarbeit noch eine Schippe draufzulegen. Es bleibt nun also zu hoffen, dass die Windows Phone Summit am 20.6.2012 endlich Licht ins Dunkel und Ordnung ins Chaos bringt und somit die offenen Fragen z.B. nach der Zukunft für Zune in Windows 8 klären wird.

Projektmanagement: Team Foundation Server mit Project und Excel – Teil 1

„Projektmanagement ist für Projektmanager. Quellcodeverwaltung ist für Entwickler.“ Diese Doktrin bestimmt den allgemeinen Tenor in der Softwareentwicklung. Doch wer übernimmt das Projektmanagement während der Arbeit mit einem Team Foundation Server? Oftmals der Entwickler, da Projektmanager sich hier einfach nicht „zuhause“ fühlen.

Viele Projektmanager können sehr gut mit Werkzeugen wie PowerPoint, Excel und Project umgehen, sind jedoch nicht in der Bedienung des TFS geschult. Somit bleibt die Pflege und das Management der Entwicklungsprojekte innerhalb vom TFS dem Entwickler überlassen, obwohl dies eigentlich die Aufgabe des Projektmanagers wäre. image

Neben der Zuständigkeitsfrage ist das doppelte Erledigen von Aufgaben zeitraubend. Der Projektmanager beobachtet den Fortschritt der Projekte auf Basis manuell gepflegter
Diagramme. Deren Pflegeaufwand könnte eingespart werden,  da alle notwendigen Daten sowie fertige Reports und auch Trendaussagen vom TFS bereits frei Haus geliefert werden.

Damit jeder mit dem Werkzeug arbeiten kann, welches er beherrscht und darüber hinaus am besten für seine Arbeit geeignet ist, bietet sich die Nutzung der Integrationsfeatures an, welche die Zusammenarbeit zwischen dem TFS und Microsoft Project mühelos gelingen lässt. Der zentrale Dreh- und Angelpunkt ist dabei das Work Item-Tracking.

Eins der zentralen Probleme ist die fehlende Übersicht über den Verlauf einzelner Work Items Arbeitsaufgliederungszeitplan in Team Explorerinnerhalb des TFS. Microsoft Project hingegen bietet diese Möglichkeit und durch die Nutzung der Integrationsfeatures kann Microsoft Project nicht nur zum Betrachten der Work Items, sondern auch zum Anlegen dieser verwendet werden.

Im Rahmen dieser Artikelserie werde ich diverse Aspekte der Zusammenarbeit zwischen dem TFS, Microsoft Project und Microsoft Excel erläutern und Wege aufzeigen wie Probleme, die in der Kommunikation zwischen Projektmanager und Entwickler bestehen, gelöst werden können.

Die Serie gliedert sich inhaltlich in folgende Abschnitte:

  • Projektmanagement mit dem TFS – Ein Anfang mittels Work Item-Tracking
  • Alles in einer Hand. Entwicklungsprojekte planen mit Microsoft Project
  • Jetzt wird’s ernst: Zeit- und Ressourcenverwaltung
  • Planung ersetzt das Chaos durch den Irrtum: Agil bleiben mit Microsoft Project
  • Von Experten für Experten: Anpassung von Microsoft Project Feldzuordnungen

Projektmanagement mit dem TFS: Ein Anfang mittels Work Item-Tracking

Im Rahmen dieses Artikels werde ich mich vorzugsweise auf den Top-down Modellierungs-Prozess beziehen.

Im Zentrum des Projektes steht das Ziel des Projekts, das durch das Abarbeiten der Work Items umgesetzt werden soll. Das Work Item stellt somit den Schnittpunkt der zu erledigenden Aufgaben und dem Code dar. Mit Work Items kann der Projektleiter das Erreichen des Projektzieles besser planen und die Teammitglieder haben eine Übersicht der zu erledigenden Aufgaben. Je nachdem welche Art von Softwareentwicklungsmodell man verfolgt (MSF for Agile Software Development, MSF for CMMI Process Improvement, Scrum) unterscheidet sich die Art der Work Items sowie die Arbeitsweise der Teammitglieder.

Bevor mit dem Schreiben des Quellcodes begonnen werden kann, muss ein Teamprojekt im TFS existent sein. Davon ausgehend, dass der Projektleiter auch als Projektadministrator innerhalb des TFS fungiert, legt dieser das Teamprojekt an. Dabei selektiert der Projektadministrator die im Team verwendete Prozessvorlage für das Softwareentwicklungsmodell und bestimmt welche Teamprojektsammlung für das neue Projekt verwendet werden soll.

Wenn das Projekt angelegt ist, können die Teammitglieder dem Projekt zugeordnet werden. Sollte der TFS in einer Umgebung mit einem Active Directory betrieben werden, empfiehlt es sich, die Benutzerberechtigungen über AD-Gruppen zu steuern. Einige Gruppen werden vom TFS automatisch für ein neues Teamprojekt definiert: Lesezugriff (Readers), Schreibzugriff (Contributors), Administratoren (Project Administrators) und eine interne Gruppe zum Buildmanagement (Build Services).

Steht der imageGrundaufbau des Projektes, muss dieses nun nur noch mit den zu erledigenden Aufgaben gefüllt werden: den Work Items. Im Visual Studio wird dies über den Team Explorer realisiert. Sobald eine Verbindung zu der entsprechenden Teamprojektsammlung besteht, können für das ausgewählte Projekt Work Items angelegt werden.

Soll Quellcode an den TFS übergeben werden sollen, kann man diese Änderung mit einem Work Item verbinden. Zudem kann eine solche Zuordnung durch den Projektadministrator als verpflichtend gesetzt werden. In dem Work Item müssen dann die Zeiten erfasst werden (noch verbleibende Zeit und benötigte Zeit), damit im späteren Verlauf eine Auswertung über die effektive Zeit des Projektes gemacht werden kann.

Die Möglichkeiten in der Softwareentwicklung mit TFS, Excel und Project

Bei sehr umfangreichen Projekten wird man schnell feststellen, dass die Übersicht der Work Items im Visual Studio nicht mehr ausreicht.Arbeitsaufgliederung von Aufgaben in Excel Für die Erfassung oder um die Aufgabenplanung bei kleineren Projekten (~200 Work Items) tabellarisch darzustellen kann Excel eine große Hilfe sein. Mit Hilfe des Work Item Addins können die Work Items aus dem TFS nach Excel importiert und dort offline bearbeitet werden. Das hat mehrere positive Effekte: Zum einen können Änderungen an den Arbeitsaufgaben gemacht werden, ohne dass eine aktive Verbindung zum TFS bestehen muss und zum anderen, dass die Übersicht wesentlich besser ist, als im Visual Studio. Natürlich kann man auch Auswertungen über Excel machen. Die Änderungen können jederzeit an den TFS übertragen werden. Hierbei werden nur geänderte oder neue Arbeitsaufgaben an den TFS übertragen. Für den Projektmanager bietet Microsoft Project eine ähnliche Funktionalität: Man kann aus den vorhandenen Work Items einen Projektplan erzeugen lassen und erhält schnell und einfach einen Überblick über das gesamte Projekt. Da der Projektmanager oftmals mit Microsoft Project besser umgehen kann, als mit dem Visual Studio, kann er die Work Items auch einen Projektplan ausarbeiten und diesen dann an den TFS weitergeben. Auch in Project muss für die Synchronisation eine Verbindung zum TFS vorhanden sein. Die Offline-Funktionalität stellt somit sowohl bei Excel, als auch bei Project eine gute Möglichkeit für Präsentationen wie z. B. einen Kundenworkshop für Fehlerdiagnosen dar.

Somit ergeben sich die folgenden Punkte:

Mit Excel

  • können zeitsparend Massenoperationen vorgenommen werden
  • können die Work Items in einer tabellarischen Hierarchie Betrachtet und Bearbeitet werden

Mit Project

  • existiert ein vertrautes Tool zum Betrachten und Bearbeiten von Projektplänen
  • können Gant-Charts erstellt und Kollisionen der Work Items überwacht werden

Zusammen stellen der TFS, Excel und Project ein sehr mächtiges Werkzeug zum Verwalten von Projekten dar.

Die Projektplanung mit Project und Excel werde ich im nächsten Blogartikel dieser Serie demonstrieren.

INotifyPropertyChanged - Das Elend hat (fast) ein Ende

Mit Visual Studio 2012 kommen neue Compiler und das .NET Framework 4.5 daher. Soweit nichts Ungewöhnliches. Natürlich gibt es auch jede Menge neue Sprachfunktionen und Bibliotheken. Besondere Aufmerksamkeit verdienen dabei die sog. Caller Info Attributes, die mit Visual Studio 2012 eingeführt werden und mit denen dem Entwickler ein eleganter Weg geöffnet wird, das PropertyChanged Event auszulösen.

Zur Auffrischung: Das Interface INotifyPropertyChanged stellt sicher, dass das PropertyChanged Event implementiert wird. Sind Klassen datengebunden, erfährt das Framework so, dass sich die Daten geändert haben. Im Setter eines jeden Properties muss dazu dieses Event ausgelöst werden; die Crux dabei ist allerdings, dass die PropertyChangedEventArgs dazu einen String-Parameter mit dem Namen des jeweiligen Properties verlangen.

Sollte sich im Nachhinein der Name ändern, kann wird es zu unerwartetem Verhalten kommen, wenn nicht daran gedacht wurde, auch den Magic String im Property Setter zu aktualisieren. Speziell dieses Thema ist mitunter schon viel diskutiert und auch in Form eines Coding Dojos der dotnetpro verarbeitet worden (Stichwort: “Unit Tests”).

Der folgende Code zeigt vereinfacht das klassische Vorgehensmodell:

 1:  public class Person : INotifyPropertyChanged
 2:  {
 3:     public event PropertyChangedEventHandler PropertyChanged;
 4:  
 5:     public string Name
 6:     {
 7:         get { return name; }
 8:         set
 9:         {
 10:             if (value != name)
 11:             {
 12:                 name = value;
 13:  
 14:                 // Call OnPropertyChanged whenever the property is updated
 15:                 RaisePropertyChanged("Name");
 16:             }
 17:         }
 18:     }
 19:  
 20:     private void RaisePropertyChanged(string member)
 21:     {
 22:         var handler = PropertyChanged;
 23:  
 24:         if (handler != null)
 25:         {
 26:             handler(this, new PropertyChangedEventArgs(member));
 27:         }
 28:     }
 29:  
 30:     private string name;
 31: }

 

Es ist nicht schwer sich vorzustellen, wie aufgebläht der Code wird sobald es nicht mehr nur um ein, sondern um spürbar mehr Properties geht.

Das .NET Framework 4.5 bietet hierfür eine Lösung an, indem es mit den neuen Caller Info Attributes einer aufgerufenen Methode Informationen über den Aufrufer quasi frei Haus mitzuliefert. Das folgende Beispiel verdeutlicht das anhand des CallerMemberName Attributs:

 1: protected void RaisePropertyChanged([CallerMemberName] string member = "")
 2: {
 3:   var handler = PropertyChanged;
 4:  
 5:   if (handler != null)
 6:   {
 7:     handler(this, new PropertyChangedEventArgs(member));
 8:   }           
 9: }

Der Methode RaisePropertyChanged muss nun nicht mehr der Name des Properties übergeben werden. Durch das Attribut CallerMemberName, das im NameSpace System.Runtime.CompilerServices enthalten ist, geschieht dies implizit.

Eine Möglichkeit, um nun die neue RaisePropertyChanged Methode nicht in jeder Klasse implementieren zu müssen, ist übrigens ganz einfach die Vererbung.

 1: public abstract class BaseBO : INotifyPropertyChanged
 2: {
 3:     public event PropertyChangedEventHandler PropertyChanged;
 4:  
 5:     protected void RaisePropertyChanged([CallerMemberName] string member = "")
 6:     {
 7:         var handler = PropertyChanged;
 8:  
 9:         if (handler != null)
 10:         {
 11:             handler(this, new PropertyChangedEventArgs(member));
 12:         }           
 13:     }
 14: }

 

Damit reicht es aus, die betroffenen Klassen einfach von der Klasse BaseBO abzuleiten (bei uns werden i.d.R. Fachobjekte an Views gebunden, daher der Name: BO = Business Object). Das reduziert den Aufwand für die Entwicklung von datengebundenen Klassen auf ein Minimum.

Und nun?

Und nun werden noch Wetten angenommen, ob in .NET 5 dann endlich einzelne Properties bis hin zu Klassen mit der Anweisung dekoriert werden können, dass die Properties im Falle einer Änderung das Event selbstständig auslösen sollen. AOP hat es bereits vorgemacht.

Stefan Lieser hat übrigens vor einiger Zeit in die Lambda-Trickkiste gegriffen und schon vor .NET 4.5 eine Lösung aufgezeigt, ohne Magic Strings das PropertyChanged Event auszulösen. Mehr dazu auf seinem Blog.

Distributed Kanban. Wenn nicht ich… wer dann?

Was war zuerst da? Henne oder Ei? Mittlerweile ist die Antwort auf die Frage zwar weitestgehend bekannt, aber dennoch stellt sie eines klar: Irgendetwas ist immer zuerst da. Der Rest kommt dann schon. Irgendwann.

Auf Kanban bezogen könnte das z.B. so aussehen: Ihr Team ist bereits ein wenig in die Jahre gekommen hat bereits viele Jahre Erfahrungen in der Entwicklung von Enterpriseapplikationen und zeigt sich skeptisch in Hinsicht auf neumodische Verfahren zur Arbeitsorganisation? Kanban klingt zu sehr nach einem klingonischen Altbier denn einer schlanken Methode, Blockaden im Arbeitsfluss aufzudecken und Überlast greifbar zu machen? Dann hilft vielleicht Distributed Kanban.

Wenn nicht ich… wer dann?

Distributed KanbanEiner muss anfangen. Und manchmal hilft es, wenn man selbst derjenige ist. Wer sonst wäre besser dazu geeignet, den effektiven Nutzen von Kanban im Softwareentwicklungsprozess positiv zu demonstrieren? Und das geht so:

  1. Auf dem eigenen Whiteboard wird passend zu dem laufenden Projekt eine klassische Kanban Aufteilung vorgenommen
  2. Es wird ein Template mittels Word erstellt auf dessen Basis Sets an Kanban Karten ausgedruckt werden können
  3. Lustige Avatare, auf bunte Magnete geklebt erhöhen den individuellen Spaßfaktor

Und was dann? Dann organisiert man seine eigene Arbeit (z.B. WorkItems) auf seinem eigenen Whiteboard. Auch ohne Tools starten zu müssen, Abfragen zu erstellen oder “Moment, ich suche das mal eben raus…” antworten zu müssen auf die Frage: “Wie ist der Stand der Dinge?”, die der Teamleiter bevorzugt morgens um 7:55 Uhr zu stellen pflegt, reicht ein Blick auf das eigene Whiteboard, um alle Fragen beantworten zu können. Und sobald zu viele Aufgaben den Weg in das eigene Büro finden, lässt sich sofort darauf reagieren. Die Erfahrung der Greifbarkeit, oder Neudeutsch: Haptik wird schnell auch die Kollegen neugierig machen.

Und wenn das nicht reicht, brechen die lustigen Avatare auf jeden Fall das Eis. Der überwiegende Teil des Teams antwortet mit “Ja, ich weiß.”, wenn der Ehepartner ein Telefongespräch mit “Ich liebe Dich!” beendet? Dann sind vielleicht Starwars-Charaktere empfehlenswert. Auf Regressionsfehler reagieren die Kollegen mit einem lautstarken “D’oh!”… wie wäre es mit Simpsons-Figuren? Sehr beliebt und aufgrund der meist runden Form von Tafelmagneten sind auf jeden Fall auch die Bewohner der illustren Stadt Southpark.

Sobald weitere Kollegen einsteigen – selbst wenn es zunächst nur deshalb geschieht, damit auch sie die coolen Magnete bekommen – dann können Karten sogar untereinander ausgetauscht werden, falls ein anderer Entwickler Arbeitspakete übernimmt (“distributed”).

Und wenn einmal die Hemmschwelle überschritten ist, wird endlich ein großes Kanban-Board für das gesamte Team eingeführt.

Aber egal wie Sie es anstellen: Fangen Sie an!

Ü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