Anwendungs-Entwicklung und Qualitäts-Sicherung

Als Auftraggeber einer individuell programmierten Software stehen Sie vor dem Problem, dass Sie nicht beurteilen können wie "gut" eine Anwendung programmiert ist. Sie können nur die Funktionalität prüfen, aber nicht weitere Aspekte die die Qualität einer Programmierung ausmachen:

  • Sicherheit
  • Performance
  • Wartbarkeit
  • Architektur/Design

Diese Punkte kommen meistens erst später zum Tragen. Wenn ein Hacker die Anwendung "knackt", wenn statt 20 Usern 2000 pro Stunde darauf zugreifen, wenn Erweiterungen fällig werden oder wenn ein neuer Programmierer sich in den Code einarbeiten muss.

Im schlimmsten Fall kann es passieren (und das kommt gar nicht so selten vor), dass man feststellt, die ganze Anwendung muss neu programmiert werden, da die Architektur keine Erweiterungen zulässt oder der Code so unübersichtlich ist, das man nicht weiß, welche Folgen Änderungen in einzelnen Teilen haben. So etwas im laufenden Betrieb umzusetzen ist dann meistens extrem aufwändig und teuer.

Dazu kommt, dass jede Programmierung immer ein Kompromiss zwischen der "Reinen Lehre" und pragmatischen bzw. wirtschaftlichen Überlegungen ist. Als Auftraggeber können Sie (zunächst) nicht beurteilen, ob ein Programmierer da die richtige Mischung getroffen hat.

Darum ist es meistens "billiger" einen teureren Programmierer mit guten Referenzen zu engagieren, als den, der einem das günstigste Angebot macht.

Zu einer guten Programmierung gehören u.a.:

  • übersichtlicher, sauber gekapselter Code - wie schnell erkennt man side effects bei nachträglichen Änderungen, wie aufwändig werden nachträgliche Änderungen sein
  • E2E Tests für die wichtigsten Funktionen und Unit tests - unentbehrlich für die Qualitäts-Sicherung, erleichtern das Refactoring und helfen bei der Einarbeitung für neue Entwickler
  • ein gutes Tool-Set: IDE (z.B. PHPStorm), git, JIRA & Confluence, Deployment-Tools, Helpers (gruntjs, npm, less oder sass etc.)
  • und last but not least: ein Programmierer der kommunizieren kann und "die gleiche Sprache" spricht wie sein Auftraggeber