Archiv

Archive for Juni 2011

Buch-Rezension zu „Waltzing with Bears“

27. Juni 2011 1 Kommentar

Waltzing with Bears: Managing Risk on Software Projects“ von Tom DeMarco und Timothy Lister erschien 2003 bei Dorset House. Risikomanagement ist etwas was nicht erst in den letzten Jahren aktuell wurde. DeMarco und Lister haben ihre Erfahrungen in dieses knapp 200 Seiten umfassenden Buch einfliessen lassen. Wie meist bei DeMarco ist das Buch trotz der vielen Theorie sehr angenehm zu lesen.

 
 
 
 
Die einzelnen Teile des Buches gehen diesen Fragen rund ums Risikomanagement nach:

  • Warum?
  • Wann nicht?
  • Wie?
  • Wie viel?
  • Wird’s gemacht?

Im ersten Teil wird auf anschauliche Art erklärt was Risiken sind und wieso man vor ihnen nicht weglaufen kann. Projekte die ganz ohne Risiko sind haben meist auch nur sehr wenig finanzielle Anreize, wodurch man früher oder später hinter die risikoreichen Projekte muss.

 
Wann auf Risikomanagement verzichten?
Teil 2 geht dann auf die Situationen ein, wo man besser auf ein Risikomanagement verzichtet. Dies mag einen erstaunen, doch gibt es solche Situationen wirklich. Es macht schlicht keinen Sinn in einer Firma die nur Ja-Sager will von Dingen wie Risiken zu sprechen. Bei Risiken spricht man von Möglichkeiten und Unsicherheiten. Ein Firmenmotto wie

It’s okay to be wrong, but not okay to be uncertain.

steht diesem Vorhaben im Weg. Eine andere Situation ist wenn Glück integraler Bestandteil des Projektplans ist. Dabei ist nicht gemeint dass man mit ein wenig Glück vielleicht ein wenig früher fertig wird. Sondern das man bei allen Schritten viel Glück braucht damit man überhaupt auch nur im Entferntesten diesen Plan umsetzen kann.

 
Wie managt man Risiken?
Gut die Hälfte des Buches widmet sich der Frage wie man Risiken managen kann. Als erstes Beispiel dient das Risiko des verpassten Liefertermins. Mittels Terminkurven wird die Wahrscheinlichkeit des Lieferzeitpunktes untersucht. Die eine Grenze bildet der frühestmögliche Zeitpunkt (N) unter optimalsten Bedingungen, die andere ist der Termin bei dem man sicher fertig sein wird (und damit viel weiter in der Zukunft liegt als das Projekt dauern soll).

Der Punkt N wird hier als Nano-Prozent Datum definiert. Die Chancen zu diesem Zeitpunkt zu liefern sind grösser als 0, aber immer noch verschwindend gering. Leider wird dieser Zeitpunkt aber oft als Liefertermin benutzt, was zu all den bekannten „Verzögerungen“ führt.

Wie geht man nun mit diesem Risiko um? Die Autoren schlagen vor Anzeichen für ein Eintreten zu sammeln und zu überwachen. Davon erhofft man sich bei ersten Anzeichen noch reagieren zu können. Allerdings gilt es bei grösseren Risiken Vorkehrungen zu treffen. Genau wie bei einer Versicherung muss man sich vor dem Eintreffen des Schadensereignisses darum kümmern. Dabei muss man wieder abwägen wie viel einem eine Vorkehrung für etwas das nur vielleicht eintreffen wird wert ist. Es wäre kein Buch von DeMarco wenn es dazu nicht auch zahlreiche Formeln und betriebswirtschaftliche Grundlagen gäbe.

Neben der Terminüberschreitung gibt es auch zu anderen häufigen Risiken bei Software Projekten (wie Explosion der Anforderungen oder Personalfluktuation) Beispiele die nach dem gleichen Muster angegangen werden.

 
Risiken minimieren
DeMarco und Lister haben auch etliche Ansätze zum Reduzieren der Risiken. Für die Lieferverzögerung ist ihr Ansatz die Software in mehreren Teilen zu liefern. Mit doch recht vielen Worten wird ein vorgehen erklärt das anhand des Nutzens für den Kunden Teile abgrenzt und zu Lieferpaketen gruppiert. Aus heutiger Sicht ist einem so ein Vorgehen aus Scrum oder XP bekannt und bräuchte weniger Erklärungsbedarf.

 
Kosten, Nutzen und Risikobereitschaft
Wie auch bei „Software by Numbers“ sollten für etliche Berechnungen sowohl die Kosten wie auch der Nutzen vorliegen. DeMarco und Lister sind diesbezüglich aber ein wenig realistischer:

Cost = $6,235,812.55
Benefit = „We gotta have it.“

Ein wenig mehr Erklärung wie man dann aber doch zu genügend guten Zahlen kommt hätte in dem Buch noch Platz finden sollen.

Ein weiteres schönes Zitat zur Risikobereitschaft zeigt eines der grossen Probleme bei Software Projekten:

Take lots of risks when the benefit is negligible. How else can we possible get costs down enough to justify this loser project?

Dies steht im Wiederspruch zu dem was man eigentlich erwarten würde: Viel Risiko wenn es viel zu gewinnen gibt, wenig Risiko wenn der mögliche Nutzen minimal ist. All die Death-March Projekte zeigen aber das DeMarco und Lister auch hier recht haben. Leider.

 
Fazit
Ich finde das Buch ist ein guter Einstieg ins Thema. Es deckt die 20% des Themas Risikomanagement ab die rund 80% des Nutzens beinhalten. Damit ist aber auch klar dass man nach dem Lesen kein Experte für Risikomanagement sein kann.

Ein wenig mehr Wissen über Risiken im Entwicklerteam würde noch so manchem Projekt gut tun. Dazu kann man dieses Buch gut nutzen.

 
Zum Buch
Waltzing with Bears: Managing Risk on Software Projects” von Tom DeMarco und Timothy Lister, 2003 Dorset House

Schlagworte: , , ,

Tipps für die Vorbereitung der Zertifizierung 70-516 (Accessing Data with .Net 4)

24. Juni 2011 2 Kommentare

Ich persönlich fand die Prüfung für die Zertifizierung 70-516 eine grosse Herausforderung. Dies lag vor allem an den vielen Themen die abgefragt werden. Auch wenn ich zur Prüfung selber nichts sagen darf, so kann ich doch einige Tipps für die Vorbereitung geben.

 
Prüfungsumfang
Zu allen Zertifizierungen von Microsoft gibt es eine offizielle Seite, die den Prüfungsumfang beschreibt. (Will man etwas zu einer anderen Zertifizierung wissen passt man einfach die Nummer am Ende der URL an). Diese Seite sollte man unbedingt durchlesen. Neben allen geprüften Themen beinhaltet die Seite auch Informationen über das erwartete Vorwissen und eine Übersicht über Vorbereitungsmaterialien.

Wie man auf der Seite sehen kann beinhaltet diese Zertifizierung zahlreiche Themen:

  • Entity Framework
  • SQL
  • LINQ
    • LINQ to SQL
    • LINQ to Entities
  • XML
  • WCF

Wie es der Title der Prüfung ausdrückt geht es dabei vor allem um den Datenzugriff. (Wie man beispielsweise WCF konfiguriert und was es alles für Möglichkeiten der Datenübertragung gibt ist Teil der Zertifizierung 70-513)

 
Bücher
Als Buch zur Prüfungsvorbereitung kann ich „Programming Entity Framework 2nd Edition“ von Julia Lerman sehr empfehlen. Das Buch deckt alles ab was man über EF wissen muss und hilft einem auch für die WCF Fragen.

 
Videos
Von TekPub gibt es 2 gute Serien die für diese Zertifizierung sehr hilfreich sind:

  • Mastering Entity Framework“ zeigt neben der ganzen Theorie hinter Entity Framework vor allem auch wie man damit arbeitet und wo man die einzelnen Einstellungen vornehmen kann.
  • Mastering LINQ“ liefert alles was man zu LINQ wissen muss. Justin Etheredge gelingt es die Grundlagen von LINQ ebenso gut zu erklären wie die Spezialfälle.

 
Tools
Mit den Express Editionen von Visual Studio und dem SQL Server hat man schon fast alles was man für die Prüfungsvorbereitung benötigt. Für alle Abfragen in LINQ oder EF empfiehlt sich zudem noch LINQPad.

 
MSDN
Alle Stichworte des Prüfungsumfangs kann man auch auf MSDN suchen. Die Erklärungen dort sind gut um noch mehr zum einzelnen Thema zu erfahren, aber aus meiner Sicht nicht so geeignet um ein Gesamtbild zu erhalten.

 
Training Kit
Ende Juni soll nun auch endlich Training Kit von Microsoft Press zur Zertifizierung 70-516 erscheinen. Dies macht die Vorbereitung wohl ein wenig einfacher, da man sich nicht mehr alles selber zusammensuchen muss. Über die Qualität dieses Kits kann ich allerdings (noch) nichts sagen.

 
Selber programmieren
Für die Technology Specialist Zertifizierungen genügt es nicht nur die Theorie zu kennen. Man sollte also genügend Zeit einrechnen um die Beispiele selber umzusetzen. Idealerweise kann man das Wissen in einem Projekt unter realen Bedingungen festigen. Dort findet man dann sehr schnell die realen Probleme und Herausforderungen.

 
Fragenkatalog von MeasureUp
MeasureUp ist ein Partner von Microsoft und liefert unter anderem die Fragenkataloge bei den Training Kits. Den Katalog zu 70-516 fand ich in der letzten Phase meiner Vorbereitung sehr hilfreich. Neben einer detaillierten Erklärung wieso Antwort A korrekt ist und nicht B, C oder D waren die Links auf MSDN sehr praktisch. Man landet so direkt an der richtigen Stelle ohne noch viel suchen zu müssen. Bezüglich der Details und der Schwierigkeit sind die Fragen sehr nahe an der Prüfung.

 
Was fehlt
Für XML hatte ich nicht gross abseits von MSDN nach Material gesucht. Falls jemand eine gute Quelle dazu hat würde ich mich über einen entsprechenden Tipp freuen.

 
Ich hoffe damit allen geholfen zu habe die sich auf die Zertifizierung vorbereiten wollen.

Schlagworte: , ,

Kurz-Tipp: Strecken messen in OpenStreetMap

17. Juni 2011 1 Kommentar

OpenStreetMap wächst und wächst. So ist es kaum erstaunlich dass immer mehr Leute für verschiedenste Dinge die Kartendaten nutzen möchten. Die Weboberfläche auf openstreetmap.org ist für die Suche und das Anzeigen der Karte sehr gut geeignet.
Möchte man aber eine Strecke messen steht man vor einer Herausforderung. Natürlich kann man sich anmelden, sich in die Editiertools einarbeiten und damit dann eine Wegstecke messen. Dies ist allerdings für die meisten Benutzer keine Option.

Dank dem Lizenzmodell darf man die Daten ja auch ausserhalb nutzen. Als ich letzthin ebenfalls nur kurz was messen wollte bin ich auf die Webseite von World OSM WMS gestossen. Mit einer ebenfalls recht simplen Webseite kann man dort genau das machen: Strecken und Flächen messen.

Nachdem man den gewünschten Kartenausschnitt gewählt hat, kann man mit dem Messen der Strecke beginnen. Dazu unter (1) das entsprechende Icon anklicken. Am gewünschten Startort (2) auf die Karte klicken und mit einem weiteren Klick das Ende (3) markieren. Optional kann man auch beliebig viele Zwischenpunkte (4) einfügen. Die Länge der so definierten Strecke wird unterhalb der Karte (5) angezeigt. Möchte man den Kartenausschnitt nach dem Messen verschieben genügt ein Klick auf (6) damit man wieder navigieren kann.

Wie ich finde etwas sehr praktisches das dem einen oder anderen Leser helfen könnte.

Schlagworte:

MIX 11: Sehr gute Videos zu Windows Phone 7

6. Juni 2011 Kommentare aus

Mitte April fand in Las Vegas die MIX 11 statt. Dies ist die alljährlich von Microsoft veranstaltete grosse Web-Konferenz. Neben zahlreichen Themen rund um die Webentwicklung war dieses Jahr Windows Phone 7 (WP7) ein grosses Thema. So ging es in 28 der 124 Sessions um Erkenntnisse aus dem ersten halben Jahr WP7 und was die nächste Version (Mango) alles für Vereinfachungen bringt.

Jede Session dauert rund eine Stunde. Da nicht jeder Zeit hat alle Videos anzuschauen möchte ich diesen Blogpost nutzen um einige Sessions vorzustellen, die mir besonders gefallen haben. Wer noch andere besonders sehenswerte Sessions kennt soll doch bitte einen Kommentar hinterlassen. Ich würde mich über weitere Tipps (gerne auch zu anderen Themen) freuen.

 
Deep Dive MVVM (von Laurent Bugnion)
Das Einsatzgebiet von MVVM beschränkt sich nicht nur auf WP7, doch ist dieses Pattern auch dort sehr verbreitet. Laurent Bugnion zeigt in dieser Präsentation wie man einige der häufigsten Probleme bei MVVM lösen oder mindestens elegant umgehen kann. Wer an den TechDays 2011 in Basel war wird die Anwendung die dabei erstellt wird wiedererkennen.

 
The Tale of Two Apps: Making a Splash in the Windows Phone Marketplace (von András Velvárt und Bálint Orosz)
Das Metro-Design scheint auf den ersten Blick die Freiheit der Entwickler deutlich einzuschränken. Die beiden Applikationen “Cocktail Flow” und “SurfCube 3D Browser” zeigen das dies nicht so sein muss. Neben den kreativen Ansätzen und dahinterliegenden Ideen zeigen Velvárt und Orosz auch mit welchen Problemen sie während der Entwicklung zu kämpfen hatten.

 
Who Would Pay For That Feature? Adding Analytics to Your Windows Phone 7 Applications (von David Poeschl)
David Poeschl zeigt in dieser Session was es alles für Möglichkeiten gibt die Benutzung einer WP7 App zu überwachen. Vorgestellt wird dabei vor allem die Lösung von PreEmptive Solutions. Mit deren kostenlosen Dienst kann man neben der Dauer und Häufigkeit der Benutzung auch detailliert erfahren welche Funktionen der eigenen App wirklich verwendet werden. Wie man das Interesse der Entwickler und den Datenschutz der Kunden vereinen kann wird dabei ebenfalls dargelegt.

 
Analyzing and Improving Windows Phone Application Performance (von Jeff Wilcox)
Die Zeiten von unlimitierten Resourcen und Memory ohne Ende sind vorbei – jedenfalls wenn man für den mobilen Bereich programmiert. Nachdem man sich als Entwickler daran gewöhnt hatte das man sich um die Schonung von Resourcen keine Gedanken machen muss steht man nun vor einem Gerät auf dem man maximal 90 MB Ram nutzen darf. Und plötzlich zählt wieder jedes MB an Ram und jedes KB bei der Datenübertragung.
Jeff Wilcox zeigt in seiner Session wie man mit den Tools von Microsoft seine App überwachen und die grössten Resourcenverschwender auffinden kann. Wie man es dann besser macht fehlt ebenso wenig wie generelle Tipps zur Verbesserung der Performance – oder mindestens deren Wahrnehmung.

 
Get Real! Sketch, Prototype, and Capture Great Ideas with Expression Blend and SketchFlow (von Sara Summers)
Sara Summers zeigt wie man mit SketchFlow Prototypen erzeugen kann. Ohne viel Code kann man so prüfen ob die Ideen die man hat so auch funktionieren könnten. Noch fast besser fand ich die Idee mit den Screens auf Papier. Ganz ohne Computer einfach kurz aufzeichnen was man sich so vorstellt macht allen beteiligten schnell klar was man erreichen will. Hat man die Skizze schon in der Grösse des Telefon-Screens gezeichnet merkt man so auch schnell was für die Benutzung angenehm ist – zu kleine Knöpfe oder zu viele Daten fallen so viel schneller auf als wenn man es nur aufs Whiteboard zeichnet.

 
New Data Access Features Coming to Windows Phone (von Sean McKenna)
Mango wird es dem Entwickler ermöglichen die Daten in einer Relationalen DB zu speichern. Dazu greift man mit LINQ to SQL auf den SQL Server Compact (SQL CE) zu. Dies mag erstaunen, hiess es doch das LINQ to SQL tot sei. Bei limitierten Resourcen scheint man nun aber eine Nische dafür gefunden zu haben. Ich bin gespannt wie es mit dieser Technologie weiter gehen wird.
Man wird in Mango auch auf den Kalender und das Adressbuch zugreifen können. Leider nur read-only, was die Möglichkeiten für eigene Anwendungen doch schon wieder limitiert.

 
 

Soweit meine Favoriten der MIX rund um WP7. Wer noch weitere Sessions kennt die man unbedingt gesehen haben muss soll bitte einen Kommentar hinterlassen.

Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 245 Followern an