Eine Tour durch die Testpyramide

Stellen sie sich vor der Compiler ihrer Programmiersprache würde nicht nur Typfehler, sondern auch einen Großteil der Verhaltensfehler in der Applikation finden können. Welche Auswirkung würde das wohl auf die Qualität ihrer Software haben? Gerade Praktiken der agilen Softwareentwicklung wie die schnelle, häufige Veröffentlichung oder sogar die kontinuierliche Veröffentlichung (Continuous Delivery) sind ohne ein schnelles und umfassendes Feedback über die Softwarequalität nicht denkbar. Automatische Tests können genau dieses Feedback geben – und dennoch werden sie von sehr wenigen Projekten genutzt.

Leider ist die Erstellung von effektiven automatischen Tests eine Fähigkeit, die bei der Ausbildung von Softwareentwicklern oft zu kurz kommt. Viele naive Ansätze der Testautomatisierung, wie etwa mit Tools, die wenig Aufwand durch Aufnahme und Wiedergabe von UI-Interaktionen versprechen, können schnell dazu führen, dass ein Team von dem Vorhaben frustriert ist und den Wert der automatischen Tests in Frage stellt. Das kann etwa dann der Fall sein, wenn kleine Änderungen an dem User Interface dazu führen, dass eine ganze Reihe an Tests fehlschlagen und Entwickler vor der Frage stehen, ob es sich tatsächlich um eine Regression handelt oder um eine falsche Fehlermeldung.

Im Extremfall führt dieser Missstand dazu, dass Änderungen am User Interface nur widerwillig von den Entwicklern vorgenommen werden. Es ist eine paradoxe Situation, da doch gerade durch die Tests auch bei tiefgreifenden Änderungen mehr Sicherheit und damit eine deutlich erhöhte Flexibilität der Software erreicht werden sollte. Die richtige Herangehensweise an Testautomatisierung ist deshalb der Schlüssel für eine frustfreie und wirtschaftliche automatisierung von Testfällen und Grundlage für rapide und häufige Lieferung von Software.

(mehr …)

Automatisierte Integrationstests für Webservices

Einen Webservice im Integrationstest anzusprechen hat vieles mit dem berüchtigten Schuss auf ein bewegtes Ziel gemeinsam: der Webservice ist aus Sicht des Tests schwer berechenbar und flüchtig. Netzwerkprobleme, eine Änderungen an der Datenbasis (z.B. durch vergessene „Aufräumarbeiten“ nach einem Test) oder die Änderung der Schnittstelle können zum ungewollten Scheitern der Integrationstests führen. Vor allem wenn sich die Daten des Webservices oft ändern, wie es bei Information Retrieval- oder PIM Systemen der Fall ist, kann der Aufwand der betrieben werden muss um die Tests laufend anzupassen bald die durch eine Automatisierung erhoffte Zeitersparnis übersteigen.

Aber selbst wenn der Webservice recht statisch ist, ist die Zeit für einen HTTP Round-Trip, der vielleicht auch noch eine Datenbankquery anstößt, ein unliebsamer Flaschenhals, der die Testausführung ausbremst. Mit den richtigen Techniken und Tools kann man jedoch auch flüchtige Webservices zähmen und so den Aufwand automatisierter Tests auf ein Minimum beschränken.

(mehr …)

Saubere Software

Bereits in den späten siebziger Jahren haben Studien festgestellt, dass ein Großteil der Kosten für ein Softwareprojekt in die Wartung und Weiterentwicklung fließen. Viele Unternehmen standen und stehen deshalb vor der schwierigen Situation ihre alten und zunehmend teueren „Legacy“ Systeme durch neue zu ersetzen. Wie kommt es eigentlich dazu und weshalb ist die Wartung und Weiterentwicklung von Software eigentlich so teuer?

(mehr …)

Agile Migration

Vom Plan zum Projektbetrieb

Auch für Migrationsprojekte ist klassische Projektplanung mit Meilensteinen, Aktivitäten und deren Abhängigkeiten unerlässlich. Man sollte sich jedoch bewusst machen, dass hier ein neues System entwickelt wird, während das Alte noch läuft und Veränderungen unterworfen ist. Da i.d.R. das neue System … Weiterlesen

Present-Future Sketching für effiziente Interface-Optimierung

Der Artikel von Jakub Linowski mit dem selben Titel hat mir geholfen einen Namen für mein in Meetings gerne eingesetztes Prinzip zu finden.

Das Setup ist recht einfach – man hat in der Regel schon alles im Sitzungszimmer: Projektor, Flipchart (Rollen bevorzugt) und natürlich Stifte. Ich bevorzuge die Stabilo Woody Serie. Natürlich sollte man auch was zu zeigen haben – und wenn es nur die bestehende Website ist (Present State).

Gerade in agilen Projekten gibt es immer sehr früh etwas zu sehen. Und hier ist die Besprechung des Prototyps im Sitzungszimmer und Skizzen der Verbesserungen direkt ins Projektorbild wesentlich effizienter – man ist nicht die Hälfte der Zeit damit beschäftigt auf jedem leeren Blatt nochmal die Grundelemente nachzuzeichnen, sondern kann sich gleich der Problemstelle widmen:941-present-future-sketching.jpg Nein – nicht auf die Wand malen, sondern das Flipchart ist Bild schieben!

Weitere Vorteile dabei:

  • Jeder sieht sofort um welches  Interface Element, dessen Status und genaue Position man spricht
  • Die Dokumentation des Resultat ist mit einem Foto in Sekundenschnelle gemacht (drum auch die schlechte Qualität des Beispiels – sorry)
  • Trotz Skizzieren bleibt der Hintergrund klickbar – so dass man wichtige Stati und Events (Interesting Moments) nicht vergisst

Present-Future Sketching – weil Englisch – hört sich natürlich gleich mal um Welten griffiger an; die Resultate sind aber aus meiner Erfahrung tatsächlich griffiger und man gelangt sehr effizient zu einer Lösung.

So sieht es übrigens aus, wenn man wie Dorian in Aktion ist: http://www.flickr.com/photos/l-i-n-k/3310592285/ In dem Fall war das Whitebord gleichzeitig die Projektionsfläche…

Wer genug Geld übrig hat kann sich natürlich auch ein Interactive Whiteboard kaufen (Old Skool) – oder eben Microsofts Surface (State-of-the-Art) und eine eigene Anwendung dafür programmieren. Ohne Anwendung müsste man wohl Klarsichtfolie über den Tisch ziehen, damit man die Skizze behalten kann. ;-)

Wie kommt man von einer Idee zu lauffähiger Software?

Heute Abend war wieder einmal ein Webtreff in Konstanz, ähnlich dem Web Monday oder Web Tuesday in Zürich. Ich war eingeladen zum Thema agile Softwareentwicklung zu referieren.

Nach einer etwas holprigen Koordination (mir war bis zum Vorabend nicht klar, wo ich hin muss) fand ich mich dann vor einem interssierten und kritischen Publikum wieder.

In knapp 90 MInuten konnte ich anhand eines Beispiels zeigen, wann man agiles Vorgehen wählt, was Scrum ausmacht und wie Scrum funktioniert. Es gab viele Fragen und reichlich Diskussionsbedarf, auch wenn einige wichtige Aspekte aufgrund der Zeit nicht beleuchtet werden konnten.

Meine Präsentation [PDF, 9.6MB] kann man hier runterladen.

In 3 Tagen lauffähige Software entwickeln – geht das, wie funktioniert das?

Heute jährt sich der Scrum Breakfast Zürich zum zweiten Mal und zur Feier des Tages ist es die Namics AG, die der agilen Community in diesem Rahmen ein interessantes Projekt vorstellte.

3-2-1 Live! Rapid Development.

Namics konnte im August 2009 gemeinsam mit der Adhoco GmbH, Winterthur ein Projekt der besonderen Art abwickeln. Ein interdisziplinäres Team, dass sich nicht kannte und so noch nie zusammengearbeitet, hat sich das ambitionierte Ziel gesteckt, lauffähige Software in 3 Tagen zu realisieren, wobei zu Beginn nur ein Idee im Raum stand!

Das Team, bestehend aus dem CEO/Adhoco als Product Owner, 1 Entwicker/Adhoco, 2 Entwicklern/Namics, einem ScrumMaster/Namics und einer UI Designerin/Meyer-Hayoz Design Engineering, führe in der gegebenen Zeit Interviews durch, erarbeite Personas und User Stories, entwarf UI Prototypen, Wireframes und realisierte letztendlich ein Web Applikation, die für das iPhone optimiert wurde.

Im Vortrag wurden fünf Fragen beantwortet:

  • Wie kommt man von einer Idee zur Vision?
  • Wie sammelt man benutzerorientierte Anforderungen?
  • Wie stellt man den ersten Release zusammen?
  • Wie geht man bei der Umsetzung vor?
  • Wie geht man erfolgreich live?

… und natürlich wurde das Ergebnis gezeigt. Eine spannende Diskussion folgte auf den Fuss.

Klingt spannend? Dann studieren Sie die Unterlagen zum Vortrag …

Rapid Development. Eine lauffähige Applikation in nur 3 Tagen. [pdf, 7,2MB]

Rapid Development [Vortrag]

Rapid Development. 37signals oder andere erfolgreiche Web Start-Ups machen es vor und wir alle nach? Wir sagen: „Wenn alle Vorzeichen stimmen, warum nicht?“

i-71174068237b2016bf2402949237fe45-iStock_000007951938Small-thumb.jpg

Jean-Pierre König und ich wollen morgen mit unserem Vortrag an den Orbit Zoom Days aufzeigen, wie man eine Idee schnell in eine laufende Webapplikation umsetzen kann, ohne sich in endlosen Konzeptions- und Spezifikationszyklen zu verlieren.

i-8edbef731e89d8de0aa5694c65e8c0cd-turtle-thumb.jpg

Anhand eines konkreten Fallbeispiels erzählen und erklären wir,
– wie man von einer Idee zu einer Vision kommt,
– wie man effizient benutzerzentrierte Anforderungen sammelt und bewertet,
– wie man schnell bestimmen kann, welche Funktionen und Inhalte der Release enthalten soll,
– wie man während der Umsetzung stets Herr des Prozesses bleibt und
– und wie man erfolgreich live geht.

Die Präsentation kann bereits heute hier heruntergeladen werden.

i-ff32146802600da2d922318a7adeb6c3-iStock_000008465949Small-thumb.jpg

Wir würden uns freuen, Sie morgen Donnerstag an unserem Vortrag (Slot c-15) um 14.15 Uhr begrüssen zu dürfen! Gerne diskutieren wir mit Ihnen auch nach dem Vortrag über Rapid Development!

Download: Rapid Development für Webprojekte [pdf, 600 KB]

Lean Agile Scrum Conference

4. Juni 2009 in Zürich, mit Ken Schwaber

Agile – vom Hype zur Praxis

Am 4. Juni findet in Zürich der einttägige Lean Agile Scrum-Event statt. Eingeleitet durch eine spezielle Ausgabe vom Scrum Breakfast, welche ausnahmsweise nicht bei der namics ag ausgetragen wird, sondern an der ETH Zürich (Gebäude ETZ, Gloriastrasse 35, 8006 Zürich), wird Scrum-Mitgründer Ken Schwaber 3 verschiedene Workshops und Vorträge halten: „Done und not Done“, der „Zustand von Scrum“, und „Scrum, but…“ ein praktischer Workshop darüber, wie man am meisten aus Scrum herausholt. Weiter gibt es Einführungs-und Vertiefungsworkshops für Manager, Projektleiter und Entwickler rund um die ganze Thematik agiler Software Entwicklung.

Weitere Details zum Programm und Teilnahmebedingungen finden sie unter swissict.ch.

Wir wünschen Ihnen einen lehrreichen Tag und freuen uns, Sie wieder am folgenden Scrum Breakfast im zürcher namics-Office willkommen zu heissen.

Scrum Breakfast in Zürich, am 6. Mai 2009

Scrum ist ein Weg zur effizienteren Realisierung von (Entwicklungs-)Projekten. Aber was hat Scrum im Bereich Support und Betrieb zu suchen? Viele von uns würden auf den ersten Blick sagen: Gar nichts. Das sieht auch Anton Schultschik anders, Leiter der IT Support Gruppe des Departements Elektrotechnik an der ETH Zürich. Er war nach seinem ersten Kontakt mit Scrum davon überzeugt, dass Scrum genau das ist, was seine Gruppe benötigt.

Anton Schultikschik spricht am Mittwoch, den 6. Mai 2009 im Rahmen des Scrum Breakfast, das in unseren Räumen stattfindet. Anschliessend gibt es Gelegenheit für Fragen, Diskussionen und Erfahrungsaustausch unter den Teilnehmern. namics lädt Sie wie immer zu Kaffee und Gipfeli ein.

Datum: 6. Mai 2008 (immer der 1. Mittwoch des Monats)
Zeit: Türöffnung 08:00 Vortrag ab 8:35, Ende 10:00
Ort: namics Zürich, Konradstrasse 12/14, 8005 Zürich (map)