27. Juli 2018
Martin Maier
0

Testgetriebene Entwicklung (TDD) einer Angular-Anwendung

 

 

Grafische Oberflächen von komplexen Systemen wurden lange Zeit hauptsächlich mit soliden, schwergewichtigen Technologien in sehr hoch entwickelten, objektorientierten Sprachen realisiert. Dabei wurden meist Fat Clients durch WPF oder Swing entwickelt. Eher seltener handelte es sich dabei um Thin Clients in Form von Webanwendungen. HTML und JavaScript wurden in diesen Fällen vorwiegend durch große Frameworks wie ASP oder JSF abstrahiert und serverseitig gerendert. Der Sprachkern von JavaScript entwickelte sich jedoch mit ECMAScript 2015 stark weiter und wurde dadurch auch für komplexere Anwendungen interessant. Basierend auf den Vorschlägen zu ECMAScript 2015 entstand mit TypeScript zusätzlich eine Möglichkeit, Webanwendungen auf sehr hohem sprachlichen Niveau und statisch typisiert zu entwickeln. Durch diese starken sprachlichen Verbesserungen und den starken Support durch Giganten wie Facebook und Google, wurden Webtechnologien zunehmend für komplexere Anwendungen in Form von Singe Page Applications (SPA) interessant.

Leider hat der Quellcode solcher auf Webtechnologien basierender Anwendungen oft noch den Ruf, sich hinsichtlich Lesbarkeit, Design und Testabdeckung auf einem qualitativ sehr niedrigen Level zu befinden. Der Wert qualitativ hochwertigen Code zu entwickeln, um eine Anwendung nachhaltig effizient weiterzuentwickeln und warten zu können, ist jedoch technologieunabhängig und bedarf damit verbundener Prinzipien und Methoden um diesen Wert erhalten.

Testgetriebene Entwicklung (Test Driven Development = TDD) ist eine Methode aus dem Extreme Programming (XP), um qualitativ hochwertigen und gut getesteten Code zu entwickeln.

Dabei wird in kurzen Iterationen stets zuerst in Tests das Verhalten spezifiziert, bevor es implementiert und anschließend die Lesbarkeit und Struktur des Codes verbessert wird. Dies führt nicht nur zu gut testbarem und getestetem Code, sondern auch dazu, dass sich Entwickler bereits sehr früh mit der Struktur bzw. dem Design des Codes auseinandersetzen müssen. Zudem wird durch die vorgelagerte Spezifizierung durch Tests auch effektiv nur Funktionalität entwickelt, die tatsächlich gefordert wird und schützt somit davor prädiktiven und unnötig komplexen Code zu entwickeln.

Mit der Angular CLI erstellte Projekte, enthalten „out of the box“ alle Bordmittel um testgetrieben entwickeln zu können.

Dieses Tutorial soll anhand eines einfachen Szenarios beschreiben, wie Angular Projekte testgetrieben entwickelt werden können.

Das Szenario

Wir wollen den Fokus auf die Methodik legen und wählen deswegen ein sehr einfaches fachliches Szenario. Mit der Anwendung sollen rudimentär Kontakte verwaltet werden können. Sie besteht grundlegend aus nur zwei Funktionalitäten:

  • Kontakte anzuzeigen
  • Neue Kontakte anzulegen

Aufsetzen des Angular Projekts

Ein Angular Projekt ist mittels Angular CLI zügig aufgesetzt.

 

 

Wir möchten die Anwendung von Grund auf entwickeln. Dazu

  • löschen wir Komponente app.component
  • bereinigen die davon betroffenen Abhängigkeiten app.module und index.html
  • löschen die End-to-End Spezifikationen im Verzeichnis e2e/src
  • und überprüfen unsere Änderungen indem wir das Projekt mit ng build bauen

Der „Walking Skeleton“

Unser System ist sehr klein, kommuniziert mit keinem Backend und wird einfachheitshalber auch nicht automatisiert ausgeliefert. Damit handelt es sich bei unserem Skelett ausschließlich um einen Durchstich zur testgetriebenen Entwicklung unserer Anwendung. Dieser sollte einen E2E-Test umfassen, welcher über „Page Objects“ mit der Webanwendung interagiert, und einer ersten kleinen Komponente, welche testgetrieben entwickelt wurde. Eine passende erste kleine Story, um den „Walking Skeleton“ zu erstellen, ist das Anzeigen der Kontakte.

Vorgehen

Wir entwickeln in kurzen TDD-Iterationen. Um dieses Tutorial lesbarer und übersichtlicher zu gestalten, verwende ich ein paar Icons, um den Ablauf darzustellen. Als erstes definieren und sprechen wir darüber, was wir in der nächsten Iteration erreichen möchten. Bestenfalls entwickeln wir das nicht alleine, sondern haben uns mit einem anderen Entwickler „gepaired“. Wir spezifizieren einen entsprechenden Test, starten ihn  und beobachten wie er fehlschlägt  . Daraufhin implementieren wir die Funktionalität und starten den Test erneut  bis dieser erfolgreich ist . Wir überprüfen unseren Code Style, führen Refactorings durch und starten danach mit der nächsten kleinen TDD-Iteration.

Spezifizierung der Story in einem ersten E2E-Test

Wir definieren den Kontext der Story als Kontaktverwaltung und erstellen dementsprechend eine E2E-Spezifikation /e2e/src/contact-management.e2e-spec.ts.

Wir legen fest, dass die Webseite der Kontaktverwaltung initial die beiden Kontakte „Max“ und „Moritz“ auflistet.

Innerhalb der E2E-Spezifikationen wollen wir auf einer sehr hohen Ebene mit der Anwendung interagieren und delegieren den Zugriff auf die HTML-Elemente deswegen in sogenannte „Page Objects“.

In TDD-Manier schreiben wir unseren E2E-Test als würde eine Klasse ContactManagementPage bereits bestehen, um sie so zu definieren, wie sie aus Client-Sicht am sinnvollsten ist.

Wir erstellen uns eine Instanz der ContactManagementPage, navigieren auf deren Ansicht und stellen sicher, dass dort nur die Kontakte „Max“ und „Moritz“ aufgelistet werden.

 

 

Sind wir damit soweit fertig, erstellen wir die Klasse ContactManagementPage unter /e2e/src/pageobjects/contact-management.po.ts, wie im Testfall angenommen.

 Nun kompiliert der Testfall, schlägt aber – wie erwartet – fehl.

Wir beginnen mit der Implementierung des „Page Objects“ bei der Method #navigateTo, welche zur Kontaktverwaltungs-Ansicht navigiert. In unserem Fall ist das aktuell “/”.

Als nächstes benötigen wir die Namen der aufgelisteten Kontakte. An dieser Stelle definieren wir, dass die Ansicht Elemente der Klasse „contact“ darstellen soll, welche wiederrum ein Element der Klasse „name“ beinhalten.

Wir implementieren also #shownNamesOfContacts indem wir alle Namens-Elemente heraussuchen und deren Textinhalte mappen.

Protractor arbeitet asynchron mit eigenen Promises. Wir müssen also unbedingt darauf achten, die richtige Promise-Klasse von Protractor zu importieren.

 

 

   Der Test schlägt nun fehl mit einem Hinweis, dass keine Angular Seite gefunden werden konnte. Der Grund dafür ist, dass aktuell keine Angular Komponente bootstrapped wird.

Um diesen Fehler zu beheben erstellen wir als nächstes eine Angular Komponente “contact-list” mit Hilfe der Angular CLI.

ng generate component contact-list

Sie wird automatisch dem globalen App-Modul zugeordnet und dort deklariert. Das ist für dieses Tutorial soweit in Ordnung, aber wir müssen diese Komponente auch noch in unsere index.html einpflegen und im Modul konfigurieren, dass die Komponente auch gebootstrapped wird.

   Der E2E-Test schlägt weiterhin fehl, diesmal jedoch wie gewünscht, dadurch dass die Erwartungen nicht erfüllt wurden.

Implementierung der Komponente

Zunächst soll die Komponente eine Liste mit einem Eintrag je Kontakt darstellen.

Wir erstellen uns dafür einen Testfall in der von der Angular CLI mitgenerierten contact-list.component.spec wieder unter der Annahme, dass benötigte Abhängigkeiten bereits existieren.

 

 

Der Code kompiliert nicht. Wir benötigen das Daten Objekt „Contact“ und eine Property „contacts“ im Controller contact-list.components.ts der Komponente, welches die Kontakte bereitstellt.

Wir erstellen also die Klasse /model/contact.ts

 

 

und erweitern den Controller um die Property contacts: Contact[].

   Wir starten diesmal die Karma Tests durch ng test und sehen, dass der eben geschriebene Test fehlschlägt, da wir zwei Kontakt-Elemente erwarten, jedoch keiner dargestellt wird.

Wir können Karma im Hintergrund laufen lassen und bekommen dadurch sofortiges Feedback über unsere Änderungen am Code und deren Auswirkungen auf die Testergebnisse.

Wir erweitern die View contact-list.component.html dahingehend, eine Liste mit einem Eintrag je Kontakt darzustellen.

 

 

 Die Tests sind erfolgreich!

So weit so gut. Nun wollen wir die Namen der Kontakte anzeigen.

 

 

   Der Test schlägt – wie erwartet – fehl.

Wir erweitern also den View, der den Namen des Kontakts darstellt.

 

 Erfolgreich! Unsere Komponente zeigt nun die Namen der Kontakte an.

Ist die Story damit fertig implementiert? Wir lassen die E2E-Tests laufen.

   Dieser schlägt weiterhin fehl. Wir erwarten, dass “Max” and “Moritz” initial als Kontakte angezeigt werden.

Als nächstes wollen wir also, dass die Komponente initial die Kontakte „Max“ und „Moritz“ darstellt.

 

   Der Test schlägt fehl.

Wir initialisieren das Property des Controllers mit den entsprechenden Kontakten.

 Alle Komponenten-Tests sind erfolgreich.

 Nun ist auch der E2E-Test grün und die Implementierung der Story damit abgeschlossen.

 

Weiterentwicklung

Da nun unser „Walking Skeleton“ steht, können wir mit der Weiterentwicklung fortfahren.

Mögliche nächste Schritte könnten beispielsweise sein:

  • Refactoring: Auslagern und Delegierung der „contact-list“ spezifischen Inhalte in ein eigenes „Page Object“, um das ContactManagementPage-Object übersichtlich zu halten und die „contact-list“ auch in anderen E2E-Tests wiederverwenden zu können.

  • Story: Anlegen neuer Kontakte
    • Über ein Textfeld soll beim Betätigen der Enter-Taste ein neuer Kontakt angelegt werden.

    • Wurde ein neuer Kontakt angelegt, soll das Textfeld zurückgesetzt werden.

  • Optimierung: Auslagern der Datenhaltung in einen Redux-Store

 

Fazit

Frameworks wie Jasmine, Karma oder Protractor unterstützen die testgetriebene Entwicklung von Webanwendungen sehr gut.

Im Falle von Angular sind Projekte, die mit der Angular CLI erstellt wurden, bereits mit Jasmine, Karma und Protractor vorkonfiguriert und können „out of the box“ testgetrieben entwickelt werden.

TDD ist also auch für die Entwicklung von Webanwendungen eine sehr gute Praxis, um qualitativ hochwertigen und gut getesteten Quellcode zu generieren.

Im Zusammenspiel mit anderen Praktiken wie Pair-Programming und Clean Coding ergeben sich sehr gute Synergieeffekte, wodurch Systeme sehr effektiv und effizient weiterentwickelt und gewartet werden können.

20. April 2018
Ines Reiche
0

Teamcoaches gesucht

Soziologie oder Kommunikationswissenschaften studieren – und danach ein Praktikum nach dem anderen machen? Psychologie studieren – aber kein Interesse an einer anschließenden Therapeutenausbildung? Erziehungswissenschaften studieren – aber vielleicht doch nicht als Lehrer arbeiten?

Wir kennen eine Alternative! Auch wenn es zunächst gar nicht so scheint – in einigen eher technischen Branchen werden soziale und emotionale Fähigkeiten gebraucht und wir suchen Menschen, die uns diese Lücke füllen – selbst in der IT.

Im agilen Projektvorgehen, was immer mehr zum Standard in Softwareentwicklungsprojekten wird, arbeiten Teams selbstorganisiert und eigenverantwortlich zusammen. Auch wenn Selbstorganisation nach Selbstläufer klingt, handelt es sich um einen anspruchsvollen Prozess, der gelernt sein will. Deshalb gibt es in solchen Projekten einen Teamcoach für jedes Team, der oder die ein Team auf ihrem Weg zur Selbstorganisation unterstützt.

Was zeichnet solche Teamcoaches aus?

Gemeinsam mit ihrem Team übernehmen sie die Verantwortung, das Projektziel zu erreichen. Sie regen durch offene Fragen und konstruktives Feedback ihr Team und das Projektumfeld dazu an, die Prozesse und die Zusammenarbeit ständig zu hinterfragen und zu verbessern. Den Respekt ihres Teams und des Projektumfelds verschaffen sie sich durch ihr methodisches Wissen sowie ihre engagierte und stringente Art. Das, was die Teamcoaches propagieren, leben sie auch vor. Dabei befähigt sie ihre Disziplin dazu, die Interessen aller Beteiligten einschließlich der eigenen zu reflektieren und gemeinsam mit dem Team zu ergründen, was das Team im Prozess am meisten motiviert und voranbringt. Teamcoaches sind außerdem wahre Organisationstalente.

Durch ihre hohe Zuverlässigkeit erfährt ihr Team die notwendige Stabilität während des kontinuierlichen Verbesserungsprozesses und das Vertrauen, um sich in seinem vollen Potential frei zu entfalten. Ihre guten Fähigkeiten im Konfliktmanagement helfen ihnen, bei den natürlichen Reibereien, die auf dem Weg der ständigen Weiterentwicklung entstehen, zu vermitteln. Sie befähigen ihr Team, zwischenmenschliche oder gar strukturelle Konflikte aufzulösen und bieten sich bei Bedarf als Mediator an.

Mit geeigneten Vorschlägen helfen sie dem Team, sich selbst einen Rahmen zu schaffen, um effizient zu arbeiten und die sich selbst auferlegten Regeln einzuhalten. Dabei machen sich Teamcoaches nicht unabdingbar, sondern streben an, dem Team nach und nach selbst die Organisation zu überlassen.

Teamcoaches zeichnen sich besonders durch die folgenden Eigenschaften aus:

  • Verantwortungsvoll, ziel- und prozessorientiert
  • Zuverlässig, engagiert und stringent
  • Analytisch, empathisch und teamorientiert
  • Konstruktiv, problemlösend und vermittelnd

Welche Aufgaben übernehmen Teamcoaches noch?

Neben der Moderation von Meetings stehen sie bei technischen und organisatorischen Problemen zur Seite, z.B. wenn die Tastatur kaputt ist, eine Zugangsberechtigung fehlt oder die Videokonferenz nicht funktioniert. Weiterhin helfen sie dem Team dabei, Hindernisse im Arbeitsprozess zu identifizieren und zu beseitigen. Sie kennen die Hintergründe der verschiedenen Rollen im Team und fungieren als „Übersetzungshilfe“ zwischen der Anforderungsseite (dem Fachbereich) und den Softwareentwicklern. Dies erfordert, dass sie sich in beide Positionen hineinversetzen können und zu einem gewissen Grad verstehen, womit sich diese jeweils beschäftigen.

Wir bei der Saxonia Systems AG arbeiten meist nach dem agilen Regelwerk „Scrum“ zusammen. Hier heißen Teamcoaches Scrum Master. Sie wissen, welche Rollen, Prozesse und Artefakte es gibt(1) und können dem Team die Vorteile, Werte und Vorgehensweisen von Scrum vermitteln.

Häufig arbeiten wir über verschiedene Standorte hinweg. Scrum Master kümmern sich bei uns daher zusätzlich darum, dass die technischen Hilfsmittel für die verteilte Kommunikation wie Videokonferenzanlage, Chat, verteilte Whiteboards etc. zur Verfügung stehen und funktionieren. Ihre Technikaffinität hilft ihnen dabei. Auf der Suche nach den optimalen technischen Rahmenbedingungen für das Team können sie sich stets Rat von anderen Scrum Mastern oder unserer hilfsbereiten IT-Infrastruktur-Abteilung holen.

Zusammengefasst übernehmen die Teamcoaches folgende Aufgaben:

  • Anleitung und Befähigung ihres Teams zur selbstorganisierten Umsetzung des Scrum Frameworks
  • Coaching ihres Teams hinsichtlich zwischenmenschlicher Aspekte der Zusammenarbeit
  • Organisation und Problemlösung für eine optimale Teamzusammenarbeit, häufig über verschiedene Standorte hinweg
  • Erster Ansprechpartner im Team für alle innerhalb und außerhalb des Scrum Teams

Durch das steigende Interesse an agilen Methoden wie Scrum, auch außerhalb der IT, gibt es einen stark wachsenden Bedarf an Scrum Mastern. Nur keine Scheu: Soziale und emotionale Fähigkeiten sind in der IT-Branche immer gefragter! Gerade unterschiedliche fachliche Hintergründe auch außerhalb der Informatik bereichern unsere Arbeit und bringen durch den stetigen Austausch von unterschiedlichen Sichtweisen und Ansätzen einen deutlichen Mehrwert für alle. Wir selbst haben zwei vermeintlich gegensätzliche Hintergründe – den Studiengang Kommunikationspsychologie und Medieninformatik. Doch gerade das Lernen voneinander bereichert uns jeden Tag.

(1): https://www.scrumguides.org/docs/scrumguide/v1/Scrum-Guide-DE.pdf

 

Teamcoaches gesucht!

20. März 2018
Erik Schiller
0

Der Custom Usability Index (CUI) in Action – Usability Tests in der agilen Softwareentwicklung

Ausgangspunkt – Was bisher geschah…

In zwei früheren Blogbeiträgen habe ich einerseits das Konzept des Custom Usability Index vorgestellt, sowie die Vorbereitungsphase genauer erläutert, in welcher Usability-Kategorien individualisiert und gewichtet werden. Mit diesem Blogbeitrag möchte ich tiefer auf die tatsächliche Anwendung eingehen und erklären, welche Schritte notwendig sind, um am Ende eine valide CUI-Bewertung zu erhalten.
Folgender Stand soll als Startpunkt unseres Anwendungsbeispiels dienen. Wir befinden uns in der Entwicklung einer neuen Web-Applikation für einen Business-Kunden. Der verantwortliche Product Owner hatte zu Projektstart die Usability-Kategorien durch einen UX-Experten erklärt bekommen und seine Zielzustände definiert. Diese hat er im Anschluss entsprechend seiner Anforderungen priorisiert und so den Grundstein zur regelmäßigen Messung der zukünftigen Anwendung mit dem CUI gelegt. Nach einiger Entwicklungszeit ist nun ein erster Release Kandidat auf das QA-System deployt worden und steht zum Test bereit.

Der Custom Usability Index (CUI) in Action – Jetzt geht es Ihrer Software an den Kragen!

Wie geht es jetzt weiter? Für den Test der 13 Usability-Kategorien sind mehrere, verschiedene Testmethoden möglich. Die Auswahl der Testmethodik orientiert sich neben der Eignung für die jeweilige Usability-Kategorie auch an zahlreichen weiteren Faktoren. Die Verfügbarkeit der Endnutzer, das Wissen des Usability-Testers sowie zeitliche und monetäre Ressourcen spielen eine wichtige Rolle. Das Wunschszenario, mit mehreren Usability-Testern inklusive Protokollanten zahlreiche Endnutzer einem ausgiebigen und zeitlich intensiven Test zu unterziehen, ist in der Praxis selten der Fall.
Was verlieren wir durch das Eindämmen der Ressourcen? Hauptsächlich Genauigkeit und Unabhängigkeit in der Messung. Jedoch ist dies nicht das primäre Ziel des CUI. Durch die Tests, egal in welchem Ausmaß, sollen hauptsächlich Probleme und Verbesserungspotentiale aufgezeigt werden. Das heißt, selbst wenn das Ergebnis von Test A zu Test B abweicht sind die Schmerzpunkte klar und ermöglichen so Ansätze für eine besser nutzbare Software zu schaffen. Eine ressourcenschonende Variante des Testens ist die heuristische Evaluation. Die heuristische Evaluation ist eine Inspektionsmethode, bei der eine Gruppe von Usability-Experten eine Anwendung auf die Einhaltung von ausgewählten Richtlinien und Heuristiken (in diesem Fall die dem Nutzungskontext angepassten Usability-Kategorien des CUI) untersucht. Nach Nielsen finden ca. 7 Tester 80% der gesamten Usability-Fehler, Folge-Tests sind weniger ergiebig, da kaum noch weitere Fehler gefunden werden.

Nielsen (1995): Anzahl der heuristischen Evaluationen vs. gefundene Usability Probleme https://www.nngroup.com/articles/how-to-conduct-a-heuristic-evaluation/

In der Praxis von agilen Softwareentwicklungsprojekten ist es jedoch Luxus überhaupt mehrere Usability-Experten für den Test zu bekommen, so dass üblicher Weise 1-2 Experten die Evaluation durchführen. Ein mit der Anwendung vertrauter Usability-Experte sollte je nach Komplexität der Anwendung und dem Dokumentationsumfang in der Lage sein, innerhalb von 1-2 Tagen ein brauchbares Messergebnis zu erzielen. Das heißt Sie können auch schon mit mehreren „kleineren“ Usability-Tests die Qualität Ihrer Software steigern und erste Verbesserungen erzielen.

Ein Beispiel – Die Messung von 13 Kategorien, 31 Kriterien „in a nutshell“.
Starten wir mit der ersten Kategorie Effektivität. Der Product Owner hat für diese Kategorie folgenden Zielzustand definiert: „Der Nutzer hat jederzeit Zugriff auf die zur Aufgabenerledigung notwendigen Funktionalität und erreicht diese in höchstens 2 Schritten. Er wird dabei nur mit den für ihn im Moment notwendigen Informationen belastet (Daten sollen im Vordergrund stehen).“

Zusätzlich wurde Effektivität mit der Fibonacci-Zahl 3 gewichtet.
Die Kategorie Effektivität besteht aus den zwei Kriterien Funktionsumfang und Angemessenheit. Für das Kriterium Funktionsumfang müssen nun die verschiedenen Use-Cases der Webanwendung überprüft und zusätzlich geschaut werden, ob die dazu benötigten Funktionen in höchstens 2 Schritten erreichbar sind.

Der Zielzustand für dieses Kriterium ist für den aktuellen Release Kandidaten vollständig erfüllt und es wird somit die Maximalbewertung von 5 Punkten erteilt.
Weiter geht es mit dem zweiten Kriterium Angemessenheit. Es fordert, dass der Nutzer nur mit den für ihn im Moment notwendigen Informationen belastet wird und die Daten im Vordergrund stehen.

Durch mehrere kleinere Auffälligkeiten gibt es 2 Punkte Abzug und somit eine Bewertung von 3 Punkten. Zusammengerechnet mit der Bewertung des Kriteriums Funktionsumfang bedeutet dies eine durchschnittliche Bewertung von 4 Punkten für die übergeordnete Kategorie Effektivität.
Die Messung der übrigen 12 Kategorien und 29 Kriterien sollte analog zum obigen Beispiel erfolgen. Da die vollständige Dokumentation eines CUI-Tests jedoch den Rahmen dieses Blogbeitrages sprengen würde, springen wir einen Schritt weiter und schauen uns die Endberechnung einmal genauer an.

Beispiel einer fertiggestellten CUI-Berechnung

Der Custom Usability Index (CUI) in Action – Usability Tests in der agilen Softwareentwicklung

Der Custom Usability Index (CUI) in Action – Usability Tests in der agilen Softwareentwicklung

Obige Tabelle zeigt eine vollständig ausgefüllte CUI-Berechnungsmatrix nach Testbeendigung. Der finale CUI-Wert setzt sich wie folgt zusammen:

  • Berechnung des Durchschnittswertes einer Kategorie (Summe der Bewertung / Anzahl der Kriterien)
  • Berechnung der relativen Gewichtung (Gewichtungswert der Kategorie / Summe aller Gewichtungswerte)
  • Berechnung des finalen Kategorienwertes (Durchschnittswert der Kategorie * relative Gewichtung)
  • CUI-Wert = Summe der finalen Kategorienwerte
  • CUI-Erreichungsgrad = ((CUI-Wert – 1) / 4)

Rechnen wir dies einmal anhand unseres Beispiels nach:

  • Bewertung der Kategorie Effektivität (Funktionsumfang 5 Punkte + Angemessenheit 3 Punkte) / 2 Kriterien = 4 Punkte
  • Summe der Gewichtungen aller Kategorien = 24
  • Relative Gewichtung der Kategorie Effektivität = 3/24 = 0,125
  • Einzelwert der Kategorie Effektivität = Bewertung von 4 * relative Gewichtung 0,125 = 0,50

Juhu geschafft – Und nun?

Erst einmal herzlichen Glückwünsch, dass Sie sich um das Wohl Ihrer Nutzer gekümmert haben. Doch nun gilt es weitere Schritte einzuleiten:

  • Entwickeln Sie Lösungsvarianten für die aufgezeigten Probleme in Form von Wireframes und Prototypen
  • Zeigen Sie den Einfluss kommender User Stories in Bezug auf die verschiedenen Usability Kategorien auf
  • Hinterfragen Sie die Anforderungen Ihres Product Owners … Sie sind der Experte!
  • Zeigen Sie aktiv Alternativen auf und setzen Sie die vorgesetzten Anforderungen nicht einfach stillschweigend um
  • Führen Sie in regelmäßigen Abständen einen erneuten CUI-Test durch und tracken Sie so den Einfluss der Verbesserungen bzw. neuer Anforderungen auf die Nutzbarkeit Ihrer Software

Durch den Custom Usability Index ist es möglich mit geringem Ressourcenverbrauch hilfreiche Ergebnisse zu erzielen. Das leichtgewichtige Vorgehen bettet sich nahtlos in den agilen Softwareentwicklungsprozess ein und zeigt Schwachstellen Ihrer Software auf. Durch regelmäßige Tests wird ein langfristiges Tracking möglich und Usability tatsächlich greifbar gemacht. Trauen Sie sich, Ihre Nutzer werden es Ihnen danken!

Ein Einblick in Usability Tests in der agilen Softwareentwicklung!

 

9. Oktober 2017
Hendrik Loesch
0

DWX 2017 – 100 Leute haben wir gefragt…

Wie schon in den vergangenen Jahren war die Saxonia Systems AG auch dieses Jahr wieder bei der Developer Week (DWX 2017)  in Nürnberg vertreten. So gestalteten wir das Programm aktiv mit Vorträgen und gewährten tiefe Einblicke in unseren Arbeitsalltag, sowie unsere Leistungen.

mehr

4. September 2017
Ines Reiche
0

Paartherapie – Dienstleister erfolgreich integrieren

In einer Studie der Capgemini (Capgemini Consulting, 2016) benennen die Befragten „Zu wenig Mitarbeiter mit entsprechendem Know-how“ als größte Hürde der Digitalisierung in ihrem Unternehmen. Nicht selten versucht man, diesem Problem durch die Integration eines oder mehrerer externer Dienstleister beizukommen. Aus gleicher Studie geht zudem hervor, dass diese Dienstleister zusehends in Bereichen oder Projekten eingesetzt werden, in denen innovative Lösungen geschaffen werden sollen. Vermutlich in diesem Zusammenhang gehen durchschnittlich bereits 23,3% der Befragten in Projekten nach agilen Frameworks, Methodiken oder Philosophien wie Scrum, Kanban, DevOps oder Scaled Agile Framework vor.

mehr

3. April 2017
Sylvie Löffler
0

Traditionelles Handwerk trifft auf innovatives Software-Entwicklungshaus

Ergebnis: Prämierung auf der Spezialmesse für Werbemittel

Um bei Kunden und Partnern präsent zu sein, gibt es viele Möglichkeiten. Dazu starten wir immer wieder Kampagnen, die stets zeigen sollen, dass wir mit Geschwindigkeit nach Innovation und Qualität streben. Wir haben nun einen traditionellen Räuchermann innoviert und einen Räucherrechner für eine Bestandskundenkampagne zum Nikolaus 2016 kreiert. Diesen haben wir von der KWO Kunstgewerbe-Werkstätten Olbernhau produzieren lassen und wurden jetzt für unser sächsisches Gemeinschaftsprojekt mit dem Promotional Gift auf der „HAPTICA“ ausgezeichnet.

Hintergrund & Ziel unserer Bestandskundenkampagnen

Wir versenden mehrfach im Jahr an unsere Kunden und Partner Grüße zu den unterschiedlichsten Anlässen. Für jeden Gruß ist der Anspruch sehr hoch:

  • Wir wollen überraschen und im Gedächtnis bleiben.
  • Wir wollen mit außergewöhnlichen, kreativen Ansprachen und Give-Aways auf unser Kerngeschäft die Individualsoftwareentwicklung hinweisen.
  • Wir wollen Give-Aways, die nachhaltig sind und beim Empfänger Nutzen stiften.

Seit Sommer 2016 haben wir mit sogehtsoftware.de eine neue Webseite, die uns auch neue fokussierte Marktansprachen erlaubt. Mit unseren Grüßen wollen wir auf diese aufmerksam machen und leiten die Empfänger bei Interesse zu unserer Überraschung – In diesem Fall der Räucherrechner.

Entstehung der Nikolausgrußkampagne

Im Rahmen unseres agilen Vorgehens – auch im Marketing – haben wir in der Planung des Sprints die Nikolausgrüße hoch priorisiert und im ersten Kreativtermin Anfang September zusammentragen, was wir mit Nikolaus verbinden – Startschuss in und Vorfreude auf die Weihnachtszeit.

Die Weihnachtszeit ist geprägt durch viele Gerüche und kulinarische Genüsse, die unsere  Sinne ansprechen. Im Jahr 2014 hatten wir schon einmal großen Erfolg mit dem Ansprechen des Geschmackssinns. Wir haben eine eigene Glühweinmischung (von Georg Bauch eigens für unsere Weihnachtsgrüße kreiert) verschickt und es geschafft, unsere Kunden und Partner mit dem Geruch in eine vorweihnachtliche Stimmung zu versetzen. Wie können wir das wieder erreichen?

Als erstes entstand relativ schnell die Idee für das Grußkarten Give-Away.

Räucherkerzchen = Duft, Vorfreude, Startschuss in die Weihnachtszeit

skizze-saxonia-systems

Abbildung 1: Erste Skizze des Räucherservers

Was könnte noch passend zu den Räucherkerzen sein und auf unser Kerngeschäft verweisen? Nach umfangreichen Recherchen fanden wir einen Räuchermann, der vor dem Laptop sitzt und dessen Kopf qualmt. Dieser war jedoch nicht verfügbar. Ein Räucherhaus? Das passt nicht ganz. Schnell kamen wir dann zu einem Räucherserver (Abbildung 1), den es so noch nicht gibt. Wir waren einer Weltneuheit auf der Spur …

Auf Basis dieser Skizze entstand auch der Slogan für die Nikolausgrüße „Für Sie lassen wir unsere Rechner rauchen“ und so wurde auch aus dem Räucherserver ein Räucherrechner.

skizze-rechner-saxonia-systems

Abbildung 2: Skizze des Räucherrechners

Wer kann unsere Idee herstellen und produzieren? Ganz bewusst haben wir uns dann für das Erzgebirge und nicht China entschieden. Wir wollten etwas Traditionelles und vor allem hochwertige Qualität.

Eine entsprechende Skizze des Räucherrechners (Abbildung 2) diente anschließend als Basis für die Einholung von Angeboten zur Produktion.

Unsere Anfrage ging an mehrere Hersteller im Erzgebirge – nur KWO konnte unsere Anforderungen der individuellen Herstellung erfüllen. KWO produziert mit heimischen Hölzern aus nachhaltiger Forstwirtschaft, hat Erfahrung seit 1949 und Spezialistenwissen für Sonderanfertigungen im Werbeartikelbereich.

iteration-saxonia-systems

Abbildung 3: Entstehung in wenigen Iterationen

iteration-fertig-saxonia-systems

Abbildung 4: Der fertige Räucherrechner von KWO Olbernhau

In kürzester Zeit mit wenigen Iterationen hatten wir ein tolles Rauchobjekt in Rechnerform (Abbildung 3 und 4) und konnten unsere Nikolausgrußkarten (Abbildung 5) designen und in Druck geben.

grusskarte-saxonia-systems

Abbildung 5: Nikolausgrußkarte

Vor dem Versand hat jeder Kontaktinhaber persönliche und handschriftliche Grüße auf der Grußkarte verfasst. Zum Schluss der Konfektionierung kamen die Räucherkerzen auf die Grußkarten (Abbildung 6) und ab ging es mit 1500 Grüßen zur Post.

versandtasche-saxonia-systems

Abbildung 6: Nikolausgrußkarte Rückseite & Versandtasche

Unser Nikolauskonzept sah auch die Umsetzung auf der Webseite vor. Wir haben eigens eine Seite sogehtsoftware.de/nikolaus (Abbildung 7) entwickelt und diese URL auf den Grüßen mit angegeben. Alle Grußempfänger hatten somit die Möglichkeit, sich für einen der 100 einzigartigen Räucherrechner zu registrieren.

webseite-saxonia-systems

Abbildung 7: Umsetzung auf der Webseite – Registrierung für den Räucherrechner

Ergebnis

Die Feedbacks zur Grußkarte und dem Räucherrechner waren durchweg positiv und begeisternd. Wir haben sogar Fotos rauchender Rechner bekommen. Geschafft … mit unserem Räucherrechner und den dazu passenden Räucherkerzen haben wir unseren Kunden und Partnern die Vorweihnachtszeit verschönert.

Auf Initiative von KWO haben wir Anfang Dezember das Gesamtkonzept der Nikolauskampagne mit dem Räucherrechner eingereicht und am 14.12.2016 die Nachricht erhalten „ … herzlichen Glückwunsch zum Promotional Gift Award 2017! Die Jury war sich einig: Ihr Produkt: „Rechner als Rauchobjekt (Räucherrechner)“ ist herausragend und verdient es, mit einem Promotional Gift Award ausgezeichnet zu werden.“

Die Verleihung des Awards hat am 22.3. in Bonn (Abbildung 8) stattgefunden.

Ein preisgekröntes sächsisches Gemeinschaftsprojekt zwischen Saxonia Systems und KWO – So geht Zusammenarbeit!

preis-haptica-saxonia-systems

Abbildung 8: Am 22.3.2017 Verleihung des Promotional Gift Award

27. März 2017
Sven Jänicke
0

Zusammenarbeit – eingespielte Teams als Erfolgsgarant? Teil 2

Das Konferenzjahr 2017 startete im Januar – wieder mit der OOP. Auch diesmal befand sich eine Umfrage im Gepäck nach München. Wie im vorangegangenen Blogbeitrag zur WJax bereits beschrieben, wollten wir uns erneut dem Arbeitsumfeld der Befragten widmen. Dadurch ergibt sich die Möglichkeit, Rückschlüsse auf die zielgruppenabhängige Sichtweise auf eingespielte Teams zu ziehen, da die Rahmenbedingungen z.B. mit Fragen und Konferenzort im Vergleich zur WJax gleichbleibend sind. Einziger wesentlicher Unterschied ist bei den Funktionen der Umfrageteilnehmern festzustellen, da wir bei der OOP vorrangig Softwarearchitekten, Entscheider und Berater vorfinden, während die WJax überwiegend von Softwareentwicklern aufgesucht wird.

mehr

3. März 2017
Sven Jänicke
0

Zusammenarbeit – eingespielte Teams als Erfolgsgarant?

Alle Jahre wieder – im November 2016 waren wir auf der WJax in München. Wie es viele der Teilnehmer schon gewohnt sind, haben wir erneut eine Umfrage durchgeführt. Bei den letzten Veranstaltungen, wie der DWX mit Desktop vs. Web oder der solutions hamburg mit dem Thema Digitalisierung, haben wir uns immer einem speziellen Thema gewidmet. Im Falle der wjax lag der Fokus diesmal nicht auf einem inhaltlichen Fachthema, sondern dem Arbeitsumfeld der Befragten.

mehr

31. Oktober 2016
Sven Jänicke
0

Digitalisierung – Industrie 4.0 oder nur Papierloses Büro?

Vom 07.-09.09.2016 waren wir als Saxonia Systems AG mit mehreren Speakern und Teilnehmern auf der solutions.hamburg unterwegs. Der Kongress zu Digitalisierung, Business und IT beschäftigte sich 3 Tage lang in 333 Sessions mit der Frage: „Wie funktioniert Digitalisierung in Unternehmen?“ und konnte damit wieder zahlreiche Interessierte auf das Gelände des Kampnagel in Hamburg locken.

mehr

30. September 2016
Vincent Tietz
0

Soziokratie

Ein Bericht vom Treffen der Agile Saxony Community am 21.09.2016.

An diesem Abend inspirierte uns Birgit Mallow mit einem abwechslungsreichen Vortrag über Soziokratie, deren Ursprung, Basisprinzipien und ihre Bedeutung im agilen Umfeld. In ihrem Vortrag baute sie eine Simulation zum Konsent ein, ein Kernprinzip zur Entscheidungsfindung, und versuchte am Ende Gemeinsamkeiten und Unterschiede zur Holacracy® herauszustellen – ein gelungener, intensiver und interaktiver Abend bei Agile Saxony.

mehr