Taking Ownership of your Workflow

As a developer, you are constantly learning and improving. There are a lot of different benchmarks you are supposed to fulfill. When you are applying for a job, you are supposed to check all the boxes. Do you know Java? Do you have experience working in an agile environment? Design patterns? TDD? In consulting, you get to do this again with every new customer and project. But what then?

In our daily business, things get a bit fuzzier. It boils down to perceived competence and speed. Does this developer know what they are talking about? Do they get work done on time? The first boils down to the checkboxes again. The latter, though … How do you become faster? Without compromising on quality, that is.

Weiterlesen

Alles in Ordnung?

Eine gute Ordnung und Struktur in die Organisation des Quellcodes einzubringen ist grundlegend. Sie wirkt sich nicht nur positiv auf die Robustheit, Testbarkeit und Interoperabilität unserer Anwendung aus, sondern sorgt auch dafür, dass unser Programm von anderen Entwicklern leicht verstanden, übernommen und erweitert werden kann.

Unordnung ist in der Softwareentwicklung gleichzusetzen mit technischen Schulden. Unübersichtlichkeit, Wiederholungen und unerwünschte Abhängigkeiten in Quellcodes führen zu erhöhten Lieferzeiten und machen die Weiterentwicklung und Wartung eines Programms um ein Vielfaches teurer.

Ich erläutere in diesem Artikel, wie Unordnung in Softwareprojekten entstehen kann und gebe Tipps aus meiner persönlichen Erfahrung, wie man dieser mit der Etablierung einer dauerhaften Ordnungskultur entgegenwirken kann.
Weiterlesen

Intime Eingriffe in Teams und Schätzprozesse mit Story Points

Dieser Blogpost ist ein Erfahrungsbericht aus einem Softwareprojekt. Es wird die Umstellung des Vorgehens bei Schätzungen mit Story Points im Backlog-Refinement beschrieben. Wer wenig Zeit hat und eigentlich nur ein Management-Summary haben möchte, sollte einen einen Blick auf die Zusammenfassung am Ende des Posts werfen. Für alle Anderen beginnen wir jetzt mit dem ersten Teil und der Problem­beschreibung als Auslöser der Umstellung.

Weiterlesen

Natural Language Understanding (NLU) with PHP

Anyone can write an Alexa Skill in PHP, but what about NLU, natural language understanding? There are now some tools for this, but they were written in Python, as it is often the case in the machine learning environment. Below I show you how to do this with RASA NLU in PHP.

Weiterlesen

BreakUX – schlechte UX kann jeder

Schlechte UX kann jeder … das hört sich trivialer an, als es ist. Trivial wäre, gedankenlos und unreflektiert zu handeln und einfach irgendetwas zu tun. Bei der Implementierung von Benutzeroberflächen in der Software-Entwicklung passiert das leider viel zu oft. Aber auch bei der Planung neuer Features, der Gestaltung von Kundenbefragungen, usw. zeigt sich immer wieder eine gewisse Fahrlässigkeit.

Bei bewusst schlechter UX geht es aber gerade nicht um Gleichgültigkeit oder Fahrlässigkeit. Es geht vielmehr um das wohlüberlegte Treffen möglichst schlechter und bösartiger Entscheidungen. Das ist ein deutlicher Unterschied.

Weiterlesen

Erstellen einer einfachen REST API mit Spring Boot

Dieser Artikel richtet sich vorwiegend an Leser, die das Spring Framework noch nicht kennen, und soll ein kleines Intro in dieses geben.

Im Folgenden wollen wir beispielhaft einen einfachen Spring Boot Service erstellen, der ein REST API für Wetterdaten zur Verfügung stellt.
Weiterlesen

Zusammenarbeit über Teamgrenzen hinweg

Innerhalb eines Entwicklerteams funktioniert die Kooperation meist sehr schnell ziemlich gut – allerdings oft nur bis zur Teamgrenze. Team- oder auch unternehmensübergreifend dagegen wird weiterhin versucht, Kooperation in Form von Hierarchien, Verträgen und Verantwortlichkeiten festzulegen. So werden zum Beispiel Wissenssilos gefördert und das wahre Potenzial der Teams kaum ausgeschöpft.

Warum ist das so? Was kann man machen, um die Zusammenarbeit über die Teamgrenze hinaus zu fördern? In meinem letzten Blogpost Mentale Modelle für eine bessere Zusammenarbeit habe ich euch erzählt, wie wir bei Mayflower die Zusammenarbeit innerhalb der Teamgrenzen stärken. In diesem Beitrag zeige ich Wege auf, wie man das teamübergreifend bewerkstelligt.
Weiterlesen

Mentale Modelle für bessere Zusammenarbeit

Wir bei Mayflower schreiben uns auf die Fahne, dass wir mit ehrlicher Kooperation, Agilität und Kompetenz gute Software bauen. Was bedeutet das genau?

Ehrliche Kooperation im agilen Kontext bedeutet, es existieren gemeinsame mentale Modelle, man hat ein gemeinsames Verständnis. Wir nehmen das agile Manifest ernst, sprechen direkt zueinander, unterhalten uns, teilen Erfahrungen … und bauen somit ein gemeinsames Verständnis auf.
Weiterlesen

Dude … we have to talk about this (in JavaScript)

Recently I stumbled about this post about The complete elimination and eradication of JavaScript’s this.

To give you a TL;DR: The author states that almost no JavaScript developer understands this, that it is a terrible concept, and introduces a library that allows developers to avoid using this in many circumstances. So, we had a twitter discussion with pretty opposing standpoints: I think this in JavaScript is quite simple, versatile and really useful.

But in the next days, it got me thinking …

Weiterlesen

Vom Mayday-Projekt zum eigenen DevCamp-Track – so entstehen Themenschwerpunkte bei Mayflower

Steffen und Katrin beschäftigen sich schon länger mit den Themen UX/UI; nicht nur, aber oft während eines Maydays, unsere zweiwöchentlich stattfindende Slacktime. Dort, wie auch auf firmeninternen Barcamps, probieren sie mit Kollegen Methoden wie User Story Mapping oder Empathy Maps aus; Dinge, die inzwischen auch Einzug in Kundenprojekte gefunden haben. Was sich sonst noch alles im Laufe der Zeit aus „lass uns gemeinsam Wissen aneignen“ ergeben hat und warum es manchmal gar nicht so schlecht ist, wenn der Nutzer betrunken ist, erfährst du im Interview. Weiterlesen