Die Situation

Immer mehr IT-Abteilungen werden heutzutage nach Indien ausgelagert. Einfaches Programmieren wird heute als die Tätigkeit von Minderqualifizierten angesehen:

Out in the Bay Area there are plenty of folks who would love to create a little bit of protectionism around their I.T. jobs, but we are far better off letting a lot of those jobs go. Low-skill jobs like coding are moving offshore and what’s left in their place are more advanced project management jobs. (New York Times 2003-07-12)

Es ist an der Zeit, die eigene Rolle zu überdenken.

Wie niedrig auch immer die Stundensätze in Indien oder sonstwo sein mögen, es besteht immer Nachfrage nach echten Problemlösern.

Um sicherzustellen, daß die reine Codierung so wenig Anteil am Gesamtprojekt verschlingt wie nur möglich, muß man hochproduktive Werkzeuge einsetzen.

Warum also nicht die effizienteste aller Programmiersprachen einsetzen, APL?

Und dann muß man noch den richtigen Lösungsansatz wählen. Analysieren, spezifizieren, codieren, testen und wegschmeißen, alles von verschiedenen Leuten gemacht (wird auch CASE genannt) ist teuer und funktioniert schlecht bis gar nicht. Wir wissen das!

APL und Agile Programming

Im September 2005 wurde ich Mitglied von Optimas „Agile Programming Team“, das für den größten englischen Pensionfund arbeitet.

Hier arbeiteten wir in Zweier-Teams (pair programming), aber einer der beiden ist – ein Anwender. Und das funktioniert!

Nicht nur, daß der Anwender bekommt, was er braucht – er ist wirklich involviert in die Implementierung der Geschäftslogik wie in die Gestaltung des Interface.

Durch die Verwendung von Wörtern aus dem Fachvokabular des Anwenders sowie der Verwendung von Coverfunktionen für APL-Funktionen mit sprechenden Namen wie AND  oder MATCH oder definierten Funktionen wie isOneOf ist es für den Anwender möglich, den Programmcode zu lesen und zu verstehen.

Okay, da sind gelegentlich ein paar lustige Zeichen, aber die Anwender sehen da einfach drüber hinweg.

Natürlich ist dies nur dort nützlich, wo wirkliche Geschäftslogik implementiert wird. Es besteht keine Notwendigkeit, die APL-Funktion Match hinter einer Coverfunktion in anderen, mehr technischen Teilen der Anwendung zu verstecken.

Stephen Taylor, damals der Editor von Vector, BAA’s angesehenem APL Journal, hat einen Vortrag über die Rolle von APL in der agilen Programmierung auf der XP2006 gehalten.

Siehe auch seinen Artikel in Vector:  „Pair Programming With The Users