Treffen der Agile Usergroup Rhein-Main bei Namics

Agile Usergroup bei Namics Frankfurt

Der Abend des 20. März ist relativ angenehm, nicht zu warm und nicht zu kalt. Eine Woche vor der Umstellung auf Sommerzeit ist es draußen bereits stockdunkel. Ideale Voraussetzungen also um die Teilnehmer der  Agile User Group Rhein-Main im Frankfurter Office willkommen zu heißen.

Die Gruppe aus rund 30 Leuten kommt regelmäßig jeden Monat zusammen und ist immer auf der Suche nach schönen Locations. Es gilt die Erfahrungen und die Begeisterung für Agilität zu teilen und gemeinsam von einander zu lernen. Max, der an den Treffen der AUG öfter zu finden ist, holte die dritte Ausgabe im Jahr 2014 zu Namics nach Frankfurt und organisierte einen passenden Rahmen rund um die Veranstaltung.

(more…)

Smashing Conference 2013

Die diesjährige Smashing Conference stand ganz unter dem Motto «Personal Experiences». Das Thema war also offener als es gar nicht hätte sein können & die Speakerliste – quasi das Who is Who der Webszene – liess Grosses erhoffen.

Location: Historisches Kaufhaus

Hier mein Versuch, die Konferenz in drei Kernaussagen zusammenzufassen:

  1. Deciding in the Browser
  2. Progressive Enhancement, Progressive Enhancement, Progressive Enhancement
  3. Have fun!

Deciding in the browser

Die Zusammenarbeit zwischen Design & Frontend steht seit Responsive Web Design vor ganz neuen Herausforderungen.

Tools wie Photoshop, InDesign & Co. stehen in der Kritik dem Multi-Device-Web zu wenig Rechnung zu tragen. Dennoch sind sie DAS Tool für Designer, sich kreativ ausdrücken zu können. Das Designen im Browser wiederum benötigt Frontend-KnowHow & bietet zu wenig Platz für Kreativität. Dazwischen gibt es eine ganze Palette von Tools, die den neuen Umständen gerecht werden wollen, oftmals jedoch bloss Zwischenerzeugnisse für die Tonne produzieren.

Die Zeit ist also mehr als reif sich über den sinnvollen Einsatz/Mix von Kreativtools & Frontend Gedanken zu machen. Dan Mall & Jason Santa Maria haben dies getan & teilten ihre Erfahrungen mit uns. Die beiden leidenschaftlichen Webdesigner sind sich einig:

As an industry, we sell websites like paintings. Instead, we should be selling beautiful and easy access to content, agnostic of device, screen size, or context – Dan Mall

Ihr Vorschlag um dies zu erreichen ist so einfach, dass er sich in zwei umgemünzte Zitate packen lässt.

Zitat #1

Current design approach

New design approach

Die Design-Diskussion mit dem Kunden soll also nicht auf Basis von fertig gestalteten, pixelgenauen Designs geführt werden.

Denn was ist mit verschiedenen Screen-Grössen? Vernachlässigbar? Wohl kaum! Ein detail- und pixelgenaues Design verleitet aber dazu, die Design-Diskussion auch auf Level von Detail- und Pixelgenauigkeit zu führen. Dabei wird das Wesentliche – wie fühlt sich die Seite unabhängig von Device & Screen-Grösse an – oftmals ausgeblendet.

Dan Mall schlägt vor, statt dessen als Diskussionsgrundlage Styletiles – oder Visual Inventories o.ä. – zu verwenden.

«The Examiner» Styletiles

«The Examiner» – Projektübersicht

I don’t think we’re in a post-PSD era, but I do think we’re moving towards a post-“full-comp” era – Dan Mall

Anschliessend soll der Prozess in den Browser verlagert werden. Denn nur im Browser kann das Verhalten, die Verhältnisse der Elemente zueinander – unter Berücksichtigung von verschiedenen Screen-Grössen – sinnvoll dargestellt werden. Mit diesem Schritt werden zudem gleichzeitig auch andere Risikofaktoren ausgeschaltet & die Machbarkeit implizit sichergestellt.

Das für mich wichtigste Zitat der ganzen Konferenz folgte postwendend.

Zitat #2

… und wirken lassen …

Der Design-Entscheid soll also in den Browser verlagert werden. Damit hätte man auch gleichzeitig eine wunderschöne Definition of done. Nämlich:

It’s done when it’s done

Progressive Enhancement

Das Konzept von Progressive Enhancement ist so alt, dass man als Frontend Engineer schon fast nicht mehr darüber nachdenkt. Nichtsdestotrotz – oder eben vielleicht gerade deshalb – ist das Thema momentan wieder in aller Munde. Auslöser dafür war Nicolas Zakas Präsentation Enough with the JavaScript Already.

Durch die Verlagerung von Business- und Renderlogik in den Client, steht das bewährte Konzept von Progressive Enhancement erneut auf dem Prüfstand – Client Side Rendering, Model Driven Views etc. vertragen sich nur bedingt mit dem progressiven Gedanken.

Gleich mehrere Speakers – Andy Hume, Ethan Marcotte, Jake Archibald & Jeremy Keith – riefen uns das Konzept – und dessen Bedeutung im neuen Kontext – zurück ins Gedächtnis.

Dabei wurde oftmals der von BBC geprägte Begriff «Cutting the mustard verwendet. «The mustard» ist im Falle von BBC der «Support von HTML5».

  if('querySelector' in document
     && 'localStorage' in window
     && 'addEventListener' in window) {
        // bootstrap the javascript application
  }

Erfüllt ein Browser die Mustard-Kriterien so erhält er die Schöne-Neue-Welt-Version, falls nicht erhält er eine funktionale Core-Version. Die Mustard-Kriterien entscheiden schlussendlich mit über den Grad des «Enhancements».

Its a myth that progressive enhancement means making lowest common denominator designs. Its just about starting there – Jeremy Keith

Eine schöne funktionale Core-Version – die mit sage & schreibe 1 Request auskommt – zeigte Andy Hume am Beispiel der Mobile-Seite von The Guardian. Dieses Extrembeispiel zeigt, dass vor allem im mobilen Kontext – in dem Netzunterbrüche & fehlgeschlagene Requests keine Seltenheit sind – Progressive Enhancement die «gefühlte Verfügbarkeit» einer Seite drastisch verbessern kann.

Have fun!

Web & Spass gehören zusammen. Sei dies bei der Arbeit & natürlich auch überall sonst – auch an der Smashing Conference.

Highlights waren der als Mystery Speaker getarnte Handorgelspieler Klaus Schmidt

… die spontan aus Speakern zusammengewürfelte «Smashing Conference Lonely Hearts Club Band»

… oder das von WordPress grossartig eingehaltene Versprechen

Free Beer All Night Long

Alles in allem war die Smashing Conference bereichernd, bestätigend, trotz Ausnahmen grösstenteils kurzweilig & unterhaltsam, gespickt mit allerlei Würsten vom Markt & inspirierend.

… hoffentlich nächstes Jahr wieder

Weiterführende Links

Progressive Enhancement
That Emil – Progressive Enhancement: Still Not Dead.
Jake Archibald – Progressive enhancement is still important
BBC – Cutting the mustard

Decide in the Browser
Dan Mall – Responsive Design is Hard/Easy! Be Afraid/Don’t Worry!
Brad Frost – The Post-PSD Era … in response … Dan Mall – The Post-PSD Era: A problem of expectations

.Net News – Januar Summary

metro-visualstudio-128-link

Neues Jahr, neues Glück? Ich denke neues Jahr, mehr Produktivität. Als DotNet’ler ist man ja schon fast ein wenig verwöhnt wenn man die Anzahl an Aktualisierungen in den bestehenden Produkten anschaut. Schon im ersten Monat des neuen Kalenderjahres startet Microsoft … Weiterlesen

Jetzt wird alles besser – wir machen Scrum!

Scrum Master

Bei Namics erreichten uns in der naher Vergangenheit immer häufiger Projektausschreibungen die explizit nach agilen Projektansätzen, z.B. Scrum nachfragen. Ich habe in der Vergangenheit schon selber agile Projekte geleitet und habe nun mein Wissen mit einer Scrum Master Ausbildung untermauert. Im Rahmen des … Weiterlesen

Das Missverständnis mit dem Wasserfall, oder: Why agile matters

SprintBurnDown

Momentan erfreuen sich agile Methoden in der Software-Entwicklung großer Beliebtheit und werden abwechselnd als Sehnsuchtsort oder ultimative Waffe verkauft. Ein aussenstehender Beobachter könnte fast den Eindruck gewinnen, es herrscht Bürgerkrieg und Revolution in der Welt der Software-Entwicklung. Dabei ist alles … Weiterlesen

Der Softwarearchitekt. Sagenumwobener Hüter der schwarzen Boxen, Dompteur der Komplexität

850368_32958007

Je mehr ich mich mit dem Thema Softwarearchitektur auseinandersetze desto mehr treffe ich auf unterschiedliche Ansichten, was denn ein Softwarearchitekt ist und worin seine Aufgaben bestehen. In diesem Blogeintrag möchte ich meine Meinung zum Thema Softwarearchitektur und dem sagenumwobenen Wesen … Weiterlesen

3rd-Party Interface Testing mit Cucumber – Teil I

cucumber_logo

Das altbekannte Problem In einer Software muss ein 3rd Party Service über eine definierte Schnittstelle eingebunden werden. Das Verhalten der Schnittstelle muss vorab getestet und verifiziert werden. Solche Tests sind Behaviour Driven, sprich das Verhalten der Schnittstelle wird vor der Integration in das … Weiterlesen

Eine Tour durch die Testpyramide

Stellen sie sich vor der Compiler ihrer Programmiersprache würde nicht nur Typfehler, sondern auch einen Großteil der Verhaltensfehler in der Applikation finden können. Welche Auswirkung würde das wohl auf die Qualität ihrer Software haben? Gerade Praktiken der agilen Softwareentwicklung wie die schnelle, häufige Veröffentlichung oder sogar die kontinuierliche Veröffentlichung (Continuous Delivery) sind ohne ein schnelles und umfassendes Feedback über die Softwarequalität nicht denkbar. Automatische Tests können genau dieses Feedback geben – und dennoch werden sie von sehr wenigen Projekten genutzt.

Leider ist die Erstellung von effektiven automatischen Tests eine Fähigkeit, die bei der Ausbildung von Softwareentwicklern oft zu kurz kommt. Viele naive Ansätze der Testautomatisierung, wie etwa mit Tools, die wenig Aufwand durch Aufnahme und Wiedergabe von UI-Interaktionen versprechen, können schnell dazu führen, dass ein Team von dem Vorhaben frustriert ist und den Wert der automatischen Tests in Frage stellt. Das kann etwa dann der Fall sein, wenn kleine Änderungen an dem User Interface dazu führen, dass eine ganze Reihe an Tests fehlschlagen und Entwickler vor der Frage stehen, ob es sich tatsächlich um eine Regression handelt oder um eine falsche Fehlermeldung.

Im Extremfall führt dieser Missstand dazu, dass Änderungen am User Interface nur widerwillig von den Entwicklern vorgenommen werden. Es ist eine paradoxe Situation, da doch gerade durch die Tests auch bei tiefgreifenden Änderungen mehr Sicherheit und damit eine deutlich erhöhte Flexibilität der Software erreicht werden sollte. Die richtige Herangehensweise an Testautomatisierung ist deshalb der Schlüssel für eine frustfreie und wirtschaftliche automatisierung von Testfällen und Grundlage für rapide und häufige Lieferung von Software.

(more…)

Automatisierte Integrationstests für Webservices

Einen Webservice im Integrationstest anzusprechen hat vieles mit dem berüchtigten Schuss auf ein bewegtes Ziel gemeinsam: der Webservice ist aus Sicht des Tests schwer berechenbar und flüchtig. Netzwerkprobleme, eine Änderungen an der Datenbasis (z.B. durch vergessene “Aufräumarbeiten” nach einem Test) oder die Änderung der Schnittstelle können zum ungewollten Scheitern der Integrationstests führen. Vor allem wenn sich die Daten des Webservices oft ändern, wie es bei Information Retrieval- oder PIM Systemen der Fall ist, kann der Aufwand der betrieben werden muss um die Tests laufend anzupassen bald die durch eine Automatisierung erhoffte Zeitersparnis übersteigen.

Aber selbst wenn der Webservice recht statisch ist, ist die Zeit für einen HTTP Round-Trip, der vielleicht auch noch eine Datenbankquery anstößt, ein unliebsamer Flaschenhals, der die Testausführung ausbremst. Mit den richtigen Techniken und Tools kann man jedoch auch flüchtige Webservices zähmen und so den Aufwand automatisierter Tests auf ein Minimum beschränken.

(more…)

Page 1 of 41234