Können Sie sich noch an die Starschnitte in der Bravo erinnern? Da wurde Heft für Heft ein Puzzlestück geliefert, nach einigen Wochen setzte sich dann alles zu einem Teenie-Idol zusammen. Etwa Brigitte Bardot (1959), Alice Cooper (1973),  David Hasselhoff (1989) oder Britney Spears (2000 und 2001, Oops!… She Did It Again). Oder auch zu mehreren Idolen (Roy Black & Uschi Glas, ABBA, New Kids On The Block …).

arc42_Teaserbild_mitText_Folge1

In Anlehnung an diese schöne Tradition (der bisher letzte Bravo Starschnitt erschien 2006: Tokio Hotel) möchte ich eine kleine Blogserie starten, und Ihnen einen aktuellen Star der Softwareentwicklung Stück für Stück als Architekturüberblick liefern.

Unser Starschnittheld ist das Buildsystem Gradle. Beim Zerschneiden orientiere ich mich an arc42, einem recht verbreiteten, frei verfügbaren Gliederungsvorschlag zum Festhalten (aka Dokumentieren) von Softwarearchitektur.

Alle 2-3 Wochen gibt es nun hier im Blog einen Schnipsel, in Summe fügen sie sich dann passgenau zu einem Gesamtbild. Diese Woche starten wir mit Schnipsel #1!

Um was geht es genau?

Ein Architekturüberblick stellt die grundlegenden Entscheidungen, Strukturen und Prinzipien für das zu beschreibende (Software-)System knapp und nachvollziehbar dar. In jeder Folge dieser Blog-Serie stelle ich eine interessante Dokumentationszutat vor, die Sie in einem Architekturüberblick verwenden können. Ich illustriere diese Zutat mit dem durchgängigen Beispiel Gradle, und zeige auf, wo der Schnipsel in arc42 seinen Platz findet, also abgeheftet oder um im Starschnitt-Bild zu bleiben, hingeklebt werden kann.

Wenn Sie diese Serie verfolgen erhalten Sie also Impulse wie man Architekturen festhält und lernen arc42 kennen. Sie können sich bei eigenen Architekturüberblicken an den Zutaten und Beispielinhalten orientieren. Und ganz nebenbei lernen Sie auch noch etwas über Gradle.

Aber jetzt Schere raus, es geht los!Schnipsel #1

Die Systemidee als Produktkarton

Ach Sie kennen Gradle gar nicht? Sie wissen nicht, wozu es da ist? Die erste Zutat habe ich mit Bedacht gewählt um genau das zu klären. Ein Architekturüberblick startet idealerweise mit der Aufgabenstellung, für welche die Softwarearchitektur dann eine Lösung ist.

Dieses Dokumentationsmittel motiviert das System, und beantwortet Fragen wie

  • Was entwickeln wir eigentlich?
  • Was ist das zentrale Verkaufs- / Nutzungsargument? („Claim“, „Slogan“)
  • Wem nützt es?
  • Was sind die wesentlichen Features des Systems?
  • Wie unterscheidet es sich von Produkten der Mitbewerber, oder der Vorgängerversion?
  • Welche Qualitätsmerkmale sind besonders wichtig? (= Architekturziele)
  • Welche Randbedingungen sind entscheidend?

Ein schönes Bild für diese Zutat ist ein virtueller Produktkarton. Wir schauen uns die Packung an, bevor wir sie aufreißen und reinschauen. Auf der Verpackung steht das wichtigste drauf, sie ist als Kaufanreiz ansprechend gestaltet. Die Texte auf dem Karton sind vielleicht nicht marktschreierisch, aber zumindest motivierend genug, um das Team auf die gemeinsame Aufgabe einzuschwören.

Auch wenn ein Produktkarton oft die Funktionalität des Systems betont (was sind die wesentlichen Features?), sollten Sie die wichtigsten geforderten Qualitätsmerkmale bereits hier erwähnen. Das sind die Eigenschaften, die im Deutschen dazu neigen auf -heit oder -keit zu enden (Skalierbarkeit, Benutzbarkeit, Sicherheit, Wartbarkeit, …). In späteren Schnipseln werden diese noch präzisiert. Aber da Qualitätsziele wichtige Einflussfaktoren auf die Architektur darstellen, sollten sie auch hier schon anklingen. Sie etablieren mit diesen Zielen dann ein Motiv, das sich im Idealfall wie ein roter Faden durch den Architekturüberblick zieht.

Aber nun endlich zum konkreten Beispiel, ein (virtueller) Produktkarton für Gradle!

– – – 8< – – –

GradleBox_beschnittenSchnipsel #1 (Virtueller Produktkarton): Was ist Gradle?

Gradle ist fortentwickelte Build-Automatisierung.

  • Gradle automatisiert das Bauen, Testen und Ausliefern von Software.
  • Es ist für den Unternehmenseinsatz konzipiert.
  • Gradle kombiniert die Mächtigkeit und Flexibiltät von Ant mit dem Abhängigkeitsmanagement und den Konventionen von Maven.
  • Hocheffiziente Builds steigern die Produktivität im Team.
  • Bestehende Builds lassen sich leicht auf Gradle umstellen.
  • Gradle-Builds lassen sich sogar dort ausführen, wo Gradle nicht installiert ist.

Wesentliche Features von Gradle

  • Unterstützt Java-, Scala-, Groovy-Projekte und vieles mehr
  • Deklarative Build-Skipte durch eine erweiterbare Groovy DSL
  • Integration von Ant Taks und Maven Repositories
  • Erweiterbarkeit durch eine exzellent dokumentierte API
  • Einbindung in gängige Entwicklungsumgebungen und Continous Integration Server
  • Open Source, lizensiert unter der Apache Software License

– – – >8 – – –

Wie fertigt man einen Produktkarton an?

Bei der Erstellung eines Produktkartons für Ihr Softwaresystem lassen Sie sich von den Fragen oben („Was entwickeln wir eigentlich?“ etc.) leiten. Die Zielgruppe dieser Zutat ist in der Regel heterogen,  jeder am Vorhaben Interessierte sollte die Inhalte verstehen können. Richten Sie die Zutat z.B. an zukünftigen neuen Mitarbeitern in Ihrem Projekt aus, und testen Sie diese an echten neuen Mitarbeitern.

Haben Sie bei der Erstellung den Umfang im Blick und achten Sie auf Prägnanz. Die Idee des Produktkartons ist gerade das Wesentliche auf engem Raum (der Platz auf der Packung ist begrenzt) zu verdichten. Die Inhalte sollten auf eine Folie passen, oft ist die Darreichungsform auch tatsächlich eine Folie.

Im Fall von Gradle habe ich mich der Webseite, Video-Interviews und der Dokumentation bedient um das Wichtigste im Nachhinein abzuleiten. Dabei war hilfreich, dass Gradle ein exzellentes Mission Statement auf der Webseite bereithält.  Bei einem Softwareprojekt in der Entstehung hat der Inhalt häufig Visionscharakter und entsteht früh. Die Gestaltung eines Flipcharts gemeinsam im Team liefert regelmäßig gute erste Ergebnisse.

Wo kleben wir den Schnipsel hin?

Im Inhaltsverzeichnis des arc42-Templates (siehe Abbildung unten) findet sich zwar nicht unmittelbar eine Überschrift „Produktkarton“. In Abschnitt „1. Einführung und Ziele“ ist aber das Unterkapitel „1.1 Aufgabenstellung“ ein prima Ort, wo Ihr Produktkarton hinpasst, und auch die Intention von arc42 erfüllt.

Schnipsel #1 abheften in arc42

Einzelne Punkte des Produktkartons werden an anderer Stelle konkretisiert (Randbedingungen in Abschnitt 2, Qualitätsziele in Abschnitt 1.2),  die Essenzen davon gehören meiner Meinung aber bereits in Abschnitt 1.1.

Zum Weiterlesen

Ausblick

Den ersten Gradle-Schnipsel zum farbig ausdrucken und ausschneiden können Sie hier herunterladen. 😉

In der zweiten Folge des arc42-Starschnitts hier im Blog beschäftige ich mich mit der Kontextabgrenzung. Dabei fällt eine wichtige Zutat ab, mit der Sie herausarbeiten mit wem Ihr System interagiert, und auch was es nicht tut. Als Beispiel gibt es dann wieder Gradle zu sehen, unseren Architekturüberblick-Schnipsel #2.

Ich hoffe Sie finden ein wenig Gefallen an dieser kleinen Serie und freue mich auf Ihre Fragen und Rückmeldungen. Teilen Sie sich einfach hier im Blog mit oder schreiben Sie mir (E-Mail: stefan[ät]swadok.de). Fragen beantworte ich direkt hier, Wünsche greife ich gerne in den nächsten Folgen auf.