Anzeige
Anzeige
UX & Design

Erfahrungen aus der Entwicklung von Tine 2.0: Groupware von Grund auf neu

Tine 2.0 ist ein ambitioniertes Projekt, das Groupware, Kundenpflegesystem und Ressourcenplanung unter einem Dach vereint. Moderne Technologien wie das Zend Framework und ExtJS sowie eine möglichst einfache Bedienung haben die Macher sich auf die Fahnen geschrieben. Tine 2.0 begann mit null Codezeilen. Ein Erfahrungsbericht.

5 Min.
Artikel merken
Anzeige
Anzeige

Tine 2.0 [1] ist eine Plattform zur internen Koordination eines Unternehmens und vereint die Aspekte Groupware, CRM und ERP. Die Zahl 2.0 bezieht sich dabei in Anlehnung an Web 2.0 auf die genutzten Technologien. Ursprünglich sollte das Projekt „eGroupWare 2.0“ heißen und somit auch gleichzeitig die zweite große Version der bekannten Online-Kollaborations-Software werden. Doch das Projekt hat sich geteilt und daraus ist Tine 2.0 entstanden. Eine Erkenntnis zu Beginn: Die anstehenden Probleme waren nur noch durch einen kompletten Rewrite sinnvoll lösbar.

Externe Experten für die Nutzerfreundlichkeit

Anzeige
Anzeige

Eine weitere wichtige Grundannahme: Software-Ergonomie ist ein entscheidender Faktor für die Akzeptanz einer Unternehmens-Software. Technisch ausgezeichnete Projekte scheiterten in der Vergangenheit immer wieder an Mitarbeitern, die die Software nicht benutzen wollten – für eine Groupware der Todesstoß.

Deshalb kamen bei der Erstellung der Funktionen und des Benutzer-Interfaces externe Experten der Open-Source-Usability-Labs hinzu. Jede Benutzergruppe wird dabei durch eine idealisierte virtuelle Person repräsentiert. Diese „Personas“ sind sehr hilfreich bei allen Diskussionen und Entscheidungen über die Benutzbarkeit und Relevanz der geplanten Features und Dialoge.

Anzeige
Anzeige

Die Mitarbeiter der Open-Source-Usability-Labs sind selbst keine Techniker und verstehen sich als „Anwälte der Benutzer“. In einem fortlaufenden Prozess begleiten sie die Entwicklung und sorgen mit ihren Hinweisen dafür, dass die Software die Benutzer optimal unterstützt.

Anzeige
Anzeige

Wichtig: Tests

Nächster Ausgangspunkt: Wenn eine Software unternehmenskritische Daten verwaltet, muss man ihr uneingeschränkt vertrauen können. Dafür setzt das Tine-2.0-Team auf intensive automatisierte Tests. Als Testframework ist der PHP-Clone von JUnit, PHPUnit, im Einsatz. Die Tests sind in drei Stufen organisiert: In der ersten Stufe werden die Backends getestet. Hier wird sichergestellt, dass alle SQL-Queries, LDAP-Abfragen und File-Zugriffe genau so wie geplant funktionieren. In einem zweiten Schritt werden die Domain-Logik und die Zugriffskontrolle getestet. Diese Tests stellen die Referenz für die interne API dar. Als Letztes werden dann die externen APIs getestet, auf die später der Client zugreift.

Zentraler Ansatz der Entwicklung ist „Test First“. So werden zuerst die Tests geschrieben und darüber die Funktionsweisen der Klasse festgelegt. Erst im zweiten Schritt wird dann die eigentliche Funktion programmiert. Oftmals ist dieser Weg in viele kleine Wiederholungen (Iterationen) unterteilt und übernimmt Aspekte des „Extreme Programming“ in den Entwicklungsprozess.

Anzeige
Anzeige

Durch die Tests ist außerdem die Funktionsweise einer Klasse genau dokumentiert. Merkt man beim Programmieren, dass es eine logische Lücke in einer Klasse gibt oder ihre Funktionsweise nicht klar ist, so wird diese Lücke durch weitere Tests umgehend geschlossen und festgehalten.

Tests geben dabei nicht nur dem Kunden Sicherheit, sondern vor allem auch den Programmierern. Wenn man erstmal eine Weile konsequent mit Tests gearbeitet hat, mag man nicht mehr auf sie verzichten.

Noch wichtiger: noch mehr Tests

Da die Entwickler diese Tests meistens lokal laufen lassen, läuft diese Version nicht automatisch auch im Repository so wie gedacht. Deshalb gibt es für Tine 2.0 einen „Continues Integration“-Server. Dieser Server updatet sich nach jeder Änderung selbstständig und lässt alle Tests in einer der Produktion gleichenden Umgebung ablaufen. Schlägt ein Test fehl, werden die Entwickler informiert. Zusätzlich werden mit jedem Durchgang auch verschiedene Qualitätsmetriken errechnet, sodass es ständig einen Überblick zum Qualitätsstand des Projekts gibt.

Anzeige
Anzeige

Brückenschlag zu TYPO3

Da Tine 2.0 für den Einsatz im Unternehmen gemacht ist, warten also im Gegensatz zu einer öffentlichen Website nach der Authentifizierung Informationen, die im Regelfall nur für die Augen der Mitarbeiter bestimmt sind. Allerdings gibt es auch Schnittmengen mit der Website: zum Beispiel das Kontaktformular, dessen Eingaben im CRM-System landen sollen.

Anstatt auch noch ein Content Management System zu programmieren, fiel die Wahl auf TYPO3 – hier gab es bereits Erfahrungen bei der Firma Metaways, die die Entwicklung von Tine 2.0 unterstützt. Die Brücke zwischen Tine 2.0 und TYPO3 zu schlagen, war einfacher als erwartet: Da Tine 2.0 selbst eine Server-Client-Architektur nutzt, mussten die TYPO3-Plugins nur mit einem HTTP-Client ausgestattet werden, der auf die externe API zugreift.

Derzeit sind zwei Plugins im Einsatz: ein Kontaktformular und ein „Ansprechpartner“-Plugin, das einen Kontakt aus dem Adressbuch anzeigt. Die Plugins verbinden sich zu einer externen Tine-2.0-Installation und authentifizieren sich dort als Nutzer mit eingeschränkten Rechten.

Anzeige
Anzeige

Design Patterns nicht immer ideal

Spätestens seit der Version 5 sind Objektorientierung und Design-Patterns sehr populär in der PHP-Szene. Und das mit gutem Grund, denn sie helfen oftmals, den Code schlanker und performanter zu gestalten. Der damit einhergehende Standardisierungseffekt hilft überdies enorm, sich im Code zurechtzufinden – besonders, wenn dessen Erstellung schon eine Weile zurückliegt oder er von Kollegen geschrieben wurde.

Allerdings gibt es auch Situationen, in denen Patterns überhaupt nicht weiterhelfen oder den Code eher verschlechtern. Manche der in den Lehrbüchern vorgestellten Patterns sind für PHP schlicht ungeeignet. Als Credo sollte deshalb gelten: Patterns verwenden, wenn sie sinnvoll erscheinen, aber an anderen Stellen auch bewusst darauf verzichten und stattdessen die Funktionsweisen und den Prozessablauf gut dokumentieren.

Zeitersparnis durch Frameworks

Eine weitere Grundregel sollte außerdem lauten: Das Rad nicht immer wieder neu erfinden. Als vor sieben Jahren die Entwicklung des „eGroupWare“-Vorgängers „phpgroupware“ unter PHP 3 begann, gab es noch keine Frameworks im heutigen Sinne. Für alle zu bewältigenden Aufgaben wurden daher eigene Skripte geschrieben oder man passte kleine externe Programme an die eigenen Bedürfnisse an. Mit der Zeit kamen so über 60 MB PHP-Code zusammen, für deren Wartung und Sicherheitssupport allein das jeweilige Projekt zuständig war.

Anzeige
Anzeige

Tine 2.0 setzt auf das Zend Framework im PHP-Backend und auf ExtJS im JavaScript-Client. Für die Wahl des einen oder anderen Frameworks gibt es immer viele gute Gründe, und jedes Lager hat Anhänger, die gerne Mailinglisten und Foren mit Argumenten für den exklusiven Anspruch des eigenen Frameworks füllen. Letztendlich ist es aber fast egal, für welches Framework man sich entscheidet – Hauptsache, man nutzt die Vorteile des externen Codes und hört auf, für jedes Standardproblem eine selbstgestrickte Lösung zu erstellen.

Fazit und Ausblick

Das Ziel bei Tine 2.0 ist, GroupWare, CRM und ERP unter einen Hut zu bringen. Im ersten Release, das für September dieses Jahres geplant ist, sind ein Adressbuch, ein Aufgabenmanager und CRM-Funktionalitäten vorgesehen. Im nächsten Schritt sollen die klassischen Groupware-Funktionen Kalender und E-Mail sowie ein Stundenzettel mit Abrechnungs-Export beigesteuert werden. Ist dieser Punkt erreicht, ist das Entwicklerteam seinem Ziel schon sehr nahe.

Technisch stehen als nächstes die Integrationen von JavaScript-Unit-Tests und automatisierten Browsertests an. Zwar existieren Tools wie Selenium und JSUnit, trotzdem gibt es noch einigen Entwicklungsbedarf an geeigneten Tools für das zuverlässige Testen von JavaScript-Programmen.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige