Freitag, 29. August 2014

Mit Strategie zum Erfolg.

Entwurfsmuster für Algorithmen

Artikelübersicht
1. Teil Folgt der Algorithmus einem Muster?
2. Teil Mit Strategie zum Erfolg.


Manchmal gibt es viele verschiedene Algorithmen, die am Ende das Gleiche erledigen, nur eben auf unterschiedliche Art und Weise. Es kommt auf die Umstände an, welchen dieser Algorithmen Sie benutzen wollen oder müssen. Sie streben ein Ziel an, berücksichtigen die Mittel und Umstände, dann entscheiden Sie sich und wählen eine Strategie. Auch unter den Entwurfsmustern gibt es eines, welches Ordnung in eine Familie von Algorithmen bringt. Die Gang of Four definiert den Zweck des sogenannten Strategy Pattern wie folgt: "Definiere eine Familie von Algorithmen, kapsele jeden einzelnen und mache sie austauschbar. Das Strategiemuster ermöglicht es, den Algorithmus unabhängig von ihn nutzenden Klienten zu variieren." [S.373, GOF11]

Freitag, 22. August 2014

Folgt der Algorithmus einem Muster?

Entwurfsmuster für Algorithmen

Artikelübersicht
1. Teil Folgt der Algorithmus einem Muster?
2. Teil Mit Strategie zum Erfolg.


In der Reihe Managementaufgaben habe ich mich in zwei Posts mit dem Priorisieren von Artefakten beschäftigt. In dem Post Was soll ich zuerst tun? Die Qual der Wahl wurde beschrieben, wer was nach welchen Kriterien priorisieren sollte. Im Post Prioritäten verteilen ist eine Kunst wurden dann eine Reihe einfacher Priorisierungsmethoden erläutert. Innerhalb des Requirements-Engineering-Prozesses stellt das Priorisieren einen wichtigen Teilschritt des Gesamtprozesses dar. Es ist somit Teil eines Algorithmus. "Ein Algorithmus ist eine eindeutige Folge von Anweisungen, die in endlicher Zeit auf die Lösung eines bestimmten Problems führt." [S.23, HAGG04]

Freitag, 15. August 2014

Prioritäten verteilen ist eine Kunst.

Managementaufgaben

Artikelübersicht
1. Teil Managementaufgaben zwischen Fremd- und Selbstverwaltung.
2. Teil Was soll ich zuerst tun? Die Qual der Wahl.
3. Teil Prioritäten verteilen ist eine Kunst.
4. Teil Nur ein Fool wählt gleich ein Tool und ein Plädoyer gegen Monsterprogramme.
5. Teil Wer weiß schon, was alles dazu gehört? Von der Lust oder Unlust zur Versionsverwaltung.
6. Teil Im Dschungel der Nachvollziehbarkeit.
7. Teil Gib Deiner Version einen nachvollziehbaren Namen.
8. Teil Das Erstellen reproduzierbarer Software Releases.


Im letzten Post haben wir bestimmt wer priorisiert, wir haben Artefakte ausgewählt, die zu priorisieren sind und außerdem haben wir festgelegt, welches die Priorisierungskriterien sind. Die geeigneten Techniken, um diese Priorisierungen durchzuführen, hatten wir uns für den heutigen Post aufgehoben. Behalten wir im Kopf, dass es wichtig ist, sich beim Priorisieren auf die notwendigen Artefakte zu beschränken und auch die Komplexität der Kriterien zu beschränken. Im Folgenden führe ich einige Methoden auf, die sehr einfach sind und somit schnell anzuwenden. Für alle Methoden setzen wir eine Anzahl n von Artefakten voraus, die es in eine Reihenfolge zu bringen gilt.

Freitag, 8. August 2014

Startschuss zur testgetriebenen Entwicklung.

These: Gute Software benötigt gute fachliche Anforderungen.

Artikelübersicht
1. Teil Ein Objekt-Aufgaben-Modell für das Requirements Engineering.
2. Teil Der Ideenraum.
3. Teil Themenobjekte ordnen Ideen in eine Roadmap.
4. Teil Themen müssen einer Systemkontextanalyse unterzogen werden.
5. Teil Ein hierarchisches System von Kontextobjekten.
6. Teil Die Geschichten der Benutzer - User Stories erstellen.
7. Teil Die Analyse des Problemraums führt zum Zielmodell.
8. Teil Wie User Stories Use Cases gebären.
9. Teil Szenarien setzen sich zu Use Cases zusammen.
10. Teil Drei Perspektiven öffnen uns den Weg zu den Anforderungen.
11. Teil Noch mehr Zusammenhänge durch die CRUD-Matrix.
12. Teil Die Vielfalt der Szenarien.
13. Teil Qualitätsanforderungen bilden einen Übergang zur Softwarearchitektur.
14. Teil Ohne Abnahmekriterien läuft nichts.
15. Teil Startschuss zur testgetriebenen Entwicklung.


Im letzten Post habe ich die Bedeutung von Abnahmekriterien besonders betont. Sie bilden eine wichtige Schnittstelle in der Zusammenarbeit zwischen Kunden und Entwicklung. Die Annahmen, der Kunde will das ganz sicher so haben oder eigentlich wissen wir es besser als der Kunde, führen mit großer Sicherheit in die Irre. Deshalb kann ich nur noch einmal wiederholen: überzeugen Sie Ihren Kunden Abnahmekriterien zu schreiben, in seinem eigenen Interesse. In diesem Post möchte ich auf die Art und Weise eingehen, wie wir Abnahmekriterien dokumentieren.

Freitag, 1. August 2014

Was soll ich zuerst tun? Die Qual der Wahl.

Managementaufgaben

Artikelübersicht
1. Teil Managementaufgaben zwischen Fremd- und Selbstverwaltung.
2. Teil Was soll ich zuerst tun? Die Qual der Wahl.
3. Teil Prioritäten verteilen ist eine Kunst.
4. Teil Nur ein Fool wählt gleich ein Tool und ein Plädoyer gegen Monsterprogramme.
5. Teil Wer weiß schon, was alles dazu gehört? Von der Lust oder Unlust zur Versionsverwaltung.
6. Teil Im Dschungel der Nachvollziehbarkeit.
7. Teil Gib Deiner Version einen nachvollziehbaren Namen.
8. Teil Das Erstellen reproduzierbarer Software Releases.


Im einführenden Post habe ich eine Vielzahl von Managementaufgaben aufgezählt, die es zu beherrschen gilt. Eine davon ist das Priorisieren. Im Verlaufe der Entwicklung werden eine große Anzahl von Artefakten erzeugt, Anforderungen, Architekturen, Code, Abnahmetests und vieles mehr. Was davon soll zuerst getan werden? Was ist wirklich wichtig? Wie entscheiden wir das? Im Post Themenobjekte ordnen Ideen in eine Roadmap wurden finalisierte Themenobjekte durch ein Gremium priorisiert. Jedes Mitglied dieses Gremiums besaß einen Vorrat an Punkten, den es bestimmten Ideen anteilig zuordnen konnte. Die Summe der so zugeordneten Punkte brachte die Themenobjekte in eine Reihenfolge. In diesem Post erwähnte ich auch, dass andere Priorisierungsmethoden vorstellbar sind. Heute wird es um andere Priorisierungsmethoden gehen, aber auch um theoretische und organisatorische Grundlagen.