Beiträge

SPF Consulting AG - Insights - Teaching the Mob to students

Teaching the Mob to students

Teaching the Mob to students?

When Bernhard Wagner – acting teacher at ZHAW and teaching the ways of programming to students of electric engineering – asked me whether I could imagine using the Mob Programming & Test Driven Development approach to programming in a didactic setting and if I’d be willing repeat my workshop on “The MOB & TDD” for his class, I was pleasantly surprised and replied “There is nothing I’d rather do”.

SPF Consulting AG - Insights - Teaching the Mob to students

Is it just about collaboration?

His concern was that individuals would be left behind unnoticed so he would not be able to help them catching up. Putting in place any kind of swarming culture would be beneficial to avoid this problem. And of course, the mob the merrier. Less knowledgeable people and introverts can profit from the team effort by developing their own skills.

But the advantage for the pros and extroverts is very valuable, too, not only for the team as such. Teaming up properly leaves space for the driving forces to learn about new ideas in areas from which fellows think they have nothing left to learn about. This is not only true for study groups. Applying these principles in professional teams is the easiest and most effective way to literally foster every single agile value.

But does it make a good case?

Suddenly a doubt rushed through my mind: Isn’t everybody already saying that ensemble programming only works in academic examples? How is this going to help? But nothing of that happened. Au contraire. The not-yet professionals came up with the same arguments as team leads normally do, but much quicker, how that would not work out out in the field as everyone would think that you lose capacity by working in groups. They were quickly to be proven wrong and be convinced. It is left to the inclined reader to look up the facts from other articles, where these overly simplistic arithmetical arguments are proven incorrect.

At the end of the day

Since the class was too large, we had to split into two groups and do the exercise twice. When the first group left the room and the second came in, one of the entering students said: “You erased the fatalistic look of indifference from their faces, what did you do?!?”. Guilty as charged.

After all was over, I asked for collecting feedback and in the end we got only positive if not effusive reactions.

What is the lesson?

After 2 generations of computer science in schools we’re still trying to teach if-else, while, algorithms and patterns, instead of putting quality driven work and collaboration first. We need to change that if we want to improve culture.

 

Contact Information

 

Danilo Biella, Agile & Quality Professional

Email: danilo.biella@spf-consulting.ch
LinkedIn: https://www.linkedin.com/in/danilo-biella/

 

The Open Group Architecture Framework (TOGAF): To go... für Daten

TOGAF – To go… für Daten

The Open Group Architecture Framework (TOGAF)

 

In einer Zeit in der es gar nicht neu und hip genug zugehen kann möchte ich an dieser Stelle eine Lanze für ein Framework brechen, dass, bei aller Liebe zur Agilität, seit fast 25 Jahren den Enterprise-Architekten die Möglichkeit gibt Unternehmensstrukturen und daraus resultierende IT-Umsetzungen zu planen, umzusetzen und zu warten: The Open Group Architecture Framework (TOGAF). Wobei der Aspekt der Wartung einer der grössten Herausforderungen bei diesem Unterfangen ist. Das erfordert zum einen eine permanente Überprüfung der Konsistenz des involvierten Unternehmensausschnitts und zum anderen die Disziplin, die zugrunde liegende Dokumentation aktuell zu halten und vor allem so didaktisch aufzubereiten, dass auch jeder andere Leser versteht, was man geschrieben hat.

 

Nach weit mehr als zwei Dekaden Beratung im Qualitäts- und Test-Management lautet mein Credo:

„Alles was ich schreibe, schreibe ich für andere und das muss verständlich und lesbar sein. Dazu zählt auch didaktische Redundanz“.

Vergleicht man dieses Framework mit anderen Frameworks, so wird man feststellen, dass eine nicht unerhebliche Anzahl von Frameworks lediglich die Lieferobjekte aufzählen, die benötigt werden, um verschiedene Aspekte der Unternehmensarchitektur zu beschreiben. Hier sagt TOGAF nicht nur was beschrieben werden sollte, sondern geht mit der Achitecture Development Method einen Schritt weiter und schlägt einen methodischen Ansatz zur Umsetzung vor, der sicherlich entsprechend dem jeweiligen Unternehmen angepasst werden sollte.

 

Gerade in Bezug auf die wachsende Internationalisierung der Projekte ist es wichtig, dass verteilte Teams nicht nur hinsichtlich der technischen Konsistenz von Datenmodellen ein fundiertes Wissen haben, sondern auch die Validität von Daten im Griff haben. Nehmen wir das Beispiel synthetischer Daten. Hier reicht es nicht aus syntaktisch korrekten Daten zu produzieren. Diese Daten müssen auch entsprechend dem jeweils übergeordneten Businessmodell entsprechen.

 

The Open Group Architecture Framework (TOGAF): To go... für Daten

 

Hierbei macht es Sinn ein zentralisiertes Testdaten-Management einzuführen und die Generierung der Daten in Abstimmung mit den jeweiligen Fachbereichen und den technischen Teams so zu koordinieren, dass die Fachbereiche sinnvoll generierte Daten sehen und die technischen Teams ein tieferes Verständnis bezüglich der Verwendung dieser Daten während der Entwicklungsphase bekommen. Synthetische Daten werden heutzutage nicht nur für Regressionstests verwendet, sondern auch von externen Entwicklungsteams, die aus Gründen von regulatorischen Vorgaben keine echten Daten verwenden dürfen.

 

Hat man zum Beispiel Entwicklungsteams im Ausland stellt die Bereitstellung geeigneter Daten eine nicht unerhebliche Herausforderung dar. Die Teams müssen die Business-seitige Verwendung der synthetischen Daten kennen und verstehen. Darüber hinaus muss auch das Verständnis da sein welche Kombinationen von Daten sinnvoll und welche technisch möglich aber aus Sicht der jeweiligen Geschäftsprozess nicht vorkommen oder sich sogar widersprechen.

 

Mit Unterstützung der Applikations- und Business-Architektur gelangt man dann zu einem weiteren Aspekt warum TOGAF ein geeignetes Mittel zur Beschreibung der Unternehmensarchitektur ist: Migration.

 

Migration als Teil eines unternehmensorientierten Wartungsprozesses ist eines der herausforderndsten Unterfangen um Geschäftsprozesse und ihre IT in Teilen oder als Ganzes zu transformieren. The Open Group Architecture Framework (TOGAF) kann dabei helfen Geschäftsprozesse und IT während und nach der Migration konsistent zu halten und unnötigen Ballast in Form von nicht mehr benötigten Tabellen, oder sogar ganze fachliche Subdomains, so herauszutrennen, dass die Migration auf sicherem Fundament steht und die damit verbundene Wartung des Unternehmensmodells stabil beendet wird.

 

Das hier angeschnittene Thema „TOGAF als mögliches Kommunikations- und Verständnismodell für dezentrale Teams“ und als Basis zur Herleitung von synthetischen Daten und Validierungsmodell im Bereich der Migration sind nur einige Beispiel wie man Quick Wins produzieren könnte. Wer mehr zur Anwendung von The Open Group Architecture Framework (TOGAF) wissen möchte sollte unseren Spezialisten Felix Isensee kontaktieren.

 

Kontaktinformationen

 

Consultant: Harald Schmidt
E-Mail: harald.schmidt@spf-consulting.ch

 

Harald Schmidt

 

Consultant: Felix Isensee
E-Mail: felix.isensee@spf-consulting.ch

Felix Isensee

SPF Consulting AG - Insights - Wie man erfolgreich KI-Systeme validiert

Wie validiert man erfolgreich KI-Systeme? Eine Q-Perspektive.

Traditionellerweise werden Software-Systeme nach Abschluss der Entwicklung in die Test- und Abnahmephase überführt, um dort entsprechend ihren Anforderungen verifiziert zu werden. Die Erwartungshaltung ist in jeder Phase der Software-Entwicklung deterministisch und eindeutig.

Diese strikte Erwartungshaltung gilt für Machine Learning (ML)-Systeme nicht. Die Erwartungshaltung gegenüber dem ML-System stellt keinen exakten Wert dar, sondern fordert die Einhaltung eines Wertebereichs. Analytische Systeme zur Mustererkennung arbeiten immer mit einer Wahrscheinlichkeit, die eine Aussage bezüglich der Treffergenauigkeit macht. Dies gilt auch für Prognosesysteme. Der Erfolg von ML-Systemen stützt sich auf die Verwendung von historischen Daten und der damit verbundenen Adaption der Modellparameter des ML-Systems. Die Programmierung solcher Systeme beschränkt sich zumeist auf die Integration von umliegenden Systemen via Schnittstellen. Die Entwicklung wird durch Parametrierung ersetzt und der klassische Software-Entwicklungszyklus durch einen Continuous Adaption / Continuous Integration – Approach:

Select: In der Realität wird in den meisten Fällen auf etablierte Open Source – Bibliotheken, wie zum Beispiel TensorFlow, Scikit-lean, oder Apache Spark zurückgegriffen. Was hier fairerweise nicht unterschätzt werden darf ist die Komplexität der zu verwendeten Schnittstellen und die notwendige Infrastruktur, die für den Einsatz benötigt wird. Anbieter, wie zum Beispiel Microsoft mit Azure bieten hier Komplettlösungen an.

Train: Nach der Selektion eines geeigneten ML-Modells wird dieses unter Laborbedingungen via Trainingsdaten soweit trainiert, dass es den Erwartungshaltungen der Tester genügt. In diesem Qualitätssicherungsschritt, und das ist der Unterscheid zum herkömmlichen Testen, wendet sich der Tester vom klassischen rein deterministischen Ansatz ab und formuliert seine Erwartungshaltung als Ergebnisbereiche, nicht als Ergebniswerte. Die Verifikation tritt in den Hintergrund und die Validierung gewinnt an Bedeutung. Ein deterministisches Verhalten würde an dieser Stelle nicht zielführend sein und ein Indiz für overfitting sein was einem auswendig lernen gleich kommt. Damit hätte das Modell seine gewünschte Flexibilität verloren.

Check: Im nächsten Schritt wird ein Robustness-Test durchgeführt. Hierbei wird ein Validation Set von Eingangsdaten genommen und evaluiert, wie sich das parametrierte ML-System verhält. Der Schwerpunkt liegt auf Ausreisserszenarien: Wie verhält sich die Erkennung von Nummernschildern im Winter, wenn ein Teil des Autonummernschilds vom Schnee bedeckt ist? Gibt es wirklich eine Krise, wenn die Pizza-Lieferanten in der Nähe des Regierungsgebäudes Hochkonjunktur haben? Wie gut kann das ML-System Kauf- oder Verkaufsempfehlungen nach einem Börsen-Crash prognostizieren? Das Ergebnis dieses Tests stellt ein Quality Gate dar und bewertet die Aussagekraft des Systems unter Extrembedingungen.

Integrate: Im dritten Schritt, der Inbetriebnahme in die Produktionsumgebung, wird das ML-System nicht gänzlich den Anwendern überlassen, sondern durch ein geeignetes Monitoring aktiv unterstützt. Das Monitoring sammelt Kombinationen von Eingangsdaten und Ergebnissen die ausserhalb eines akzeptablen Ergebnisbereichs liegen.

Adopt: Die aus dem Monitoring gewonnen Erkenntnissen und den zugrundeliegenden Daten werden von Domain-Spezialisten ausgewertet und gegebenenfalls zur Adaption der ML-Modellparameter verwendet. Die Adaption der Modellparameter geschieht durch direkte Justierung von Schwellenwerten oder einer erneuten Lern-Session (Phase Train).

Die hier vorgestellten Phasen, wobei Train und Adopt als identische Phase mit unterschiedlichen Voraussetzungen angesehen werden kann, entsprechen einem Entwicklungs- und Integrationszyklus (Select, Train, Check, Integrate) und einer Bugfix-Auslieferung (Adopt) im klassischen Sinne. Der Unterschied hierbei ist, dass kein Code, sondern Parameter-Sets des ML-Modells ausgeliefert werden. Aus Sicht der Qualitätssicherung bestimmen Validierungen und Wahrscheinlichkeitsräume die Bedeutung und ersetzen deterministische Erwartungshaltungen.

In einem dynamischen System gibt es keine statische Lösung

In diesem Artikel wurde bewusst auf eigentlich notwendige mathematische Verweise aus der Statistik, der Algebra und natürlich der Wahrscheinlichkeitstheorie verzichtet. Dieses mathematische Fundament ist essentiell, um die Qualität solcher Modelle bewerten zu können. In weiteren Artikeln werde ich näher darauf eingehen.

Kontaktinformationen

Ansprechpartner: Harald Schmidt
E-Mail: harald.schmidt@spf-consulting.ch

Harald Schmidt