Unkonventionelles UX-Testing: The User is Drunk

„Don’t make me think“ – nach dem gleichnamigen Buch von Steve Krug – ist der Claim, der Usability und User Experience seit nun fast 20 Jahren bestimmt. Nutzer wollen nicht nachdenken, wenn sie tagtäglich Produkte verwenden. Die Bedienung soll „intuitiv“ sein und schnell zum gewünschten Ergebnis führen.

Intuitive Bedienung ist jedoch eine der größten Mythen der Produktentwicklung, da die vermeintliche Intuition bei der Verwendung von Produkten fast immer auf vorher erlerntes Verhalten zurückgeführt werden kann. „There really is no user interface metaphor that is truly intuitive“ proklamierte Scott Francis 1994 (The Only Intuitive Interface Is The Nipple). Es gibt keine intuitiven Bedienkonzepte – moderne User Interfaces sind immer eine Mischung aus gewohnter (und damit erwarteter) Methodik und der Anreicherung eben dieser mit neuen Ideen und Konzepten.

Weiterlesen

10 Lessons Learned für besseres Pair Programming

Es ist Zeit für Lessons Learned: Nachdem ich in meinem letzten Blogbeitrag eine Einführung in das Thema Pair Programming gegeben habe, möchte ich in diesem Artikel meine persönlichen Erfahrungen mit dieser Arbeitstechnik teilen. Hierzu stelle ich die wichtigsten Regeln vor, die man beim Pairing beachten sollte. Außerdem gebe ich Tipps, die sich im konkreten Doing bei Mayflower als Lessons Learned herausgestellt haben.
Weiterlesen

Pair Programming

Obwohl ich seit 15 Jahren als Softwareentwickler tätig bin, habe ich Pair Programming erst vor ca. drei Jahren bei Mayflower kennengelernt und zum ersten Mal angewandt. Bei all meinen vorhergehenden Tätigkeiten war ich ausschließlich als Code-Einzelkämpfer unterwegs und damit beschäftigt, so schnell und so effizient wie möglich Quellcode zu produzieren.

Ich möchte in diesem Artikel eine grundlegende Einführung in das Thema Pair Programming geben, indem ich die wichtigsten Aspekte zu dieser Arbeitstechnik vorstelle.

Weiterlesen

4 Tipps für besseres Feedback in Sprint Reviews

Als Scrum Master habe ich schon an sehr vielen Sprint Reviews teilgenommen und mir dabei oft die Frage gestellt: „Wie bekomme ich mehr und brauchbareres Feedback im Review?“

In diesem Blogpost möchte ich meine Erfahrung teilen und zeigen, wie nützliches Feedback gefördert werden kann. Außerdem werde ich meine Fehler nennen, die dazu führten, dass kein brauchbares Feedback gegeben wurde.
Weiterlesen

Redux-Workshop für Einsteiger

In diesem Workshop gebe ich eine schnelle und praktische Einführung in das State-Handling-System Redux. Hierfür wollen wir unser bestehendes React-Projekt aus dem React-Workshop für Einsteiger so umschreiben und erweitern, dass das State-Handling unserer Task-Listen-Applikation komplett vom Redux-System übernommen wird und dessen Vorteile in der Praxis sichtbar werden.

Weiterlesen

„Als Student kann man bei Mayflower unheimlich viel bewegen“

Praktikum, Werkstudententätigkeit, Betreuung von Bachelorarbeiten – all das bieten wir für Studenten an. Aber wie sieht es konkret aus? Wie ist es als Student bei Mayflower zu arbeiten? An welchen Projekten arbeitet man da? Was lernt man? Was nimmt man für das Studium mit?

Einen Einblick gibt Stephanie Ehrenberg, die seit 2016 Teil der Mayflower-Crew ist und Informatik an der Hochschule München studiert. Steff hat bei uns zunächst ein Pflichtpraktikum im Rahmen ihres Studiums absolviert und uns danach als Werkstudentin unterstützt. Seit kurzem schreibt sie nun auch ihre Bachelorarbeit bei uns.
Weiterlesen

React-Workshop für Einsteiger

In diesem React-Workshop möchte ich einen schnellen und praktischen Einstieg in die Entwicklung mit dem JavaScript-Framework bieten und alle Bestandteile vorstellen, die man benötigt, um eigene Anwendungen mit dem erfolgreichen und weit verbreiteten System zu entwickeln.

Hierfür erstellen wir zusammen eine kleine Web-Applikation, die den Benutzer eine ToDo-Liste verwalten lässt, in der er neue Tasks anlegen sowie bestehende Tasks löschen und umpriorisieren kann. Im Laufe der Umsetzung werden alle wichtigen Grundprinzipien von React Schritt für Schritt vorgestellt und in die Praxis umgesetzt.

Was ist React?

React-Logo

Bei React handelt es sich um ein von Facebook ins Leben gerufenes Web-Framework für die Entwicklung von Single-Page-Webanwendungen. Die einzelnen Bestandteile unserer Anwendung werden unter React konsequent durch die Realisierung unabhängiger und modularer Komponenten konzeptioniert.

Der Benutzer erfährt hierdurch eine sehr responsive und gesamtheitliche User-Experience, die mit Hilfe des Frameworks sehr einfach und gut strukturiert umgesetzt werden kann.

Weiterlesen

„Mit NixOS hat man keine Angst mehr, sein System neu zu deployen.“

NixOS Hummingbird LogoVor ein paar Tagen ist NixOS 17.09 „Hummingbird“ erschienen. An Bord sind nicht nur Updates und Neuerungen wie beispielsweise das Handling von UIDs/GIDs, sondern auch zahlreiche neue Services.

Die dafür verantwortlichen Release-Manager Franz und Robin sind Admins in unserem Münchner Mayflower-Büro – und wer hätte es geahnt: Beide besitzen eine ausgeprägte Leidenschaft für das Betriebssystem, das vor allem im Bereich des Configuration Managements einiges anders macht als andere Linux-Distributionen und Puppet, Ansible und Co damit vergessen macht.

Weiterlesen

Symfony Flex – der Workflow für Symfony 4.0

Im November ist es wieder so weit: Wenn in Cluj die diesjährige Symfony Con stattfindet, wird es auch zur Vorstellung von Symfony 4.0 kommen. Neben einigen Änderungen in der Struktur und Größe einer Symfony-Applikation scheint es eine weitere bahnbrechende Veränderung für Symfony-Applikationen zu geben: Symfony Flex.

Bei Symfony Flex handelt es sich nicht um ein neues Produkt oder ein neues Bundle; vielmehr geht es darum, einen neuen Workflow zu etablieren – einen Workflow, bei dem den Entwicklern beim Erstellen einer Symfony-Applikation einiges an Arbeit abgenommen werden soll.

Weiterlesen

Of races and mutexes: synchronizing async operations in JavaScript

While JavaScript is a strictly single-threaded language, the asynchronous nature of its execution model can easily lead to situations in which two or more async operations run at the same time and compete with the program flow depending on which operation succeeds first. The result is a specimen of the dreaded species of race conditions.

Issues of this type can be arbitrarily hard to reproduce, debug and fix, and I guess that every seasoned JavaScript developer can relate one or two horror stories where they literally spent days before finally fixing such an issue for good.

Race conditions are a well-known problem from any language that supports for concurrency, and often a mutex is used as a tool to synchronize such operations. This article shows how to apply the concept of mutexes to JavaScript in order to avoid race conditions.

Weiterlesen