Hütet die Norm, das Ende ist nah

Manchmal kommt mir das ganze Wirtschaftssystem wie ein einziges Ritual vor. Nicht mehr das Nachdenken zählt, sondern Standardisierung, Prozessmodellierung und Festlegung von Vorgehensweisen.

Aber leider übersehen wir dabei eines. Bis die Standards durch all die bereits standardisierten Prozesse laufen, bis alle „ich will mit entscheiden aber ohne Verantwortung“ Entscheider dazu genickt haben, sind die meisten Standards schon wieder veraltet. Und meist sind sie sowieso nur für grosse Strukturen valide, die glauben, nur mit Standardisierung, mit Erbsenzählerei erfolgreich zu sein.

Der grosse Irrtum dabei: Nicht nur unser Privatleben, nicht nur unsere Arbeitswelt, die Welt allgemein verändert sich in immer schnelleren Zyklen. Standards machen da nur noch in Nischen Sinn, oft wäre es, so der Standard denn endlich eingeführt ist, schon wieder an der Zeit, ihn auf den Prüfstand zu stellen.

Vorgehensmodelle haben durchaus ihre Berechtigung aber in Zeiten stetigen Wandels sollten sie maximal als Empfehlungen gelten. In wenigen Nischen sind Standards wirklich sinnvoll, und das sind meist Produkte wie z.B. Stecker oder Maschinen.

Menschliche Prozesse aber standardisieren zu wollen missachtet einen Faktor. Den Menschen. Wir arbeiten und leben nicht alle gleich.  In der Schule aber werden wir zu „Standardprozessen“ erzogen, zum gleich sein mit den anderen. Und später beklagt sich die Wirtschaft genau darüber, dass keine Kreativität, kein Querdenken mehr vorhanden ist sondern eine Herde von 9-17 Uhr Arbeitern.

Überlegt euch endlich mal, was ihr wollt, und akzeptiert, dass ihr den Menschen dann auch Freiräume lassen wollt, wenn ihr Kreativität und Engagement fordert. 2/3 machen nach neuesten Statistiken Dienst nach Vorschrift und fühlen sich ihrem Arbeitgeber wenig verbunden. Wundert nicht, wer zuvor gleichgeschaltet wurde, dem ist später auch sein Leben „gleich“.

Vom Fluch der Standards

Zuforderst, damit hier keine falschen Eindrücke entstehen. Ich halte Standards für sinnvoll. Wenn man es nicht übertreibt.
Doch genau das scheint eine beliebte Tendenz zu sein, insbesondere bei Unternehmen und Themen, die eine gewisse Grösse erreicht haben. Dann wird versucht, alles in einen Standard zu pressen. Von der Art der Schreibtische bis zum Aussehen des Desktops. Von der Vorgehensweise beim Programmieren bis hin zu den Werkzeugen, die jeder benutzen darf. Das mögen gute Ansätze sein, aber wo ich jemandem einen Standard sichtbar aufzwinge, ist das meist zum scheitern verurteilt.

Standards sind immer dann gut, wenn sie die Auswahl des einzelnen nicht beeinflußen. Oder zumindest dafür sorgen, dass egal was derjenige auswählt, er es immer wieder verwenden kann. Also bei Produkten. Es ist sinnvoller Standard, eine Norm für die Stecker von Ladegeräten einzuführen oder für Papiergrössen und verschiedene Maßeinheiten.
Ganz anders ist die Sache aber gelagert, wenn sich Standards mit den persönlichen Vorlieben von Menschen überschneiden oder gar eine ganze Gruppe auslassen.
Standardarbeitsplätze mögen an sich eine gute Idee sein, würden wir alle auf die völlig gleiche Art arbeiten. Aber genau das tun wir nicht. Gerade hier gilt, was dem einen sin Ul is dem andern sin Nachtigall. Ich bin Linkshänder und bekomme bei einem projektbedingten Umzug meinen Tisch in schöner Regelmässigkeit so aufgebaut, dass er auf einen Rechtshänder ausgerichtet ist.
Ich entwickle in einem Umfeld, in dem ich als jemand, der mit Maus und GUI arbeitet, stets den Vorwurf zu hören bekomme, wie kannst du nur so arbeiten.

Für Standards gilt, wie für vieles im Leben. Nur weil es standardisiert ist, ist es nicht gut. In vielen Bereichen ist es gerade die Vielfalt, die absichert, die es ermöglicht bei Versagen eines „Standards“ auf einen anderen auszuweichen.
Gerade in der Ergonomie finde ich es bedenklich, wie häufig hier Standards festgelegt werden für Abstand zum Bildschirm, bevorzugte Farben, Schriftgrössen und ähnliches. Dabei finde ich es z.B. anstrengend, mit grossen Schriften zu arbeiten und mag es, meinen Bildschirm möglichst weit ans Tischende zu stellen. Beides kein Standard.
Deshalb stelle ich mir meine Umgebung häufiger neu ein, wenn mal wieder der „Standard“ meine Konfiguration plattgebügelt hat.
Ich würde stets empfehlen, bevor wir uns auf einen Standard festlegen, erst zu hinterfragen, ob der Standard die Situation wirklich verbessert. Und diese Frage MUSS man sich in regelmässigen und nicht zu langen Abständen wieder stellen. Der Standard von heute kann das Hindernis von morgen sein.

Standards machen in einer eher statischen, nicht innovativen Umgebung Sinn. Wo aber Innovation gefordert wird, kann der Zwang zum Standard, sei es die Programmiersprache, das Werkzeug oder der Prozess sehr schnell zum grossen Hindernis werden und gegebenenfalls mehr Geld kosten, als die Einhaltung des Standards an Ersparnissen bringt.

Javaforum Stuttgart 2011 #jfs2011 Live Blogging Vortrag 6

Vortrag 6: Restful API design
Warum REST mehr als HTTP mit XML ist

REST= Representational State Transfer

Representational State Transfer. Bunt.

Als Beispiel wird „ein Büchershop (guess which one)“ genutzt.

Das ganze soll jetzt auf Mobile Endgeräte, „wir brauchen eine App“
Also braucht man eine Api.
die zu implementierenden Schnittstellen sind aus dem „Legacy“ System vorgegeben.
REST möchte:

 

Für eine Web API
http bewusst nutzen

Bedenken, das Web ist ein verteiltes Medium

Vorkenntnisse über APIs sollten minimiert werden (einfache Einarbeitung).

1 Methode ergibt eine REssource
also Buch Nr Buch-ID —-> http://site/api/book/book-id

2 Methoden, eine Ressource

addToCart
getCartInfo

http://site/api/cart/cart-id

Man muss sich immer die Frage stellen, was kommt in die URI, was in die Parameter
Alles was ein „Ding“ ist in die Uri, der Rest in die Parameter
Aktionen entsprechen Methoden

Aktionen auf Ressourcen sind nicht Teil der URI sondern http-Methoden

Dies ist später in
der API Doku zu beschreiben
Übliche Verhaltensmuster sind
GET->Anzeigen
Post Anlegen oder Ergänzen
PUT Anlegen oder Schreiben

Es sind pro Entity mehrere URI möglich

Http Möglichkeiten nutzen, Error Meldungen, Last Sharing etc.

Caching kann im Header eingestellt werden, also nutzen, gerade auch für mobile Geräte.

ETags definieren den Zustand einer Ressource. Auch diese sind sinnvoll!

Links: Echtes REST

 

Link-Semantik definieren

Ressourcen mit Referenzen verknüpfen

Wissen über die API also verlagern in die Link Annotation

Die Art des Links kann in einem Annotation type wie rel definiert werden.