Engineering vs. Programmierung.

Engineering vs. Programmierung

Einleitung

In meiner Interim-CTO-Karriere habe ich oft Softwaresysteme gesehen, die schnell entwickelt und mit großem Tamtam an Kunden ausgeliefert wurden. Einige dieser Systeme waren über einen sehr langen Zeitraum erfolgreich.

Aber einige von ihnen scheiterten nach der Veröffentlichung kläglich und mussten von Grund auf neu geschrieben werden. Einige führten sogar zum Scheitern von Unternehmen.

Die meisten dieser Misserfolge wurden durch den falschen Ansatz bei der Softwareentwicklung verursacht. Es ist der Unterschied zwischen “Programmierung” und “Engineering”, der den entscheidenden Unterschied macht.

Programmierung

Programmierer schreiben Code. Sie erledigen die Aufgabe. Sie gehen weiter. Viele Agenturen, die Sie beauftragen, arbeiten genau so.

Das Problem bei diesem Ansatz ist, dass es keine langfristige Perspektive gibt. Einfach etwas zusammenzuhacken kann für einen schnellen Prototyp in Ordnung sein. Aber es wird Ihr Geschäft ruinieren, wenn dieser Code von Kunden verwendet wird.

Die Symptome einer “Programmierungs”-Mentalität sind:

  • Sie haben einzelne Engineers, die Dinge alleine und nicht im Team erledigen.
  • Aufgaben werden einer Person zugewiesen, nicht einem Team.
  • Sie haben viele Notfälle in Ihrer Abteilung, die nur von einer Person behoben werden können.
  • Die gleichen Ausfälle passieren immer wieder. Grundlegende Probleme werden nicht behoben.
  • Teile Ihrer Anwendung sind instabil und bleiben nach mehreren Eingriffen instabil.
  • Teams beschweren sich über veraltete Software und langsame Developer Experience, aber es wird nichts dagegen unternommen.

Engineering

Engineering unterscheidet sich grundlegend von Programmierung. Leider ist gutes Engineering auf Management-Ebene schwer zu bemerken. Gutes Engineering bedeutet, dass Systeme ohne Probleme funktionieren. Neue Anforderungen werden von zuverlässigen Teams umgesetzt. Keine Helden, die Probleme beheben, kein Geschrei - nur eine sehr ruhige, fokussierte Entwicklung großartiger Features für Ihr Unternehmen.

Gutes Engineering bedeutet, nicht nur den Code zu schreiben, sondern auch sicherzustellen, dass der Code langfristig nutzbar ist. Das bedeutet, dass ein stabiles Team um eine Codebasis aufgebaut wird. Best Practices werden etabliert. Single Points of Failure sind eine absolute Ausnahme.

Alle Systeme sind für eine längere Lebensdauer ausgelegt. Themen wie Security, Software-Updates oder veraltete Libraries sind nie ein Problem.

Die Symptome:

  • Die Produktteams entwickeln konstant coole Sachen mit hoher Qualität.
  • Es ist nie ein Problem, wenn jemand in den Urlaub geht.
  • Post-Mortems werden durchgeführt, um sicherzustellen, dass Fehler nicht wiederholt werden.
  • Notfälle sind eine absolute Ausnahme - und die gleichen Bugs tauchen nicht immer wieder auf.

Fazit

Wenn Sie langfristig im Geschäft sind, dann ist Programmierung nicht der richtige Ansatz. Es ist sehr riskant und wird Ihr Geschäft letztendlich ruinieren.

Die Lösung ist, echtes Engineering zu betreiben und auch echte Engineers einzustellen, die sicherstellen, dass Ihr Unternehmen langfristig erfolgreich ist.

Mehr