[Dune] Re: Deeskalation und stay cool.
Robert Kloefkorn
robertk at mathematik.uni-freiburg.de
Wed Feb 22 22:39:18 CET 2006
Hallo Dune Entwickler,
hallo Peter, hallo Oliver, hallo Christian, hallo Markus,
ich möchte hiermit bekanntgeben, dass ich mich nach der Veröffentlichung
von Dune 1.0 aus der Dune Entwicklung zurückziehen werde. Besser gesagt,
werde ich noch bis Ende März/Anfang April einen Teil meiner Zeit dem
Projekt zur Verfügung stellen. Danach werde ich mich ausschließlich um
meine Dissertation kümmern. Das ist sicher der wichtigste Grund für
diesen Entschluss, wobei allerdings bei mir bisher keine Klarheit
darüber herschte, wie ich mich entscheiden sollte, da ich sehr viel in
dieses Projekt investiert habe. In den letzten Wochen ging es im Projekt
allerdings wieder so drunter und drüber, dass ich, um vor allem für mich
Klarheit zu schaffen, in welcher Beziehung ich in Zukunft zu diesem
Projekt stehen möchte, nun zu dieser Entscheidung komme. Ich möchte auch
klarstellen, dass ich in dieser mail ausschließlich für mich spreche.
Weiterhin ist diese mail nicht als "große Abrechnung" zu betrachten. Ich
lege Wert darauf, auch weiterhin Kontakt zu allen Mitgliedern des Dune
Entwicklerteams zu halten. Falls ich in dieser mail Formulierungen etc.
verwende, die dem Einen oder Anderen mißfallen, bitte ich dies zu
entschuldigen. Diese mail ist dazu gedacht, mich zu erklären, und nicht
um noch mehr Unfrieden zu stiften.
Es entsteht sicher der Eindruck, es handelt sich um eine
Kurzschlußaktion. Dies ist nicht so. Im letzten Jahr der Dune
Entwicklung ist so viel schief gelaufen (aus meiner Sicht), dass dies
nur die letzte Konsequenz einer längeren Entwicklung ist, die sicherlich
durch meine hohen persönlichen Investitionen in dieses Projekt
hinausgezögert wurde. Für ein besseres Verständnis meiner Entscheidung
führe noch kurz einige Gründe auf, die die Situation aus meiner Sicht
darstellen und für mich Gründe sind, nach 1.0 nicht länger an der Dune
Entwicklung teilzunehmen.
1) Kommunikationsdefizite -- Die "Eskalationen" der letzten Wochen sind
nur ein Problem mangelnder Kommunikation, aus meiner Sicht jedenfalls.
Diese behindern die Arbeit jedoch erheblich. Ich habe mehrfach
Vorschläge zur Verbesserung dieses Problems gemacht, welche jedoch mehr
oder weniger ignoriert wurden. Deshalb bin ich nicht länger bereit,
Beeinträchtigungen meiner Arbeit aufgrund dieser Kommunikationsdefizite
hinzunehmen.
2) Interface und Implementierungen sowie Interfaceerweiterungen -- Viele
Diskussionen der letzten Zeit handelten meiner Ansicht nach davon, wie
etwas zu implementieren sei, nicht aber, was eigentlich Schnittstelle
sein soll. Angefangen von der EntityPointer Geschichte, wo sehr viel der
Implementierung und nicht nur (wie es eigentlich sein sollte) das
Interface vorgeschrieben wird. Auch finde ich es komisch, das zwar
Sachen, die z.B. in Berlin oder Heidelberg als wichtig erachtet werden
(GeometryType oder CollectiveCommunication), einfach in das Interface
integriert werden, ohne das darüber diskutiert wird in einer Art und
Weise, die auch auf die Konsequenzen hinweist. Auf der anderen Seite
werden dann Sachen, die aus unserer Sicht sinnvoll sind, mit "completly
against" usw. verhindert. Dabei haben wir uns immer sehr sorgfältig
darum gekümmert, welche Konsequenzen auftreten können und in wieweit das
von allen Gitterimplementierungen mitgetragen werden kann, gekümmert.
Mit anderen Worten, ich verstehe nicht wie ihr gegen etwas sein könnt,
von dem wir 1) überzeugt sind, dass wir es benötigen, 2) uns Gedanken
über Ort,Zweck und Konsequenz für andere Implementierungen gemacht haben
und 3) die Implementierungsarbeit übernehmen würden. Auf dieser
Grundlage läßt sich aus meiner Sicht nicht weiter zusammen Software
entwickeln. Mit einer Schnittstelle, in welcher wichtige Funktionalität
fehlt, kann ich nicht zufrieden sein. Zeit ist hier ein Problem. Ich
möchte nicht erst in 5 Jahren fertig sein, deshalb ist es wichtig,
gewisse Dinge in 1.0 zu haben und nicht auf die Weiterentwicklung zu
verweisen.
3) Effizienz vs. "Schönheit" -- Ich hatte vielfach den Eindruck, an
einem Paket für numerische Simulationen mitzuentwickeln, bei welchem
Effizienz nicht an vorderster Stelle steht, auf jeden Fall nicht, was
den Einsatz von man-power betrifft. Const-Konzept, Copy Konstruktoren,
etc. schön und gut, aber nutzlos (zumindest, wenn man wie ich mit der
Motivation, etwas effizient rechnen zu wollen, heran geht). Damit
rechnet man nichts aus. Dune wird nicht daran gemessen, ob Iteratoren
Copy Konstruktoren haben oder nicht. Und das der Code schöner geworden
ist, kann man leider auch nicht behaupten. Erst jetzt, da ich seit ca. 3
Monaten einem HiWi erklären muss, wie gewisse Sachen implementiert
werden sollen, ist mir richtig aufgefallen, wie kompliziert der Code
geworden ist, nur damit gewisse softwaretechnische Konzepte verwirklicht
werden konnten, die nicht zum Endziel, etwas effizient rechnen zu
können, beitragen. Desweiteren verstehe ich nicht, wieso wir den Aufwand
betreiben, eine Schnittstelle zu entwickeln, die insbesondere auch
struktuierte Gitter einbindet (effizient?), die Implementierungen dazu
jedoch entweder langsam oder nicht Schnittstellen konform sind. Diese
Tatsachen möchte ich nicht länger in irgendeiner Weise nach "außen"
vertreten müssen. Dies ist jedoch nur ein Punkt aus der konvexen Hülle
von Adaption, LocalIdSet vs. HierarchichIndexSet, SubEntitäten,
Gitterkonstruktoren, Backup/Restore, wo ich explizit die von Dune
(zumindest Dune HD/B) vertretene Meinung nicht teile bzw. die Diskusion
darüber leid bin und desweiteren auch nicht bereit bin Konsequenzen, die
sich daraus ergeben (z.B. gurkige workarounds, die enstehen, weil ich
nicht auf die Funktionalität verzichten möchte, oder weil sich er
offizielle Weg als uneffizient erweist), weiterhin mitzutragen.
4) Baut auf und reißt nieder, dann habt ihr Arbeit immer wieder --
Inzwischen habe ich aufgehört, die Änderungen, die ich an bestehendem
Simulationscode durchgeführt habe, damit er __wieder__ läuft, zu zählen.
In dieser Hinsicht lehne ich das Vorgehen, dass sich in Dune
eingebürgert hat (wenn es die Schnittstelle schöner macht, dann hat es
oberste Priorität), ab. Ich habe keine Lust mehr, ständig Änderungen
druchzuziehen, die ich teilweise als nicht sinnvoll erachte, die jedoch
meinen Code in kritischer Art und Weise betreffen und meherere Tage und
Wochen Arbeit nach sich ziehen. Dies ist vor allem im Hinblick auf meine
Dissertation nicht akzeptabel. Ich möchte mit Dune was rechnen und nicht
die perfekte Schnittstelle programmieren. Ich hatte das Gefühl, das
Andere im Projekt das anders sehen. Das ist ja kein Problem, beide Ziele
haben ihre Berechtigung. Ich werde auf jeden Fall keine Arbeit mehr in
die Vereinigung dieser konträren Ziele investieren.
5) Meine Gesundheit -- Ich habe mich in den letzten Monaten so viel über
Dune geärgert, dass ich, bevor es zu gesundheitlichen Schäden
meinerseits kommt, die Konsequenzen ziehe. Aus diesem Grund sage ich
auch ganz klar, dass ich noch im März an Dune arbeite und helfe, das
Release zu verwirklichen. Unabhängig vom Release Datum werde ich mich
danach voll und ganz auf meine Dissertation konzentrieren.
So viel ein kleiner Auszug aus meiner Sicht auf die Dinge. Wie immer
besteht viel Interpretationsspielraum, wie das bei mails halt so ist.
Ich hoffe niemanden beleidigt zu haben oder dergleichen.
Ich werde gleich morgen mit frischer Kraft am Gelingen von Dune 1.0
weiterarbeiten.
Ein gute Nacht wünscht:
Robert
More information about the Dune
mailing list