Ron Jeffries

Ron Jeffries ist ein bekannter XP-Evangelist, der mit Kent Beck am Chrysler C3-Projekt teilnahm. Er ist auch Koautor des Buches "Extreme Programming Installed". Auf XProgramming.com findet man eine Menge interessantes Material zum Thema XP.

Was ist das Geheimnis Ihrer Produktivität?

Für mich ist es, mit jemandem zusammenzuarbeiten, der die gleichen Ziele und Absichten hat. Ich bleibe ohne Partner schnell stecken. Zum Teil liegt es daran, dass ich selbst erfahre, was ich denke, wenn ich darüber rede, außerdem spornen mich Partner an und geben mir neue Ideen, wenn ich es brauche.

Was ist ihre beliebteste Computersprache und warum?

Smalltalk. Die Einfachheit der Sprache, die Entwicklungsumgebung, dass es Smalltalk bis ganz unten ist, und meine Vertrautheit mit der Sprache tragen dazu bei. Die einzige ähnliche Sprache, die ich kenne, ist Lisp, und da ich mich nicht meinen schlimmen Lisp-Kollegen angeschlossen habe, kenne ich die Sprache nicht so gut wie Smalltalk.

In Smalltalk hilft mir die Umgebung, den Code zu verstehen, den ich verwende und den ich schreibe. Ich stelle ständig Fragen über den Code: Wie wird er verwendet, wer setzt ihn ein, wie funktioniert das Teil, mit dem ich arbeite, was kann dieses Objekt sonst noch? Konventionellere Sprachen erschweren die Antworten.

In letzter Zeit arbeite ich mit Ruby und mag es sehr gerne. Wenn es Smalltalk beim Codebrowsen ähnlicher wäre, wäre es noch besser. Und natürlich ist Ruby in C implementiert, weshalb man Ruby gerade dann verlassen muss, wenn man wissen will, wie etwas funktioniert. Andererseits kann man eigentlich alles erweitern. Es ist eine nette Sprache, nur halt nicht ganz so nett wie Smalltalk.

Welchen Produktivitätssprung sehen Sie in naher Zukunft auf uns zukommen?

Ehrlich gesagt, keinen. Ich hoffe, die agilen Methoden wie XP werden den Teams zu höherer Produktivität verhelfen, und ich hoffe, dass die Welt lernen wird, dass dynamisch typisierte Sprachen wie Ruby und Smalltalk produktiver sind als statisch typisierte.

Was uns mehr als alles andere bremst ist wahrscheinlich Komplexität: Die Komplexität der anstehenden Probleme wird immer größer und die notwendigen Voraussetzungen werden auch immer zahlreicher und komplexer.

In den meisten komplexen Problemen steckt ein einfaches Problem, und mit die richtigen einfachen Lösungsansätze machen den Unterschied aus. Aber anscheinend sind wir weit davon entfernt, diese Wahrheit zu begreifen.

Ich hoffe auf einen Produktivitätssprung und dass ich nur zu alt und dumm bin, um ihn vorherzusehen. Bis dahin zähle ich auf kleine Gruppen kluger Leute, um die Dinge in Bewegung zu halten.

Was halten sie für den größten Produktivitätskiller?

Komplexität. Als junge Programmierer sind wir fasziniert von unserer Fähigkeit, Komplexität zu bändigen und schließlich glauben wir, dass das unsere Stärke ist. In Wahrheit hat Einfacheit die größere Macht, aber anscheinend erkennen das nur wenige von uns und entwickeln die Fähigkeit, komplexe Dinge zu vereinfachen.

Komplexität kommt aber nicht nur von den Programmierern. Unsere Gesellschaft scheint komplexe Lösungen zu bevorzugen, wo einfache ausgereicht hätten. Wir scheinen große Organisationen kleinen vorzuziehen. Wir wählen komplexe Methoden statt einfacher. Wir sind anscheinend für starke Kontrolle anstatt für wachsende Strukturen.

Hier würde ich gerne auf die vorige Frage zurückkommen, aber ich kann die Anmerkung auch hier machen. Ein möglicher Produktivitätssprung könnte der Einsatz kleiner Systeme mit sich ausbildendem Verhalten sein. Zum Beispiel ist die Luftraumüberwachung zentral kontrolliert, schwierig und in vielen Lufträumen bis zur Kapazitätsgrenze ausgelastet. Wenn wir statt dessen intelligente Flugzeuge hätten, die wüssten, wo die nächsten Flugzeuge sind, und die gemeinsame Flugregeln hätten, sollte dieses Problem in den Griff zu bekommen sein.

Dies wird sicherlich kommen. Das Internet schafft diese Art von Dinge, wie zum Beispiel Gnutella im Vergleich zu Napster. Wir haben die ersten intelligenten Autos, die wissen, was um sie herum passiert. Wir haben sogar Kinderspielzeug, dass Kinder mit anderen Kindern zusammenbringt, die ein ähnliches Spielzeug haben.

Vielleicht kommt der Durchbruch mit vielen kleinen Prozessen und Prozessoren. In einigen Bereichen wird das mit Sicherheit passieren.

Was halten Sie von generativem Programmieren?

Auf einem bestimmten Level ist es etwas, das jeder kompetente Programmierer einsetzt. Ein typisches Feature einer Applikation wird Gemeinsamkeiten mit dem nächsten Feature haben: Vielleicht brauchen wir immer einen Datensatz, eine Buchungsnummer, ein Icon, einen Menüeintrag, eine Möglichkeit, sich zu löschen. Die heutigen Sprachen können es schwierig machen, all das zusammenzuhalten, und damit machen sie das Refaktorieren schwierig. Also schreiben kompetente Programmierer oft Tools, mit denen sie den Code aus einer kompakten Feature-Beschreibung generieren.

Diese Tools sind sehr mächtig, oft aber nur für die spezielle Situation ausgelegt. Sie können niemals alles, und werden oft nur einmal verwendet, um den ersten Entwurf für den Code zu erstellen.

Ich denke, wir werden wieder lernen müssen, dass Generierung selten alles erledigen kann, aber dass mächtigere Werkzeuge in der Art einer "Rundreise für generatives Programmieren" entstehen werden, die uns bei unseren Aufgaben helfen. Bis jetzt kenne ich noch nichts, das meine Probleme besser lösen würde als Smalltalk oder Ruby, aber in diesen Sprachen wende ich generative Techniken häufig an. Und natürlich kann es sein, dass es etwas Gutes gibt, das ich nicht kenne. Gibt es etwas?



Zurück zur Produktiver Programmieren Seite  Zurück zur Approximity Hauptseite  Bei Amazon.de kaufen