Von einfachen Assembler Anweisungen (1979 noch ohne Compiler, rein binär) bis hin zu Hochsprachen habe ich so ziemlich alles ausprobiert, was in IT-Projekten benötigt wurde. Die Programmiersprache, welche benutzt wurde, orientierte sich an den Anforderungen und nicht daran, welches Wissen gerade vorhanden war. Eine Programmiersprache ist schnell zu erlernen, die sie begleitenden Bibliotheken stellen hier die größeren Herausforderungen dar.
Aber auch das wurde im Zeitalter der sehr guten Entwicklungsumgebungen immer einfacher. Hier kann ich Eclipse, aber auch Xcode und jetzt natürlich das VisualStudio besonders hervorheben. Am Anfang war man froh, wenn es einen einfachen Editor mit Compiler und Debugger in einem Tool gab (das hat ja auch zum überragenden Erfolg von Turbo-Pascal geführt), jetzt kann man in einer laufenden Anwendung sogar noch Änderungen vornehmen, die dann in Echtzeit eingebunden werden.
Geholfen hat mir meine Herkunft als Dipl.-Ing. Elektrotechnik, denn ich bin mir stets bewusst, was mit dem Code der geschrieben wird letztendlich passiert, auch wenn sich die CPUs hinsichtlich der Befehlssätze stetig weiterentwickeln.
Durch die Kenntnisse der Abläufe ist es für mich recht einfach zu verstehen, woher Performance Probleme kommen und wie man sie beheben kann. Zunächst ist ja nur wichtig den Code fehlerfrei zu bekommen, wenn er dann jedoch von mehr Usern oder mit mehr Daten im Einsatz ist, merkt man, dass zur Benutzbarkeit auch eine gewisse Performance gehört.
Test
Die Performance gehört daher für mich auch zum Gesamttest einer Anwendung dazu. Im Testumfeld kann ich auch mit weitreichenden Erfahrungen aufwarten, denn der Entwickler-Test gehört für mich stets zum Umfang meiner Arbeit.
Im Bereich des Projektmanagements lege ich auch viel Wert auf eine gute Testabdeckung, sei es durch modernere Ansätze wie Test-driven development oder durch viele automatisierte Tests um so einem continuous deployment näher zu kommen.
In diversen Projekten habe ich auch Abnahmetests verfasst und durchgeführt. Hier lege ich Wert auf die Definition der erwarteten Ergebnisse.
Gerne habe ich die Tests den Entwicklern an die Hand gegeben, damit sie wissen, worauf der Kunde wert legt.
Das Schreiben von Testfällen führte sehr häufig dazu, dass die Designs präzisiert oder angepasst werden mussten. Insofern sind Testfälle für mich auch immer Bestandteil von beschreibenden technischen Designs. Diese können natürlich auch in den Tickets für die Entwickler mit verfasst werden um so automatische Tests zu ermöglichen.