Prinzipien

Verstehe die Probleme deiner Kunden!

Nur wenn ich das Problem hinter einer Anforderung versteht, kann ich die optimale Lösung für Sie entwickeln. Daher ist mir wichtig nicht nur zu verstehen was sie haben wollen, sondern auch warum.

Behalte die Zukunft im Auge!

Wenn ich heute schon weiß, was morgen an neuen Anforderungen auf ihn zukommen kann, kann ich dies schon bei der Umsetzungen eines ersten Meilensteins mit berücksichtigen. Wobei die Umsetzung des ersten Meilensteins dadurch nicht länger dauern sollte.

Halte den Code sauber

DRY (Don't Repeat Yourself) - KIS (Keep It Simple) gehören für mich zu den obersten Prinzipien bei der Umsetzung eines Projektes. Sich wiederholende Programmteile in Funktionen und Module auszulagern dauert in der Regel nur minimal länger, als diese einfach zu kopieren. Es spart aber bei späteren Anpassungen viel Zeit. Das Programm darf sich dadurch aber nicht verkomplizieren. Programme möglichst einfach und verständlich zu halten ist wichtiger als redundanten Programmcode zu vermeiden. Lösungen, die schon bei der Entwicklung einfach sind, können auch später schneller erfasst werden, wenn es darum geht diese anzupassen oder Fehler zu suchen.

Code immer ein wenig sauberer hinterlassen als er war.

Wenn man nach etwas Abstand nochmal über seinen Quellcode schaut und sich fragt, was da eigentlich passiert, muss man handeln. Egal wie groß der Zeitdruck auch ist, wenn man sich jetzt nicht die Zeit nimmt und den Quellcode so anpasst, dass er leichter verständlich ist, oder ihn zumindest entsprechend dokumentiert, wird man an dieser Stelle immer wieder Zeit verlieren. Deshalb ist es für mich selbstverständlich, den Quellcode immer ein wenig sauberer zu hinterlassen als ich ihn vorgefunden habe.

Erst das Konzept, dann die Implementierung

Bei komplexeren Problemen ist eine gut Konzeption wichtig. Sich am Anfang die Zeit zu nehmen, sichert zum einen eine saubere Architektur und kann bei der Umsetzung viel Geld sparen.

Automatisierte Test sind Pflicht

Jeder erwartet heute schelle Lösungen, die günstig umgesetzt sind und dann stabil und korrekt funktionieren. Automatisierte Tests ist weder teuer noch aufwändig, wenn man sie von Anfang an nutzt. Je später man anfängt ein Produkt automatisiert zu testen, desto teurer wird es und um so größer ist die Wahrscheinlichkeit, dass Teile nicht abgedeckt sind. Dabei ist TDD (Test Driven Development) genauso wichtig wie BDD (Behavior Driven Development). Besonders wenn die Komplexität einer Anwendung wächst, sparen automatisierte Tests Zeit und geben dem Entwickler die Sicherheit, dass das Produkt funktioniert. Mit dieser Sicherheit, sind auch größere Umbauten an einem Programm kein Problem. Besonders BDD kann für ihr fertiges Produkt einen echten Mehrwert bedeuten. So lassen sich mit ihrer Hilfe, quasi per Knopfdruck, kostengünstige Tutorials für ihre Kunden erstellen. Diese sind immer auf dem aktuellsten Stand, was zu einer höheren Akzeptanz bei ihren Kunden führen und bei ähnlicher Funktionalität das Entscheidungskriterium für Ihr Produkt sein kann.