Wir – mit wir ist hier xamoom gemeint – haben euch auf Facebook, Twitter und Google+ immer wieder gebeten Tricia zu testen. Dabei stellte sich für euch heraus, dass sich hinter diesem Namen eine Webseite verbirgt, welche euch einmal dazu aufforderte zu scheinbar zufälligen Wörtern ähnliche anzugeben, oder wie zuletzt eine einfache Rechnung zu lösen und eine Farbe auszuwählen.

Viele fragten sich zurecht wozu das Ganze gut sei. Ich habe immer erwähnt, dass ihr damit xamoom helft besser zu werden, aber wie genau das funktioniert blieb ein Rätsel. Dieses würde ich nun gerne Lüften.

SaaS

xamoom ist wird ein Service, ein Cloud Service um genau zu sein. Dieser befindet sich aktuell noch in einem PreRelease Stadium und an vielen Stellen wird noch geschraubt und gewisse Features erst entwickelt. Den Großteil dieser Features testen wir mittels automatisierter Test oder, wenn es um Benutzerinteraktion geht, auch vieles per Hand. Gewisse Dinge muss man aber außerhalb des xamoom Office testen lassen und zwar von so vielen unterschiedlichen realen Menschen wie möglich. Dies ist gerade im Cloud Umfeld von zentraler Bedeutung weil ich reales Aufkommen vieler paralleler Request von vielen verschiedenen Orten testen muss und auf viele verschiedene Kombinationen von Daten reagieren muss an die ich selbst – ich habe auch nur 2 Augen – noch gar nicht gedacht habe.

Menschen machen Fehler

Das klingt immer so negativ, aber hier ist diese Tatsache das Beste was passieren kann. Indem ihr Tricia mit Daten gefüttert habt und dabei Tippfehler gemacht habt, euch verklickt habt, das UI nicht selbsterklärend war und ihr es nicht so bedient habt wie wir es uns dachten, habt ihr uns enorm viel beigebracht. Alleine die Tatsache, dass ihr im ersten Test, den mit den Wörtern, ein so hohes Datenaufkommen verursacht habt, dass wir mit einer Instanz in die Quota Limit fuhren, war bereits Gold wert.

Was passiert im Hintergrund?

Beide Tests, die wir bisher mit Tricia durchgeführt haben, dienten dazu spezielle Funktionen oder Features zu testen. Dafür wurden die Funktionen alleine als Prototypen entwickelt und ihr habt mit ihnen ganz unbewusst gearbeitet.

Im ersten Test ging es um ein Tag-Recommendation System. Also darum später einem Benutzer Schlagworte für einen von ihm erstellten Inhalt vorzuschlagen. Dazu entwickelten wir ein System, welches versucht vorherzusagen welche Wörter ihr miteinander verknüpfen werdet und zwar an Hand aller Wörter die Nutzer vor euch bereits eingeben haben. Wichtig hierbei ist, dass das System nicht versuchte zu lernen welche Wörter ihr mit einander verknüpft, sondern wie es zu Verknüpfungen kommt. Denn im Echtbetrieb wird es eure Wörter nicht geben, sondern die Schlagworte der echten Nutzer und auch dort muss das System von Anfang an gut Verknüpfungen herstellen können und das in mehreren Sprachen. Ihr habt also einem Stück Software beigebracht wie es lernt etwas zu lernen. (oder so ähnlich…)

Außerdem konnten wir bei diesem Test die Performance des Data Storage und die Skalierung der Instanzen auf Google’s AppEngine testen und optimieren.

Der zweite Test läuft im Moment noch. Hier werdet ihr aufgefordert zu rechnen und Farben auszuwählen. Wieder eine Aufgabe, die auf den ersten Blick wenig Sinn macht, denn Rechnen und Farben erkennen können Computer auch ohne euch. Der eigentliche Sinn dieses Tests liegt darin die Integration von Google’s BigQuery zu testen. Wir werden BigQuery verwenden um Nutzungsdaten zu speichern und zu analysieren. Ihr generiert hier Daten, welche neben dem User Agent Strings eures Browsers, aus euren Antworten, den richtigen Antworten und einem Zeitstempel bestehen. Auf diesen Daten testen wir die automatische Generierung von Reports und wie solche am effizientes erzeugt werden können.

Ein wichtiges Learning aus diesem Test bisher war es, dass unser ursprünglicher Ansatz wie Daten in BigQuery kommen schlicht weg nicht effizient war. Deshalb haben wir hier nachgefeilt und gehen dabei nun einen ganz anderen Weg. Davon merkt ihr wenn ihr Trcias Rechenaufgaben löst rein gar nichts, außer dass Tricia nun schneller neue Aufgaben für euch bereitstellt als es gestern noch der Fall war.

Der Performance Gewinn für uns war aber immens. Durch eure Tests konnten wir die durchschnittliche Antwortzeit von ca. einer Sekunde auf ca. 120ms reduzieren.

Weiters sehen wir bei diesem Test auch wie BigQuery in Kosten skaliert, was für uns natürlich auch von großer Bedeutung ist, weil wir ja Preise für unseren Service kalkulieren müssen.

Tricia “Trillian” Mcmillan

Sie ist die Namensgeberin für unsere Spielwiese. Für alle die sie nicht kennen, sie ist ein Charakter aus “Per Anhalter durch die Galaxis” und von Beruf, zumindest so lange sie Erde ist, Astrophysikerin und Mathematikerin. Das schien uns recht passend für dieses Projekt.

Abschließend sei noch gesagt, dass das zweite Experiment noch immer läuft und ich permanent unter der Haube werkle, Statistiken und Logs durchforste, einzelne Millisekunden an Performance raushole und alles an Hand eurer Daten so gut wie möglich zurechtstutze. Also wenn ihr uns weiterhin helfen wollt macht mit, jederzeit, wenn ihr Zeit habt und so viel sei gesagt, dies war sicher auch nicht das letzte Experiment zu dem euch Tricia auffordert.

Hier geht’s zu Tricia -> http://xamoom-tricia.appspot.com/

Danke für eure großartige Unterstützung!