Technische Vorraussetzungen für UDD

Die technische Grundvorraussetzung für UDD ist, dass es sich bei der zu entwickelnden Software um eine Anwendungssoftware, mit einer grafischen Oberfläche, handelt. Für eine Hardwaresteuerung, ein Framework oder eine Software für den Batchbetrieb ist das Vorgehensmodell ungeeignet.

UDD setzt ein hohes fachliches Verständnis der Entwickler voraus, welches durch intensive Kommunikation mit dem Anwender geschaffen werden muss. Damit Entwickler sich auf Probleme der Geschäftslogik konzentrieren können, sollte die Entwicklung mit möglichst problemnahen Werkzeugen geschehen. Das kann durch selbstentwickelte Fachsprachen geschehen oder durch Frameworks, die entsprechende Funktionalitäten bereitstellen.

Damit UDD funktionieren kann, muss ein möglichst hoher Grad an Automatisierung in einem Projekt erreicht werden. Entwicklerdokumentation sollte aus dem Quelltext generiert werden. Quellcode und Dokumentation sollte mit Hilfe von Versionsverwaltung verwaltet werden. Das Deployment sollte möglichst mit einem Kommando durchgeführt werden. Dabei müssen sämtlich automatisierten Vorgänge zuverlässig wiederholbar und umkehrbar sein. In Pragmatic Project Automation von Mike Clark werden viele Aspekte der Automatisierung beschrieben.

Organisatorische Vorraussetzungen für UDD

Die organisatorischen Vorraussetzungen für UDD sind im wesentlichen die gleichen wie bei Extreme Programming und werden ausführlich in Extreme Programming. Das Manifest (Kapitel 26 Xp in der Praxis) und Extreme Programming planen (Kapitel 25 Geschäftsbeziehungen) beschrieben.

Besonders hervorzuheben ist dabei, dass Kunden gerne Verträge mit genau fest geschriebenem Umfang haben möchten. Andererseits wollen Kunden aber auch Ihre Meinung ändern können.

Es ist vermutlich noch nie ein Softwareprojekt abgeschlossen worden, in dem sich die Anforderungen nicht im Verlauf der Entwicklung geändert haben.

UDD löst diesen Widerspruch, indem der Kunde bei Projektstart einen groben Plan für die weitere Entwicklung bekommt, seine Meinung aber bei jedem Planungsspiel ändern kann. 

Usability Driven Development

Usability Driven Development (UDD) ist ein Vorgehensmodell der Softwaretechnik das Usability in einen agilen Prozess einbindet.

Es soll Entwicklern ein Werkzeug an die Hand geben um Anwendungen in einem iterativen Entwicklungsprozess, auf die Anforderungen von Kunden maßzuschneidern. Dabei soll das System so schnell wie möglich in Produktion gehen und in kurzen Releasezyklen weiterentwickelt werden.

Das Vorbild hierfür ist Extreme Programming das um Elemente des User Centered Design erweitert wurde. Die Grundprinzipien des Vorgehensmodel sind das DRY und das KISS-Prinzip, die in jeder Phase konsequent verfolgt werden.

UDD wendet diese Prinzipien auf alle Aspekte eines Softwarepro jektes an, von grafischen Oberflächen, über Quellcodes und Dokumentation bis zu Verträgen mit Kunden. 

Agile Methoden und Usability

Softwareentwicklung muss, um mit den Anforderungen des Marktes Schritt zu halten, mit zunehmender Geschwindigkeit erfolgen. Der Funktionsumfang selbst einfacher Anwendungen wird immer größer, die Anwendungsentwicklung somit komplexer. Zusätzlich ändern sich auch Kundenanforderungen schneller. Methoden der agilen Softwareentwicklung sind ein viel versprechender Ansatz diesen Herausforderungen zu begegnen.

Bedienbarkeit und Benutzerfreundlichkeit ist ein Qualitätsmerkmal guter Software. In Zeiten des Internets, in der die Konkurrenz nur einen Klick entfernt ist, wird Usability immer mehr zu einem entscheidenden Faktor für den Markterfolg. Agile Methoden betrachten Usability nicht in dem Maße, wie es klassische Usability zentrierte Verfahren tun.

Die logische Konsequenz wäre ein Vorgehensmodell das anwenderzentrierte Softwareentwicklung mit Methoden der agilen Softwareentwicklung verknüpft.

Suchmaschinenoptimierung für Rails Anwendungen

Ich bin im Moment dabei mir Gedanken darüber zu machen wie man eine Ruby on Rails Anwendung für Suchmaschinen optimieren kann. Ich plane darüber eine kleine Serie von Artikeln zu schreiben.

Folgende Teile habe ich geplant:

Teil 1 von 4: Aussagekräftige HTML-Titel

Teil 2 von 4: Sinnvolle HTML-Meta Angaben

Teil 3 von 4: Menschenlesbare Urls

Teil 4 von 4: Sitemap.xml

User Centered Design

User Centered Design (UCD) ist ein internationaler Standard für die benutzerorientierte Gestaltung interaktiver Systeme. Der Standard ist in der DIN EN ISO 13407 festgehalten. Darin wird ein fachübergreifender, iterativer Entwicklungsprozess beschrieben. Allerdings sind die Methoden nicht genau spezifiziert. Der Iterationszyklus endet, wenn die entwickelten Lösungen den Anforderungen entsprechen.

Hier sind die vier wesentlichen Teilaufgaben des Isoprozesses beschrieben:

User Centered Design nach DIN EN ISO 13407

  1. Nutzungskontext verstehen: Bei dieser Aktivität wird eine Dokumentation erstellt, die beschreibt welche Benutzer, welche Use Cases in welcher Umgebung durchführen sollen.
  2. Spezifikation der Anforderungen: In dieser Phase werden die Anwendungsfälle und Benutzerziele, die erreicht werden müssen damit das System erfolgreich in den Produktivbetrieb gehen kann, identifiziert und beschrieben.
  3. Erstellen von Lösungen: In der Phase “Erstellen von Lösungen” werden die zuvor spezifizierten Anforderungen implementiert.
  4. Evaluierung der Lösungen: Der wichtigste Schritt des User Centered Design ist die Evaluation der Lösungen, im Idealfall durch einen Usability Test mit zukünftigen Benutzern der Anwendung. Dabei wird die Erfüllung der festgelegten Anforderungen bewertet. Festgestellte Abweichungen sind Basis für die nächste Iteration des Entwicklungsprozesses.

Der genaue Wortlaut der Norm kann bei in der DIN EN ISO 13407 nachgeschlagen werden. Eine ausführliche Beschreibung von User Centered Design findet sich in User-Centered Design. Im Practitioner’s Handbook for User Interface Design werden zahlreiche praktische Beispiele für User Centered Design beschrieben.