comm-press: Your Drupal agency in Hamburg, Germany: Consulting, training, programming, service, webdesign and hosting

Erfahrungen SprintCamp Frankfurt . Impressionen vom Drupal 7 Sprint Camp in Frankfurt

von Ralf Hendel
am

Um Drupal 7 die nötige Modulreife für einen erfolgreichen Start ins Jahr 2011 zu verleihen, hat Cocomore einen Contribute Module Sprint in ihren Geschäftsräumen in Frankfurt organisiert.So haben Karsten, Alexander, Carsten, Andreas und ich uns Samstag morgens um vier Uhr (!) bei comm-press getroffen und sind gemeinsam zum Codesprint gefahren.

Trotz einsetzender Urlaubszeit waren die Autobahnen gen Süden frei und wir sind phantastisch - wenngleich etwas müde - angekommen.

Codesprinten für Drupal 7

Zum Sprint haben sich rund zwanzig Teilnehmer eingefunden. Am Anfang haben die Maintainer ihre Projekte vorgestellt, an deren Portierung gearbeitet werden könnte: Themekey, Taxonomy Theme, Apache Solr Multilingual, Cron Control, Terms of Use, E-Card, Bulk Delete, Cumulus.

Karsten hat einen kurzen Abriss vorgestellt, was sich bei der Modulentwicklung von Drupal 6 auf 7 geändert hat. Wir haben Teams gebildet, die sich in verschiedenen Räume zu einzelnen Themen zusammengefunden haben.

Ich habe an Terms of Use mitgearbeitet und wir hatten eine spannende Architektur-Diskussion. Die Debatte möchte ich im Folgenden schildern, um einen Eindruck zu vermitteln, wie Modulentwicklung funktioniert und welche konzeptionellen Erwägungen eine Rolle spielen.

Terms of Use

Terms of Use ist ein Modul, das an bestimmten Stellen die Zustimmung zu AGBs, Nutzungsbedingungen oder zu was auch immer von den Benutzern einholen kann. Terms of Use verwendet Nodes und speichert die erteilten Zustimmungen je User. Zudem gibt es einige Feature-Requests, die in Drupal7 gleich mit umgesetzt werden könnten:

  • Zustimmungen je Rolle
  • Gruppierung verschiedener Zustimmungen, die als Set auf die Seite gebracht werden können

Konzeptionelle Erwägungen bei der Modulentwicklung

Bei Drupal gibt es verschiedene Module, die Formulare erweitern und von denen sich jedes auf seine individuelle Weise in die Formulare einhängt. Als Beispiel seien hier Terms of Use, Mollom und Captcha genannt, die sich alle unterschiedlich in Formulare einbetten.

Wenn man beispielsweise ein Spamschutz-Captcha in ein mit Webforms erstelltes Formular bringen möchte, muss man wissen, dass man zunächst die administrativen Verwaltungslinks einschalten muss. Dann erscheint für Admins ein Link auf dem Webformular "hier klicken um ein Captcha hinzufügen". Anschließend kann man die Verwaltungslinks wieder deaktiveren. Das grenzt schon an esoterische Geheimwissenschaften...

Hier tauchte die Frage auf, ob wir nicht allgemein eine API zur Verfügung stellen können, die sämtliche Formulare z.B. um einen Tab erweitert, auf dem die jeweiligen Module ihre Einstellungen unterbringen und darstellen können.

Die Frage haben wir eingehend diskutiert und uns statt einer API für eine "Form Extensions UI" entschieden. Da bereits die Form API existiert, benötigen wir keine weitere API. Im Grunde fehlt vielmehr eine Verwaltungs-Oberfläche, auf der Module ihre Einstellungen mit zur Verfügung stellen können.
Die allgemeinen Formularelemente werden ausgelesen und zusammen mit den zusätzlichen Einstellungen aus unterschiedlichen Modulen dargestellt. Über eine draggable sortierbare Oberfläche können die einzelnen Elemente positioniert werden.

Der besondere Charme dieses Ansatzes liegt darin, dass diese Oberfläche quasi als Abfallprodukt eine Sortierfunktion auch für diejenigen Formulare mitbringt, die keine Zusatz-Einstellungen besitzen. Wenn ich aus irgendwelchen verqueren Vorstellungen den Submit-Button heraus in der Mitte des Formulars dargestellt haben möchte, kann ich dies bequem einstellen und muss mich nicht mit irgendwelchen Gewichtungen im Code herumplagen.

Es war toll, so ein Thema in einem größeren Kreis - wir waren acht Interessierte in unserem Team - besprechen zu können. Diese Gelegenheit hat man leider nicht sehr oft. In solch einer Runde lassen sich architektonische Ansätze gut beleuchten und man kann sich ziemlich sicher sein, dass kein Schnellschuss entsteht, sondern ein Baustein von hohem allgemeinen Nutzen, der sich nachhaltig in die bestehende Landschaft einfügt und viele Folge-Optionen ermöglicht.

Breakfast @ erdfisch

Sonntag morgen habe ich mit der Bahn noch einen Abstecher nach Heidelberg unternommen. Im Zapata, dem Treffpunkt der Heidelberger UserGroup, habe ich mich mit Frank und Fabian von erdfisch zum fröhlichen Drupal-Talk-Frühstück getroffen: Projekte, Perspektiven und Personalentwicklung.

Das Treffen war so nett, dass ich die Zeit völlig übersehen und erst beim Blick auf die Zugverbindung irgendwann festgestellt habe, dass die Bahn schon weg ist. Zum Glück fahren die Züge auch sonntags stündlich nach Frankfurt - dies war also kein ernstes Problem.

Business-Perspektiven von Drupal

Cocomore hat nicht nur die Räume zur Verfügung gestellt, sondern tagsüber alle Teilnehmer hervorragend "becatert" und abends noch gemeinsam in ein gemütliches Restaurant eingeladen. Dies zeigt den Stellenwert, den Cocomore diesem Sprint ganz offensichtlich beimisst. Bei dem Camp waren zwei Vorstände der Cocomore AG dabei. Mit knapp einhundert Mitarbeitern an zwei Standorten ist die Cocomore AG kein so ganz kleines Unternehmen...

Samstags war Marc Kutschera dabei und beim Essen abends auch Hans-Ulrich von Freyberg. Mit beiden habe ich mich eingehend über die Business-Perspektiven von Drupal in Deutschland unterhalten. Drupal boomt und nun stehen wir gemeinsam vor der Herausforderung, weiter zu wachsen. Akquisition verschiebt sich zur Rekrutierung von Mitarbeitern. Zur Zeit haben wir alle das selbe Problem, wo wir gute Drupaler herbekommen können.
Wir haben uns ausgetauscht, wir wir innerhalb unserer Teams den Knowhow-Fluss optimieren und überlegt, in Zukunft gemeinsame Drupal-Trainings zu veranstalten. Sicherlich eine gute Idee!

Dieses Wochenende hat mir ganz deutlich gezeigt, dass solche Treffen keine Nerd-Veranstaltungen sind, sondern konzertierte Aktionen zur Verbesserung unserer gemeinsamen geschäftlichen Grundlage und Leistungsfähigkeit.

Drupal rocks :-)

Herzlichen Dank, liebes Cocomore-Team, für die Ausrichtung dieses tollen Camps und vielen Danke an Euch alle, die Ihr am Wochenende mit dabei wart: Ich habe mich sehr gefreut, Euch zu sehen und es war toll mit Euch!

Der Hashtag zur Veranstaltung war übrigens #cococodesprint