Der moderne Webdesign- und Entwicklungsprozess entwickelt sich rasant weiter, und responsive Websites werden schnell zur Norm. Frameworks wie Bootstrap und Foundation zeigen uns den Wert der Schaffung robuster Komponentensysteme, um den Aufbau von Dingen im Web schneller, besser und einfacher zu gestalten.
Vor etwa einem Jahr begann ich als UX Engineer bei (mt) Media Temple, einem Webhosting- und Cloud-Services-Unternehmen mit Sitz in Los Angeles. Mit der Aufgabe, die Frontend-Entwicklung des Redesigns der (mt)-Website zu leiten, nutzte ich die Gelegenheit, innezuhalten und meinen Ansatz für die Frontend-Entwicklung zu überdenken. So erkannte ich, dass die Art und Weise, wie ich zuvor große Websites erstellt hatte, etwas fehlerhaft war. Ich wollte einige meiner Lernerfahrungen teilen und den High-Level-Ansatz beleuchten, den ich beim Erlernen und Erstellen eines Designsystems gewählt habe.

Aber was genau ist ein Designsystem?
Auf der FOWA 2013 in London beschrieb Mark Otto ein Designsystem als „alles, was Ihr Produkt ausmacht“ (seine vollständige Präsentation finden Sie hier: Build your own Bootstrap).
Alles? Alles. Von Typografie, Layouts und Grids, Farben, Icons, Komponenten und Kodierkonventionen bis hin zu Stimme und Tonfall, Styleguide und Dokumentation – ein Designsystem vereint all dies auf eine Weise, die es Ihrem gesamten Team ermöglicht zu lernen, zu bauen und zu wachsen.
Zuerst war ich mir nicht sicher, ob ich etwas Eigenes bauen oder mit einem bestehenden Framework wie Bootstrap beginnen sollte. Letztendlich entschied ich mich gegen Letzteres aus mehreren Gründen:
- Wir hatten bereits ein individuelles Design. Als ich bei Media Temple anfing, waren die visuellen Entwürfe für die neue Website fast fertig. Wenn ich ein Framework verwendet hätte, müsste ich es *erheblich* anpassen, um es an unsere Designs anzupassen.
- Ich wollte Codierkonventionen und eine Struktur basierend auf den Vorlieben meines Teams etablieren. Auch hier hätte ich viel Zeit damit verbracht, Klassennamen umzubenennen oder Dinge neu zu organisieren, um sie an unsere Bedürfnisse anzupassen.
Der Zeitaufwand, den ich damit verbringen würde, das Framework im Grunde auszuräumen, schien es nicht wert zu sein. Ich hatte das Gefühl, dass der Aufbau unseres eigenen Frameworks langfristig von Vorteil, wartungsfreundlicher und als Bonus eine unglaubliche Lernerfahrung wäre. Es half auch, dass ich die Zeit dafür hatte und ein ganzes Team begeistert mitmachte.
Obere Ziele festlegen
Beim Wiederaufbau einer Legacy-Website hat man die Möglichkeit, vieles zu verbessern. Bevor ich mit der eigentlichen Entwicklung begann, legte ich einige übergeordnete Ziele fest:
- Organisation: Eine unordentliche Codebasis kann zum Albtraum werden. Eine gut durchdachte Struktur und Vorgehensweise war sehr wichtig.
- Wartbarkeit: Im Laufe der Zeit werden neue Entwickler hinzukommen, um Fehler zu beheben und Funktionen hinzuzufügen. Wir mussten richtige Richtlinien und Konventionen haben, um es den Leuten leicht zu machen, Dinge korrekt zu tun.
- Responsivität: Angesichts des stetigen Anstiegs des mobilen/Tablet-Traffics war es sehr wichtig, die Erfahrung plattformunabhängig zu gestalten.
- Skalierbarkeit: Das Unternehmen wird in Zukunft wachsen, und das sollte auch seine Website tun. Die Erstellung von Aktionsseiten und/oder neuen Produktseiten sollte keine unangenehme (und fast unmögliche) Aufgabe mehr sein.
Mein „Aha“-Moment
Mit den übergeordneten Zielen im Hinterkopf begann ich mit intensiver Recherche. Ich begann mit dem Lesen über HTML-Semantik und Frontend-Architektur und entdeckte die Vorteile des Aufbaus flexibler Module, nicht Seiten. Das war mein „Aha“-Moment.
Zuvor war ich beim Erstellen großer Websites daran gewöhnt, die Arbeit nach Seitenvorlagen aufzuteilen. Ich habe einen Satz zusammenhängender Vorlagen bearbeitet und bin dann zum nächsten übergegangen. Das Problem bei diesem Ansatz ist, dass, wenn die Kommunikation im Team nicht außergewöhnlich ist, viele ähnliche – manchmal identische – Module und Komponenten auf unterschiedliche Weise markiert und gestylt werden. Wenn Sie nicht die zusätzliche Zeit aufwenden, sie zu refaktorisieren, wird Ihre Codebasis zu einem absoluten Chaos.
Ich beschloss, zwei ausgezeichnete – aber unterschiedliche – Projekte sehr genau zu studieren: InuitCSS von Harry Roberts und Bootstrap von Mark Otto und Jacob Thornton, und mir wurde schnell klar, dass der nächste Schritt darin bestand, Richtlinien dafür festzulegen, wie unser HTML, CSS und JavaScript kodiert werden sollten und was unser gesamter Frontend-Ansatz sein sollte.
Kodierkonventionen und Richtlinien
Inspiriert von Idiomatic HTML, CSS Guidelines und Idiomatic JavaScript, begann ich, diese in unsere eigenen Kodierrichtlinien zu übernehmen. Dabei entdeckte und übernahm ich eine interessante Namensmethodik namens BEM (Block, Element, Modifier). Es ist im Wesentlichen eine clevere Art, Ihre CSS-Klassen zu benennen, um sie aussagekräftiger und einfacher zu verstehen zu machen.
Unsere leicht modifizierte Konvention ist:
.block {}– Repräsentiert die Hauptkomponente..block-elementName {}– Ein Kindelement, das dazu beiträgt, die Komponente als Ganzes zu bilden..block--modifier {}– Eine Modifikatorklasse, die verwendet wird, um den Zustand oder das Erscheinungsbild der Komponente zu verändern.
Hier ist ein Beispiel für eine Alert-Box, die diesen Ansatz verwendet:
/* Main 'alert' component */
.alert {}
/* Sub-components that make up the 'alert' */
.alert-text {}
.alert-close {}
/* Modifiers for various styles of the 'alert' */
.alert--warning {}
.alert--error {}
.alert--success {}
.alert--info {}
Außerdem habe ich eine Reihe von Tools finalisiert, die uns dabei helfen, darunter LESS für unsere CSS-Präprozessing-Bedürfnisse und Grunt, um unsere LESS-Dateien zu kompilieren und unseren Code zu komprimieren, zu minifizieren und zu verketten.
Entwicklung von Basisstilen

Ähnlich wie bei InuitCSS und Bootstrap erstellte ich eine primäre Stylesheet namens mt-global.less, die alle Seitenstile zusammen importiert und die endgültige mt-global.css-Datei erstellt. Um die Dinge organisiert zu halten, erstellte ich einige Ordner:
- core – Hier werden unsere benutzerdefinierten Variablen und Mixins gespeichert.
- vendor – Für verwendete Dienstprogramme von Drittanbietern, wie z. B. LESSHat und REMixins.
- base – Für alle zugrundeliegenden Basisstile wie Typografie, Farben und Struktur.
Ich begann mit normalize.css, passte es bei Bedarf an und fuhr fort, allgemeine Elemente wie Überschriften, Links, Listen, Formularelemente und Tabellen zu stylen.
Komponenten identifizieren und erstellen
Mit den Basisstilen an Ort und Stelle war es an der Zeit, sich die Website als Ganzes anzusehen und mit der Identifizierung einzelner Komponenten zu beginnen. Ich begann mit dem Aufbau eines benutzerdefinierten Grid-Systems, das auf dem für die Designs verwendeten Grid basierte. Von dort aus fuhr ich mit gängigen Elementen wie Buttons, Call-to-Action-Links, Hero-Einheiten und Navigation fort.

Während ich Komponenten erstellte, begann ich, Wege zu finden, gemeinsame Stile in wiederverwendbare Objekte zu abstrahieren, ähnlich dem Media Object. InuitCSS war hier eine große Hilfe, da es unzählige nützliche Objekte enthält. All diese Stile wurden in einen Ordner namens components gelegt.
Module identifizieren und erstellen

Da die meisten Komponenten einsatzbereit waren, war es an der Zeit, diese Bausteine zu verwenden, um die verschiedenen Module jeder Seite zu erstellen. Ich erstellte einen weiteren Ordner namens modules und begann, sie zusammenzusetzen, beginnend mit globalen Modulen wie dem Website-Header, Footer und der Hero-Einheit.
Muster etablieren

Während ich Komponenten und Module erstellte, begann ich, sie in einem Styleguide mit dem Style-Guide Boilerplate zu integrieren. Das Ergebnis war ein zentraler Bezugspunkt für jedes Teammitglied, das lernen wollte, wie man zum Projekt beiträgt. Sobald das gesamte Team Zugriff auf den Styleguide hatte, war der Aufbau von Seitenvorlagen ein Kinderspiel. Es war nur eine Frage des Kombinierens und Anpassens von Modulen sowie des Erweiterns oder Anpassens bei Bedarf.
Fazit
Der Aufbau eines Designsystems ist ein langer Prozess voller Versuche und Irrtümer. Etablierte Frameworks können Ihnen Wochen Entwicklungszeit sparen, aber wenn Sie Ihr Webprojekt mit einem Framework erstellt haben, das seitdem viele Versionen durchlaufen hat, kann die Wartung schwierig sein. Aktualisieren Sie Ihre Codebasis mit jeder Veröffentlichung? Was ist, wenn Sie es so stark angepasst haben, dass eine Aktualisierung nicht einmal mehr möglich ist?
Wenn Sie die Möglichkeit haben, eine Website von Grund auf neu aufzubauen, löst eine benutzerdefinierte Lösung viele Probleme: Sie hilft, ein maßgeschneidertes System zu etablieren, das es Ihrem gesamten Team ermöglicht, schnell und einfach zu lernen, wie es zu Ihrem Projekt beitragen kann; es wird von Ihnen und speziell für die Bedürfnisse Ihres Unternehmens erstellt; und vor allem wird es für die Zukunft gebaut. Ohne an die Entwicklung und Richtung eines anderen Projekts gebunden zu sein, kann es frei in Ihrem Unternehmenstempo skalieren.
Recherchieren. Bauen. Lernen. Wiederholen.
– John Polacek
Vor allem war es eine unglaubliche Lernerfahrung und eine große Quelle des Stolzes für unser Team. Ich ermutige jeden, die zahlreichen Ressourcen zu Designsystemen und dem sich ständig verändernden Webdesignprozess zu studieren.
Ich habe eine BEM-Variante erfolgreich bei einigen Projekten eingesetzt und fand, dass dies die Wartung erheblich erleichterte. Ich empfehle dringend die Verwendung von
__als Trennzeichen zwischenblocks,elements undsubelements. Es ermöglicht die Verwendung von Standard-Hyphen-Namen für Blöcke und Elemente.Ich finde
foo-barundfoo-bar__bazleichter lesbar alsfooBarundfooBar-baz, aber das kann variieren.Allerdings muss man sich erst daran gewöhnen, und es kann leicht schiefgehen. Entwickler, die neu bei BEM sind, vergessen oft, dass sie sowohl die
block- als auch dieblock--modified-Klassen zu Elementen hinzufügen müssen, oder sie verwechseln Modifikatoren, indem sie etwas wie verwenden.Die richtige Methode wäre,
block--modified__elementzu verwenden.Dieser Artikel ist inspirierend. Ich habe mich kürzlich von Drupal und der Modifizierung bestehender Themes abgewendet, und die hier enthaltenen Informationen werden mir sehr helfen.
Wenn Sie diese „Flaggenstil“-Methode verwenden, müssen Sie natürlich den Basis-Block__Element in dem Klassenattribut referenzieren.
Aber für große Projekte ist es einfacher, die Klasse einfach über Sass/Less einzubinden oder zu erweitern, anstatt das Klassenattribut zu überladen.
Das hat für mich viel Sinn ergeben, und ich glaube nicht, dass das nur für große Projekte gilt.
Und nebenbei bemerkt, das neue Design der MT-Website gefällt mir gut, wie das „Untermenü“ nach oben scrollt und dann fixiert bleibt, nett.
Ich bin noch ziemlich neu im Webdesign, aber ich würde dieses Konzept gerne verstehen. Ihr Artikel beantwortet mehrere Fragen, die ich zu Designsystemen hatte, insbesondere wo man anfangen soll. Sie haben einige großartige inspirierende Links gepostet.
Die Idee von Designsystemen wirkt einschüchternd, das gebe ich zu, aber das hilft mir zu klären, wie ich meinen eigenen Arbeitsablauf entwickeln kann. Ich habe aber eine Frage. Glauben Sie, dass ein Team von einer Person von diesem Ansatz profitieren würde, z. B. beim Erstellen einer persönlichen Website/eines Blogs?
Sicher! Im schlimmsten Fall geben Sie die Idee auf, verwenden ein Framework wie Foundation und haben viel über Designsysteme gelernt. In jedem Fall ist es ein Gewinn.
Außerdem polieren Sie es jedes Mal, wenn Sie es verwenden, und haben eine tolle Boilerplate für Ihre nächsten Projekte!
Ich habe bereits viele – großartige – Frameworks verwendet, aber jetzt habe ich meine eigene Boilerplate mit dem minimal notwendigen Code erstellt und bin mehr als zufrieden mit den Endergebnissen meiner Projekte. Es ist einfacher zu warten und performt viel besser als jedes andere Framework, das ich je benutzt habe (Byte-Anzahl und Echtzeit-Performance).
Gute Punkte, Elton. Danke für die Antwort!
Ich muss Elton zustimmen! :)
Es ist wirklich eine unglaubliche Lernerfahrung, und da Sie an Ihrem eigenen persönlichen Projekt arbeiten würden, haben Sie viel mehr Raum, Fehler zu machen, sich Zeit zu nehmen und zu lernen.
Wie immer inspirierend, Ara. Tolle Arbeit am Redesign! Ich habe viel aus diesem Beitrag gelernt, also danke an Chris und Ara, dass sie das ermöglicht haben. Prost!
Danke für die netten Worte, Sealth!
Toller Artikel. Wir teilen die Meinung, dass es – oft – eine bessere Idee ist, sein eigenes „Framework“ zu bauen. Es ist nicht so schwer, wenn man sich auf die tatsächlichen Bedürfnisse des Projekts konzentriert. Andere Frameworks als Referenz zu verwenden, ist ebenfalls gut.
Ich denke, das Wichtige ist, eine Kodierkonvention zu haben (was auch immer es BEM, OOCSS oder etwas anderes ist), organisiert zu sein und an Leistung und Wartbarkeit zu denken.
Es ist gut, einen Erfolgsfall zu sehen, wenn jemand kein Framework verwendet! Machen Sie weiter so!
Tolle Arbeit… außer nicht. Ich liebe die Methodik, den Prozess und das System und so weiter, aber die neue Homepage ist 1,8 MB auf einem großen Bildschirm und 2,4 MB auf einem kleinen Bildschirm. Das müssen sie in den Griff bekommen.
Es ist ein sehr schönes Thema und gute Informationen, die Sie geteilt haben. Vielen Dank für das Teilen mit uns.
Gute Lektüre. Viele gute Punkte.
Ich habe kürzlich etwas Ähnliches bei der Arbeit gemacht.
Dieser Beitrag ist für mich sehr aktuell. In den letzten Tagen habe ich über meine „Position“ zur Verwendung vorgefertigter Frameworks für ein großes Webdesignprojekt nachgedacht. Ich war kurz davor, dies als großartige Idee zu betrachten, da sie viele Probleme mit ihren Komponenten/Modulen gelöst haben, die sie als Muster erkannten. Das Problem ist, dass die Probleme im Kontext ihres Designs gelöst wurden. Ihre Designprobleme werden nicht unbedingt dieselben sein wie die Designprobleme meines großen Projekts. Ich resoniere jedoch stark mit Ihrem Ansatz, immer noch von diesen hervorragenden Frameworks zu lernen. Und ich liebe auch die Idee, dass sich das Team, das das Framework von Grund auf neu aufgebaut hat, am Ende belohnter fühlen wird, sowohl durch das Sehen der Früchte seiner Arbeit als auch durch das Vertrauen in seine Fähigkeit, es effektiv zu warten und anzupassen.
Nochmals, dieser Beitrag war zeitgemäß. Danke Chris und Ara!
Großartiger, großartiger Artikel.
Ich habe jedoch eine Frage:
Ich hasse die BEM-Kindelement-Syntax (die __). Ich finde sie einfach zu unschön.
Also war ich begeistert von Ihrer modifizierten Syntax, die ein einzelnes „-“ für Kindelemente verwendet.
Aber dann fragte ich mich (und hier ist die Frage): Was ist mit Elementen, die aus 2 Wörtern bestehen? Camel-Casing ist fast so hässlich wie doppelte Unterstriche. Was ist also Ihr Vorschlag? Vielleicht Elemente mit 2 Wörtern vermeiden?
Mit „gare“ meinte ich natürlich „hate“. Italienische Autokorrektur. ;)
Hallo Luca,
Auch mir gefiel die BEM-Doppelunterstrich-Syntax nicht, als ich sie zum ersten Mal kennenlernte. Ich mag Camel-Case eigentlich sehr gerne, also sind wir dabei für Elemente mit zwei Wörtern geblieben.
Letztendlich geht es nur um Ihre und die Vorlieben Ihres Teams. Eine andere Methode könnte sein, Elemente mit zwei Wörtern durch einen einzelnen Unterstrich zu trennen?
Harry Roberts hat einen großartigen Artikel über BEM: http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/
Er hat darin einen Abschnitt über die „Hässlichkeit“ von BEM, der mir die Augen geöffnet hat und mir geholfen hat, sie etwas zu übersehen. :)
Ich habe früher zwischen Komponenten und Modulen unterschieden. Aber diese Kategorien sind oft sehr vage. Es ist oft unklar, ob etwas als Modul oder als Komponente betrachtet werden sollte. Man könnte sagen, alles, was von Modulen verwendet wird, sollte eine Komponente sein, aber das hat für mich nicht immer funktioniert.
Eine weitere Frage: Wo platzieren Sie grundlegende Layout-Stile? Z.B. Wrapper-Elemente für Sticky Footer, Hauptelement (könnte auch als Modul mit Untermodulen betrachtet werden).
Vielen Dank für den nützlichen Artikel. Ich werde auf jeden Fall versuchen, diese Ressourcen für bevorstehende Aufgaben zu nutzen. Wir stehen bei der Arbeit vor einer ähnlichen Situation, da wir eine frühere Version des Frameworks verwendet haben und das Framework in der nächsten Version ziemlich stark refaktorisiert wurde. Wir haben uns entschieden, zurückzubleiben.
Das ist ziemlich unheimlich. Nachdem ich mit OOCSS, BEM und SMACSS herumgespielt habe, habe ich so ziemlich das gleiche Muster wie Sie gebildet, bis hin zu der Art und Weise, wie Sie Ihre Modifikatoren und Kinder mit – und – strukturieren. Ich bin wirklich zufrieden mit diesem Ansatz, er ist einfach genug, dass er Ihnen nicht im Weg steht und alles schön strukturiert hält. Danke für den tollen Artikel.
Ich würde das gerne bei der Arbeit machen, aber ich bekomme keine Unterstützung für die Idee, obwohl sie dringend benötigt wird. Wir haben mehrere Designer, die die Designs kodieren und sie zur Verfeinerung übergeben, so dass Nicht-Programmierer im Grunde unterschiedlich codieren. Ich habe das Gefühl, dass dies soooo viel Zeit und Kopfschmerzen sparen würde!
Ich muss jedoch sagen, dass doppelte Bindestriche in Klassennamen mir Angst machen. Ansonsten strukturiere ich meinen persönlichen Code absolut so, ein semantisches Element und seine Unterelemente sind ähnlich benannt. Ich muss nie wieder zurückblicken, um mich an einen Klassennamen zu erinnern. ;)
Ausgezeichneter Artikel, Ara. Ich habe gerade erst ein komplettes Frontend-Redesign für mein Unternehmen abgeschlossen, und es ist erstaunlich, wie ähnlich unsere Denkprozesse sind. Von ähnlichen Zielen über die Verwendung des LESS-Präprozessors bis hin zur Konzeption von Seitenelementen mit BEM-Methodik. Ich habe mich jedoch für eine leichte Variante der BEM-Namenskonvention entschieden, indem ich Modifikatoren mit einem doppelten Unterstrich vorangestellt habe.
Eine gängige Praxis ist die Trennung von Haut und Struktur, haben Sie das versucht? Persönlich fand ich, dass es bequemer war, sowohl Haut- als auch Strukturstile im selben Selektor zu belassen (im Gegensatz zum Wechseln zwischen mehreren Stylesheets/Orten, um dasselbe Element zu stylen). Stattdessen habe ich für die meisten meiner wiederverwendbaren „Haut“-bezogenen Stile entschieden, sie in Mixins und Variablen zu abstrahieren.
Ich habe auch versucht, Haut und Struktur in SASS zu trennen. Es hat bei mir auch nicht funktioniert, ich habe mich immer gefragt: „Ist diese Eigenschaft in der Struktur oder in der Haut?“ Es war eine Sache von Sekunden, aber am Ende hat es sich nicht gelohnt.
Ich fand es weitaus nützlicher, am Anfang der Datei eine Reihe von Variablen zu erstellen, die sowohl die Struktur (Höhe, Padding usw.) als auch die Präsentation (Farbe, Ränder usw.) verwalteten. Meiner Meinung nach sauberer und einfacher zu warten.
Hallo Ara – Das ist ein großartiger Artikel, danke!
Wie groß war Ihr Team, einschließlich Ihnen?
Toller Design-Tutorial-Artikel, danke!
Sehr interessanter Artikel. Ich liebe den Slogan „Erstellen Sie Ihr eigenes Bootstrap“. Ich lerne immer von Ressourcen wie Bootstrap, nutze sie aber selten für Projekte, da ich den Code so abfallfrei wie möglich halten möchte.
Herzlichen Glückwunsch zum Sprung ins kalte Wasser und danke für eine schöne positive Zusammenfassung dessen, was Sie und Ihr Team erreicht haben. Ich habe in den letzten Jahren ähnliche Systeme erfunden, und es gibt viel zu bedenken, um das System wirklich modular zu halten und zu verhindern, dass es zu einem weißen Elefanten wird.
Mein eigenes „Aha“-Erlebnis war die langsame Erkenntnis, dass es sich um ein hochkomplexes System handelt, das Input, Zustimmung und Unterstützung von mehr als nur mir selbst benötigt. Die Recherche dessen, was verfügbar ist, und die Diskussion Ihrer Ideen und Annahmen mit anderen Menschen ist wirklich wichtig, um sicherzustellen, dass das, was Sie bauen, wirklich nützlich ist und kein teures Ausstellungsstück darstellt und kein Rad neu erfindet, das bereits existiert.
Tolle Sachen. Danke für die Inspiration. Kein Zweifel, dies wird unter abgelegt: „Wenn es einfach wäre, würden es alle tun.“
Ein paar Gedanken:
1) Während ich die Anstrengung schätze, Ihr eigenes Framework zu entwickeln, macht es meiner Meinung nach mehr Sinn, die Modularität über alle Vektoren innerhalb des Systems beizubehalten, wenn Sie die gesamte Anstrengung als integriertes End-to-End-System betrachten. Ein spezifisches Beispiel wäre der Bereich Personalwesen und Schulung. Das heißt, jemanden zu finden, der Bootstrap-zentriert ist, wird viel einfacher sein, als jemanden zu finden, der Ihr System kennt (d.h. niemand außer den Leuten, die Sie einstellen und schulen). Ihre könnten eine bessere Mausefalle sein, aber überwiegt der Nutzen die zusätzliche Reibung?
2) Verstehen Sie mich nicht falsch, ich verstehe, dass es zwingende Umstände gab, aber ein Framework zu entwickeln, weil das Design in einem Silo / Vakuum erfolgte, fühlt sich für mich auch etwas „untypisch“ an. Oder wie ich gerne frage: Nennen Sie mir ein erfolgreiches Produktunternehmen, das Produktdesign ohne Rücksicht auf die Fertigung betreibt. Toyota zum Beispiel entwirft sicherlich kein Produkt (d.h. ein Auto) und fragt dann: „Okay, wie bauen wir das? Zu einem Preis, den der Markt bezahlen kann?“ Es ist ein integriertes System, kein eine Reihe von Silos, die durch einen Prozess aus Spucke und Klebeband verbunden sind, ja?
3) Was mich zu folgendem führt: Ara (oder Chris), gibt es eine Chance, diese Konzepte und Ideale zu nehmen und einen Artikel/eine Serie zu veröffentlichen, um zu diskutieren, wie man sie (am besten) in einer Agentur anwendet? Das heißt, ein Team (lesen Sie: einige Kernmitglieder, einige wechselnde) bedient viele Kunden / Marken? Was sind die Must-Dos, die Watch-out-Fors usw.? Wie baut man eine Kernwerkzeugkiste auf und erweitert und passt sie dann für einzelne Projekte und/oder Kunden an?