Design Pattern Libraries, Aufzucht und Pflege

63
Pattern Libraries, Aufzucht und Pflege ...und warum du auch eine haben solltest (selbst für kleinere Projekte)

description

Die Präsentation als Artikel: http://www.produktbezogen.de/bauanleitung-pattern-library-1/ An english version is available here: http://de.slideshare.net/WolfBruening/how-to-build-the-perfect-pattern-libraryy

Transcript of Design Pattern Libraries, Aufzucht und Pflege

Page 1: Design Pattern Libraries, Aufzucht und Pflege

Pattern Libraries,Aufzucht und Pflege

...und warum du auch eine haben solltest

(selbst für kleinere Projekte)

Page 2: Design Pattern Libraries, Aufzucht und Pflege

Über mich

@wolfbruening

produktbezogen.de

Geboren und aufgewachsen in

Oldenburg

Hochschulausbildung in Magdeburg und Ann Arbor

Als Art Director und UI Designer bei webvariants und UCDplus gearbeitet

Aktuell Senior Interaction Designer für OTTO.de

Page 3: Design Pattern Libraries, Aufzucht und Pflege

Die Aufgabe

• Eine Pattern Library für eine unglaublich große eCommerce-Plattform entwickeln

• OTTO.de• >1.000.000.000€ Umsatz/Jahr• 1.000.000 Visits/Tag• Millionen Artikel, alles vom Bikini

bis zur Kettensäge

Page 4: Design Pattern Libraries, Aufzucht und Pflege

Warum überhaupt?

Parallele Konzeption, Kommunikation und Entwicklung erzeugen Missverständnisse, Redundanzen und Inkonsistenzen

Page 5: Design Pattern Libraries, Aufzucht und Pflege

Die Konsequenzen

7 Lösungen und Stile für die selbe Aufgabe gleichzeitig auf OTTO.de online

(das haben wir schon behoben)

Page 6: Design Pattern Libraries, Aufzucht und Pflege

Auf Patterns zu verzichten...

...führt mit großer Sicherheit zu inkonsistenten Interfaces...führt zu Missverständnissen...führt zu viel zusätzlicher und doppelt erledigter Arbeit und überflüssigen QA-Runden

Page 7: Design Pattern Libraries, Aufzucht und Pflege

Aber was sind Patterns eigentlich?

Page 8: Design Pattern Libraries, Aufzucht und Pflege

Was sind Patterns?

Ein Pattern ist ein Element eines Nutzer-Interfaces, welches ein bestimmtes Problem löst und sich in unterschiedlichen Kontexten (bzw. mit unterschiedlichen Inhalten) wiederholt.

Page 9: Design Pattern Libraries, Aufzucht und Pflege

Was sind Patterns?

• Unteilbare Patterns („Bausteine“)• Patterns aus Patterns („Komponenten“)

Page 10: Design Pattern Libraries, Aufzucht und Pflege

Was sind Patterns?

• Templates und Sub-Templates• Animationen• Flows• Naming Conventions• Wording• ...

Page 11: Design Pattern Libraries, Aufzucht und Pflege

Jared SpoolFounding Principal of UIE

“A typical pattern describes the problem, the chosen solution, the rationale behind that solution, related patterns that the designer should be aware of and the results of usability testing.”

Page 12: Design Pattern Libraries, Aufzucht und Pflege

Vielen Dank, jetzt weiß ich was ein Pattern ist, aber wie komme ich zu

meiner Library?

Page 13: Design Pattern Libraries, Aufzucht und Pflege

Unsere Vorgehensweise

1. Kick-Off• Mini-Task-Force: 1 Interaction Designer, 1 Entwickler• Recherchieren• Recherchieren• Recherchieren

2. Vertiefung• Hilfe von Außen• Interviews mit allen Beteiligten• Workshops

• Sammeln und Dokumentation von Patterns• Entwickler• Struktur und Verfeinerung

Page 14: Design Pattern Libraries, Aufzucht und Pflege

Unsere Vorgehensweise

3. Test & Learn• Start der Dokumentation• Ausprobieren von Prozessen• Gradueller Übergang in das Tagesgeschäft

4. Aktiver Betrieb• Kontinuierliche Befüllung der Pattern Library während

der Plattform-Entwicklung• Weiterentwicklung der Pattern-Library als Tool• Weiter: Lernen, optimieren, lernen, optimieren

Page 15: Design Pattern Libraries, Aufzucht und Pflege

Und was haben wir dabei gelernt?

Page 16: Design Pattern Libraries, Aufzucht und Pflege

Dokumentation

Page 17: Design Pattern Libraries, Aufzucht und Pflege

Yahoo Pattern Library

Page 18: Design Pattern Libraries, Aufzucht und Pflege

Yahoo Pattern Library

WTF?

Page 19: Design Pattern Libraries, Aufzucht und Pflege

Ein viel zu komplizierter Prozess

Image created by Matt Leacock

Page 20: Design Pattern Libraries, Aufzucht und Pflege

Learning #1

So einfach wie möglich(wirklich, wirklich einfach)

Page 21: Design Pattern Libraries, Aufzucht und Pflege

So einfach wie möglich

• Nicht nach der perfekten Pattern-Beschreibung streben

• Pattern-Dokumentation so knapp wie möglich halten

• Prozesse und Diskussionen schlank halten

➔ Overhead für das Hinzufügen und Verwalten von Patterns so gering wie möglich halten

Page 22: Design Pattern Libraries, Aufzucht und Pflege

So einfach wie möglich

• Ist eine Pattern Library einfach zu nutzen und erspart sie deutlich mehr Zeit als es kostet, sie zu füllen und zu verwalten, wird jeder motiviert sein, sie auf einem aktuellen Stand zu halten.

• Eine alles andere als perfekte Pattern Library ist um Längen besser als eine umfassend dokumentierte aber veraltete Library

➔ Einfachheit ist der wichtigste Faktor für den Erfolg einer Pattern Library!

Page 23: Design Pattern Libraries, Aufzucht und Pflege

Naming

Page 24: Design Pattern Libraries, Aufzucht und Pflege

Deskriptive vs. semantische Namen

Shiny Blue Button XL???

Shiny Blue Button XL

Relaunch/Redesign

Page 25: Design Pattern Libraries, Aufzucht und Pflege

Semantische Namen

• Abstrakte Namen nutzen, die sich auf den Zweck des Patterns und nicht seine visuelle Eigenschaften beziehen

• Primary Button• Secondary Button• Headline• Copy• Link

Page 26: Design Pattern Libraries, Aufzucht und Pflege

Und was ist mit Größen?

Button S

Button M

Button L

Hier ein neuer Button? Neeeeiiiiiiin!!!

Page 27: Design Pattern Libraries, Aufzucht und Pflege

Image created by Margaret Almon http://www.flickr.com/photos/nutmegdesigns

Page 28: Design Pattern Libraries, Aufzucht und Pflege

US city blocks

Page 29: Design Pattern Libraries, Aufzucht und Pflege

City-Block-Größen

Button 50

Button 100

Button 200

Button 150

Page 30: Design Pattern Libraries, Aufzucht und Pflege

City-Block-Größen

• Die Standard-Variante bekommt die „100“• Kleinere Varianten „75“, „50“, „25“...• Größere Varianten „200“, „300“...

Nun hat man ein einfaches Benennungssystem, bei dem es leicht ist, die Standardvariante zu identifizieren

Page 31: Design Pattern Libraries, Aufzucht und Pflege

Learning #2

Semantische und flexible Pattern-Namen nutzen

Page 32: Design Pattern Libraries, Aufzucht und Pflege

Struktur

Image created by Wolfgang Lonien, http://www.flickr.com/photos/wjlonien

Page 33: Design Pattern Libraries, Aufzucht und Pflege

Konzern-Probleme

• Viele Menschen reden mit:• Interaction Designer• Visual Designer• User Experience Manager• Entwickler• Produktmanager• Projektmanager• Corporate Designer• Externe Agenturen

• Unmöglich eine One-size-fits-all-Lösung zu finden

Page 34: Design Pattern Libraries, Aufzucht und Pflege

Modularer Aufbau

• Hauptsächliche Nutzungsszenarien• Konzeption, Prototyping & Visual Design• Dokumentation und Kommunikation• Entwicklung

Page 35: Design Pattern Libraries, Aufzucht und Pflege

Prototyping & Visual Design

Page 36: Design Pattern Libraries, Aufzucht und Pflege

Dokumentation & Kommunikation

Page 37: Design Pattern Libraries, Aufzucht und Pflege

Entwicklung

Page 38: Design Pattern Libraries, Aufzucht und Pflege

Learning #3

Involviert eure Entwickler (und alle anderen Stakeholder)

Page 39: Design Pattern Libraries, Aufzucht und Pflege

Bill ScottSr. Director UI at Paypal

“Design patterns create a shared

understanding in the

organization, where designers,

business people, engineers, etc.

really understand each other and

get a sense for what‘s hard, what‘s

easy, get a sense for the time

crunch.”

Page 40: Design Pattern Libraries, Aufzucht und Pflege

Bill ScottSr. Director Ui Engineering,

Paypal

„Design Patterns create ashared understanding inthe organization, where

designers, business people, engineers etc.

really understand each other and get a sense

for what’s hard, what’s easy, get a sense for

the time crunch.“

Page 41: Design Pattern Libraries, Aufzucht und Pflege

Struktur

Page 42: Design Pattern Libraries, Aufzucht und Pflege

Learning #4

Modulare Lösungen sind oft besser als One-Size-Fits-All-Konstrukte(insbesondere bei großen Projekten)

Page 43: Design Pattern Libraries, Aufzucht und Pflege

Struktur

Page 44: Design Pattern Libraries, Aufzucht und Pflege

Optimierte Struktur

Page 45: Design Pattern Libraries, Aufzucht und Pflege

Learning #5

Die Ideale Pattern Library entwickelt sich erst im Lauf der Zeit

Page 46: Design Pattern Libraries, Aufzucht und Pflege

Betrieb

Page 47: Design Pattern Libraries, Aufzucht und Pflege

Patterns müssen stabil sein...• Regelwerk aufstellen, um zu verhindern, dass

Patterns zu leicht abgewandelt werden können, z.B.• Es dürfen nur neue Patterns hinzugefügt werden, wenn

mit den bestehenden Patterns keine zufriedenstellenden Lösungen erreicht werden können.

• Patterns dürfen erst geändert werden, wenn sich eine neue Standardlösung am Markt durchsetzt

• Patterns dürfen erst ersetzt werden, wenn neue Patterns sie in Nutzer- oder A/B-Tests schlagen

Page 48: Design Pattern Libraries, Aufzucht und Pflege

...aber auch nicht zu starr

• Evolution der Patterns erlauben• Kontinuierlich mit neuen Patterns experimentieren• Immer wieder bestehende Patterns in Frage stellen

• Nicht zum Pattern-Nazi werden

Page 49: Design Pattern Libraries, Aufzucht und Pflege

Lucas PettinatiUX Lead at Google, former Prinicpal Designer at Yahoo

“The use of a pattern library helps

designers quickly craft parts of a

design so the bulk of their time is

spent designing what‘s unique rather

than what‘s common.

It‘s like a compass. It‘ll tell you what

direction you should go in, but it‘s up

to you to figure out how to get there.”

Page 50: Design Pattern Libraries, Aufzucht und Pflege

Learning #6

Eine Balance zwischen Stabilität und Evolution ist wichtig

Page 51: Design Pattern Libraries, Aufzucht und Pflege

Herkömmliche Arbeitsprozesse

Page 52: Design Pattern Libraries, Aufzucht und Pflege

Neue Arbeitsprozesse

Page 53: Design Pattern Libraries, Aufzucht und Pflege

Learning #7

Eine gute Pattern Library ermöglicht effizientere Prozesse

Page 54: Design Pattern Libraries, Aufzucht und Pflege

Learning #8

Designer und Entwickler haben sich wieder gern.

Page 55: Design Pattern Libraries, Aufzucht und Pflege

Das klingt alles echt cool, aber......schränkt der Gebrauch von Patterns nicht meine Kreativität ein?

Page 56: Design Pattern Libraries, Aufzucht und Pflege

Falsch!

Page 57: Design Pattern Libraries, Aufzucht und Pflege

Patterns helfen kreativer zu sein

• Man muss nicht jedes bereits gelöste Problem erneut lösen

• Man kann viel schneller Prototypen erschaffen und so viel mehr Iterationen produzieren

• Der Einsatz von Patterns verschafft einem Zeit, um neue und komplexere Probleme angehen, um sich um den Feinschliff zu kümmern

Page 58: Design Pattern Libraries, Aufzucht und Pflege

Und was ist mit meiner Seite / meiner Agentur?

Page 59: Design Pattern Libraries, Aufzucht und Pflege

Was ist mit meiner Seite?

• One Pager → Fertig!• Kleine Seite, Startup → Patterns während des Designs in

einer PSD (o.ä.) sammeln, später Dokumentation hinzufügen

• Agentur → Abstrakte Patterns definieren (Wireframes, Flows, etc.), die sich regelmäßig in Kundenprojekten wiederholen

Page 60: Design Pattern Libraries, Aufzucht und Pflege

Warum Ihr Patterns nutzen solltet...

• Patterns verbessern die User Experience• Konsistentes und vorhersagbares User Interface• Schnelles Prototyping• Gewonnene Zeit, um sich auf neue Probleme zu

konzentrieren

• Patterns verbessern die Code-Qualität• Schnelle Implementierung• Vermeidung von Code-Redundanzen• Effiziente QA

• Patterns sparen jede Menge Zeit• Patterns ermöglichen eine klare Kommunikation

mit allen Stakeholdern und vermeiden Missverständnisse

Page 61: Design Pattern Libraries, Aufzucht und Pflege

...und was ihr dabei beachten solltet

• Dokumentation und Prozesse einfach halten• Semantische und flexible Namen nutzen• Modulare Struktur einsetzen (in großen

Unternehmen)• Alle Beteiligten mit ins Boot holen (besonders

Entwickler)• Balance zwischen Stabilität und

Weiterentwicklung von Patterns finden• Testen, lernen, anpassen

Page 62: Design Pattern Libraries, Aufzucht und Pflege

Vielen Dank!

tl;dr Eine Pattern Library ist großartig!

@wolfbruening

produktbezogen.de

Page 63: Design Pattern Libraries, Aufzucht und Pflege

Bilder

• Folie 27: Margaret Almonhttp://www.flickr.com/photos/nutmegdesigns

• Folie 32: Wolfgang Lonienhttp://www.flickr.com/photos/wjlonien

• Folien 16, 23, 46: http://unsplash.com/