Das verstehen wir unter „guter Software“

24. August 2022 von Mareike Burgdörfer

Seit August werden wir von unserem neuen Softwareentwickler Jonas Meer unterstützt. Wir kennen ihn schon länger und wissen, dass ihm gute Software enorm wichtig ist. Perfect Match, denn das ist es für uns auch. Aber was ist gute Software eigentlich? Wahrscheinlich definiert das jede:r anders. Wir haben im Team diskutiert und unsere Definition festgehalten:

Dominik Burgdörfer und Jonas Meer im Gespräch vor einem Flipchart mit Notizen.
Dominik Burgdörfer und Jonas Meer diskutieren darüber, was gute Software für sie bedeutet.

Eine Software ist gut, wenn...

  • sie schnell und sicher anpassbar ist.
  • UI & UX möglichst nah an die Realität / den Arbeitsablauf angepasst sind.
  • die UI aufgeräumt ist und Ablenkungen ausgeblendet werden.
  • klar verständlich ist, was genau passiert, wenn eine Aktion ausgeführt wird. (z.B. beim Klick auf einen Button)
  • sie ein schnelles und verständliches Feedback nach einer Aktion gibt – auch im Fehlerfall.
  • sie gut dokumentiert ist. Vor allem auch für Entwickler:innen.
  • die Ordnerstruktur im Repository klar ist.
  • sie nur wirklich notwendige Abhängigkeiten hat – so wenig wie möglich.
  • das initiale Setup so einfach wie möglich ist.
  • sie auch von anderen wartbar und anpassbar ist.
  • sie eine hohe und sinnvolle Testabdeckung hat.
  • sie lange „lebt“.

Und wie entwickeln wir „gute Software“?

Langsam schnell gehen Umso ordentlicher wir arbeiten, umso schneller geht es. Vor allem, wenn es mal drängt ist es enorm entspannend zu wissen, dass eine umfangreiche Testsuite da ist und alles absichert.

Enge Zusammenarbeit mit User:innen Wir wollen Web-Apps nicht nur am Schreibtisch erstellen, denn sonst besteht die Gefahr, dass sie nachher viel zu weit weg von der Realität sind. Wir begrüßen es daher, wenn spätere User:innen schon früh in den Entwicklungsprozess mit eingebunden werden.

Ausführliche Testdaten sind gold wert Testdaten sollten so nah wie möglich an den echten Daten dran sein, regelmäßig aktualisiert werden und dem ganzen Team zur Verfügung stehen. Denn dann ist die UI näher an der Realität und bisher nicht mitgedachte Anwendungsfälle fallen viel früher auf.

Komplexe Algorithmen herunterbrechen Oft benötigt man mehrere Stunden für ein Feature, das am Ende aber nur in ein paar wenigen Zeilen Code umgesetzt wurde. Das sieht dann nach wenig Arbeit aus – unser Ziel ist jedoch, komplexe Algorithmen in möglichst einfache Struktur umzuwandeln und verständlich zu machen. Denn wenn unsere Kundschaft Monate später eine neue Anpassung möchte und wir an den Code rangehen müssen, ist es wichtig, dass wir uns schnell wieder in der Codebase zurecht finden. Dabei hilft auch eine gute Doku / User Experience für Entwickelnde.

Entwickler:innen sind auch User:innen Auch für uns muss die UX mitbedacht und geplant werden: Klare Ordnerstruktur, klare Architektur, sinnvolle Testsuite, verständliche Doku und eine gute Teamabstimmung, damit unser Code einheitlich bleibt, sind enorm wichtig.

Im Web, ums Web und ums Web herum!