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

User Experience ist nicht UI?!

Der morgendliche Blick in unser internes Firmen-Wiki lässt mich grübeln: Wir sind auf der Suche nach neuen Kollegen, die uns in den verschiedenen Disziplinen unseres Projektalltags unterstützten. Speziell zwei Buchstaben im Kontext zum Frontend-Entwickler lassen mich bei einem Blick auf die Stellenbeschreibung nachdenken …

Wir suchen Frontend-Devs mit UX(-Faible). Das ist der Moment, in dem ich mich frage, ob wir wirklich alle wissen, was die zwei Buchstaben UX bedeuten und was User Experience eigentlich meint. Das es bei der Nutzererfahrung vielleicht nicht nur um ein schickimicki CSS3-, HTML5-, <add your shizzle frontend skill here>Interface für den Anwender geht. Denn das ist eine Grundannahme, die immer noch in vielen Köpfen festsitzt; wie der Glaube an den Weihnachtsmann bei kleinen Kindern.

Weiterlesen