Ernsthaft? Wirklich? Ist das tatsächlich so? So, und dann könnte man halt eine Diskussion führen und könnte halt sagen, naja, okay, also wenn eine Reparatur angenommen wird, dann kann ich das vielleicht länger. Aber wenn ich das jetzt irgendwie abhole, muss ich ja dem Menschen das Geld abknöpfen. Dafür brauche ich halt diese Information. Aha, okay. Das heißt, ich könnte jetzt das nochmal weiter detaillieren und könnte halt sagen, okay, die Information, wie viel diese Reparatur tatsächlich gekostet hat, wenn das Fahrrad abgeholt wird, das ist sogar noch wichtiger. Das muss halt, da darf es halt höchstens zwei Minuten ausfallen oder so. Können wir jetzt auch aufschreiben, nicht spätestens nach zwei Minuten kann man den Preis einer erfolgten Reparatur wieder ermitteln. So, und jetzt habe ich wieder was fachlich über dieses System gelernt, nicht? Also Annahme von Reparaturen nicht so kritisch wie irgendwie dieses Ermitteln von dem Preis. Und eine profane Möglichkeit, das zu lösen, ist, dass ich halt an der Stelle, wo die Reparatur fertig ist, irgendwie so ein Ding ausdrücke, das halt ans Fahrrad kleben. Und da steht irgendwie dran, diese Reparatur hat übrigens zehn Euro gekostet. Dann hätte ich das halt in gewisser Weise erledigt. Oder ich habe irgendwo eine Tabelle, die fest abgelegt ist, wo das eben drauf drin steht oder weiß da drauf was. Da kann man sich halt was ausdenken, nicht? Also das kriege ich halt irgendwie hin.
Qualitätsanforderungen
Kapitel 1.2 nennt drei Qualitätsziele in fester Rangfolge: 1. Benutzerfreundlichkeit, 2. Änderbarkeit Richtung SaaS, 3. Verfügbarkeit. Dieses Kapitel deckt alle acht Merkmale der ISO/IEC 25010 ab und markiert je Merkmal, ob es eines der drei Ziele konkretisiert oder abgeleitet ist. Die Szenarien stammen vom Miro-Board zu Folge 113 (Seite 5 und 6). Eberhard hat sie in Folge 111 als Stimulus und Response mit Metrik formuliert, "messbar mit Stoppuhr" (V8, 44:36 und 49:30). QS-Z-03 kam in Folge 112 hinzu (13:07 bis 14:35). Folge 113 setzt die Szenarien in Maßnahmen um, Szenario für Szenario als Sanity Check (27:34 bis 49:00), und vertagt die Usability-Szenarien auf Folge 114.
Transkript Folge 112, 13:07 bis 14:35
Transkript Folge 113, 27:34 bis 49:00
Jetzt würde ich ja mal… Also, was ich jetzt wichtig finde, weil ich das Gefühl habe, das kommt halt sonst auch sehr leicht unter die Räder, ist die Frage… Habe ich jetzt eigentlich grob eine Idee, wie ich diese Probleme, die Herausforderungen, die ich durch die Qualitätsszenarien hier manifestiert habe, wie ich die lösen möchte? Ich fände das nicht schlecht, wenn man beispielsweise in der Lösungsstrategie das direkt adressieren würde. Ich mache das jetzt hier mal, weil wir hier nicht in den Text schreiben. Das heißt, wir diskutieren halt. Hier ist also die Aussage, im Shop sind keine IT-Experten beschäftigt, das System kann dann auch betrieben werden. Meine Antwort, die ich bis jetzt dazu gegeben habe, ist, ich benutze die Cloud. Und dadurch habe ich eben keinen Server, auf dem Software installiert werden muss. Ich habe also nur eine Webadresse und muss da ein paar Ansätze sozusagen den Leuten beibringen. Aber das ist etwas, wo ich davon ausgehe, dass das machbar ist. Die Frage ist jetzt, reicht das eigentlich? Und ich würde sagen, nee, das reicht irgendwie nicht, weil es kann sein, dass irgendwelche Dinge ausfallen. Das ist ja trotzdem denkbar. Und es kann halt auch sonst nicht. Also ich muss irgendwie Updates vielleicht installieren von irgendwelchen Dingen, weil es Security-Probleme gibt oder so. Das heißt, ich brauche schon irgendwie einen eigenen Support. Und irgendwie ist das jetzt hier noch nicht dramatisch. Also zum Beispiel eine neue Version der Software installieren. Das ist etwas, was man wahrscheinlich irgendwie EntwicklerInnen noch mit aufzwingen kann. Das ist also noch nicht so ein großes Problem. Jan sagt gerade noch bezüglich dieser Kassendiskussion, dass man eine Kassenproxy im Laden positionieren könnte. Genau, das wäre jetzt eine mögliche Lösung für eben dieses Kassenproblem. Aber ich weiß jetzt auch, das Ergebnis ist, ich weiß, dass ich da ein Problem habe, das ich lösen muss. Und was halt auch tatsächlich wichtig ist. Also was halt fragwürdig macht, ob ich das Problem überhaupt lösen kann. Jetzt sagen wir nicht so, dass ich sage, ja, kein Thema. So, jetzt lass uns mal weiterschauen. Jetzt steht hier, ein Mitarbeiter im Shop will das System zwischen 9 und 18 Uhr benutzen und es steht zu 99% zur Verfügung. Ich möchte versuchen herauszufinden, ob ich diese Probleme tatsächlich jetzt löse. Da ist jetzt tatsächlich eine Verfügbarkeitsangabe. Wenn ich jetzt erstmal profahren drübergehe, würde ich sagen, das sollte eigentlich funktionieren. 99% bedeutet zwischen 9 und 18 Uhr, das heißt also an einem Tag 9 Stunden. Ein Hundertstel von 9 Stunden sind 0,09 Stunden, das sind also 3 Minuten oder so. Das ist also, glaube ich, prinzipiell erstmal machbar. Wenn ich das jetzt wirklich ernst nehme, und ich sollte das ernst nehmen, weil das ist eines der wenigen Qualitätsszenarien, die ich habe, also offensichtlich ist das eine Anforderung, die die Kunden tatsächlich ernst meinen, die wichtig ist, dann sollte ich da mal genauer reingucken. Da gibt es einen Bereich, den ich persönlich ziemlich spannend finde, und das sind die SLAs von EC2 oder EKS. Also von den Amazon Services in Bezug auf Kubernetes und EC2. Also Disclaimer, ich erzähle hier etwas über Amazon, weil das die Cloud ist, über die ich am meisten weiß. Ich nehme mal an, dass das in anderen Clouds ähnlich sein wird. So, und was in diesen SLAs drin steht, ist, die garantieren eine Verfügbarkeit von 99,99% im Monat. Das hört sich ja erstmal super an, hört sich an, als könnten wir das Ziel erreichen. So, jetzt ist halt die Frage, was bedeutet Verfügbarkeit? Und die Definition von Verfügbarkeit ist, dass mehr als eine Availability Zone in der Region ausfällt. Dann ist das nicht verfügbar. Das heißt also, ein Ausfall einer Availability Zone ist noch kein Ausfall des Systems. Das steht dort drin, das ist ein juristischer Text, das steht drin. Ein Ausfall bedeutet, dass mehr als eine Availability Zone in der Region ausgefallen ist. Was sind Regions und Availability Zones? Regions sind sowas wie EU West 1 gibt es zum Beispiel, das ist irgendwie Frankfurt, wenn ich mich recht entsinne. Und die Availability Zones sind Rechenzentren. Das heißt also, in Frankfurt gibt es jetzt mehr Rechenzentren, das sind die Availability Zones. Also so ungefähr, genau genommen ist nur die Aussage, die fallen unabhängig voneinander aus. Das heißt, die Aussage, die Amazon trifft, ist, du musst darauf vorbereitet sein, dass eine Availability Zone ausfällt. Erst wenn mehr als eine Availability Zone ausfällt, dann gilt das überhaupt als ein Ausfall unseres Systems. Das heißt also mit anderen Worten, was wir jetzt auf jeden Fall machen müssen, ist, wir müssen irgendwie unser System verteilen auf mehrere Availability Zones. EKS, der Kubernetes Cluster, macht das offensichtlich automatisch. Da müsste ich dann nur dafür sorgen, dass ich mehrere Container Instanzen laufen habe. Bei EC2 müsste ich so eine Elastic Load Balancer davor stecken und dafür sorgen, dass ich mindestens zwei EC2 Instanzen dementsprechend habe. Das ist also jetzt etwas sehr Konkretes, was sich ableitet aus unserer Verfügbarkeitsanforderung. Wenn ich also ernsthaft einigermaßen verfügbar sein will, muss ich in der Amazon Cloud diese Voraussetzung treffen und Verfügbarkeit ist ein relevantes Thema. Und ich würde, daraus würde ich also jetzt für mich ableiten, dass ich mindestens diese Voraussetzung schaffen muss. Und das ist jetzt eben etwas, was, denke ich, hilfreich ist. Also nochmal irgendwie darauf zu schauen, was da eigentlich genau steht. So, jetzt ist das nächste Thema. Genau, was steht da noch weiter? Also für eine EC2 Instanz garantieren Sie 90% Verfügbarkeit pro Stunde. Nicht-Verfügbarkeit bedeutet keine Konnektivität. Das heißt also auch hier eher der Hinweis, nehmen wir halt mindestens zwei EC2 Instanzen. So, jetzt ist hier die andere Frage. Was zum Teufel passiert denn eigentlich, wenn das System mit weniger als 99,99% zur Verfügung steht? Das ist ja das, was uns Amazon juristisch sozusagen zusichert. So, da steht halt drin, dass man halt anschließend eine Gutschrift bekommt. Das heißt also, die Zeit, die das System als ausgefallen gilt, wird nicht abgerechnet. Mit anderen Worten, also die Hoffnung wäre ja, dass dieses System mehr Wert generiert, als es im Betrieb kostet. Sonst macht das, was wir hier gerade tun, ökonomisch keinen Sinn. Das heißt also, ein Ausfall dieses Systems wird trotzdem einen ökonomischen Schaden erzeugen. So, da sind wir wieder bei diesen… Also, das ist eine ähnliche Diskussion, wie die Diskussion, die wir vorhin hatten, auf Basis der Rückfrage von dem guten Jan. Also, da war ja auch das Ergebnis, wir können halt jetzt mehr Geld investieren und mehr Geld in die Hand nehmen, um dafür zu sorgen, dass wir dort dazu in der Lage sind, mit höherer Wahrscheinlichkeit eine Ausfallsicherheit zu erzeugen. Und hier ist das jetzt was Ähnliches. Also, was das hier eigentlich bedeutet, ist, wenn Amazon morgen den… Also, nicht wenn EU West 1, die gesamte Region, aus irgendwelchen Gründen nicht mehr existiert, weil halt in Frankfurt eine große Katastrophe ist, ein großes Feuer und da ist halt irgendwie nichts mehr, dann würde das eben bedeuten, dass wir halt eine Dienstgutschrift haben und wir würden sinnvollerweise auf eine Region irgendwie ausweichen. Aber wir hätten halt dort trotzdem einen Ausfall. Das heißt, wir können das, was hier steht, eigentlich nicht wirklich garantieren. Aber ich würde sagen, es ist hinreichend unwahrscheinlich. Also, ich hätte jetzt kein Problem damit, zu sagen, wir gehen mit so einer Lösung in Produktion, weil meine Vermutung wäre, dass, wenn das System ausfällt, mehr ausfällt, als wir hier sagen oder als wir hier zusagen, dass das halt nicht ernsthaft ein wirkliches Problem ist und dass es halt hinreichend unwahrscheinlich ist. Jan fragt gerade über Datensynchronisation. Genau, dazu kommen wir gleich noch. Das ist auch noch ein Thema, was uns in Bezug auf die Technologieauswahl dann sozusagen eine Rolle spielt. So, also, was ich hier versuche zu sagen, ist, am Ende, wenn wir jetzt sagen, ist das dann etwas, wo auch eine gewisse Unsicherheit bleibt, weil eben das, was uns dort Amazon garantiert, im Notfall bedeutet, dass wir auf Geld sitzen bleiben. Und ich finde, da ist es nochmal wichtig, sich zu überlegen. Also, fein, ich kann mich ja jetzt gegen die Amazon Cloud entschuldigen. Das heißt, ich könnte jetzt sagen, ich benutze halt Google und Microsoft. Wäre eine Alternative. Da könnte ich jetzt nachrecherchieren, ob die halt dort irgendwie anders dastehen. Das kann ich mir nicht vorstellen, weil ein ökonomisches Modell, wo der Anbieter der Cloud beispielsweise für Schadensersatz gerade steht, kann eigentlich nicht funktionieren. Das wird also ähnlich sein. Kann ich mir nicht vorstellen. Also, das wird wahrscheinlich nicht helfen. Ich könnte ein eigenes Rechenzentrum hinstellen. Das ist wahrscheinlich teurer. Und zum anderen bin ich mir nicht sicher, ob das wirklich eine höhere Verfügbarkeit erzeugt. Ich könnte halt beim Fahrradhändler einen Server hinstellen. Glaube ich auch nicht, dass es halt eine bessere Verfügbarkeit bringt. Und ich glaube auch, dass es teurer ist. Also, vielleicht ist das hier tatsächlich die beste Lösung. Wenn sozusagen mein Leben davon abhängt, dass diese 99% Verfügbarkeit auf jeden Fall immer gewährleistet sind, dann würde ich da vielleicht etwas anders vorgehen. Aber ich kann jetzt eben auch mit einer kommerziellen Person darüber noch mal diskutieren. So, und das andere, was ich hier jetzt mache, also was sich daraus ergibt, ist, dass ich jetzt auf der einen Seite die Möglichkeit habe, ich glaube, ich darüber noch mal diskutieren. So, und das andere, was ich hier jetzt mache, also was sich daraus ergibt, ist irgendwie, ich brauche halt einen eigenen Support, der jetzt zum Beispiel daraus telefoniert werden kann. So, das wäre jetzt auch meine Antwort auf dieses Thema hier unten. Shop-System fällt aus. Und die 30 Minuten sollten wir hoffentlich erreichen. Das wäre auch meine Antwort hier, in Bezug auf die zwei Minuten, die ein System maximal ausfallen darf, um den Preis zu berechnen. Weil ich halt denken würde, dass das in der Cloud-Lösung auch kein großes Problem darstellt. Und das wäre auch hier die Antwort für die Verfügbarkeit im Web. Und das wäre halt auch hier die Antwort für das Web-System und für den Wiederanlauf. So, allerdings muss ich gestehen, dass wir jetzt spätestens an dieser Stelle, also hier ist es so, dass wir halt sagen, zwischen 9 und 18 Uhr für die Sachen im Shop. Das wäre also etwas, wo ich noch sagen könnte, okay, wir haben halt irgendwie eine Entwicklerin, die sich um das Thema im Wesentlichen kümmern kann. Die kümmern sich eben um das jetzt mit. Hier wird es dann schwierig, weil das ist von 7 bis 24 Uhr und von 24 bis 7 Uhr, das ist also ein 24-7-Support. Das heißt, ich brauche jetzt hier irgendwie spätestens an dieser Stelle, brauche ich irgendwie einen 24-7-Support. Ich brauche jemanden, der in Rufbereitschaft ist. Und das bedeutet jetzt wieder ein ganz anderes Thema. Das bedeutet nämlich, dass ich tatsächlich jemanden haben müsste, der eben nachts um 2 Uhr sich rausklingeln lässt. Und das wird wahrscheinlich keine Entwicklerin sein. So, hier steht jetzt noch das Thema, dass Daten nicht verloren gehen sollen. Und da würde ich jetzt als Lösung im Amazon-Universum, da gibt es der RDS, das ist der Datenbank-Service von denen. Da gibt es zum Beispiel einen Oracle oder MySQL. Also ich bin da jetzt mal konservativ unterwegs. Also sprich, ich will jetzt nicht irgendwie eine NoSQL-Datenbank oder sowas aufbauen, sondern ich benutze einfach eine Relational-Datenbank, so wie die meisten Projekte. Und da muss man nochmal in die RDS-SLAs reingucken. Die sagen nach dem, was ich recherchiert hatte, was ähnliches. Also die sagen, das garantieren dort auch eine entsprechende Verfügbarkeit, so dass ich erwarten würde, dass das halt einfach funktioniert. Ich glaube aber, dass sie den Datenverlust eben tatsächlich nicht getrennt nochmal garantieren. Der Jan sagt, es wäre die Abschätzung Server Cloud als ADR festzuhalten. ADR sind diese Architecture Decision Records, wo ich also tatsächlich eine Entscheidung festhalte mit Alternativen und sage, warum ich mich wie entschieden habe. Das ist auch etwas, was man in Arc 42 beispielsweise einführen kann als eigenes Kapitel. Ich finde das prinzipiell auch eine gute Idee. Ich würde es hier jetzt nicht unbedingt nehmen, weil das sind so zentrale… Also mein Problem, was ich mit ADRs habe, ist, dass die das Potenzial haben, einfach unstrukturiert irgendwelche Entscheidungen zu enthalten. Und hier ist es so, dass wir über die Kernentscheidung des Systems gehen. Das wäre für mich eher eine Solution Strategy. Die Idee an sich nochmal die Abwägung hinzuschreiben, das ist, glaube ich, eine sehr, sehr wichtige. Weil, also nochmal, es ist halt fein, wenn man sagt, Cloud ist nicht die Lösung für uns. Da muss ich eine andere Alternative finden. Ich mit meinem jetzigen Wissen und meinem jetzigen Ansatz würde aber sagen, dass eben die Cloud die beste Lösung ist, wenn ich das irgendwo festgehalten habe und gesagt habe, was mich zu dieser Meinung bewegt, dann kann man darüber diskutieren. Und das ist, glaube ich, hilfreich. Übrigens eine Sache, die ich auch nochmal recherchiert habe, ist GDPR oder DSGVO. Das ist auch eine Sache, die in der Immersion Cloud machbar ist. Das heißt, da ist halt auch kein Killer-Argument, sondern das kann man jetzt eben da irgendwie reinschreiben. So, jetzt haben wir da unten noch die Aussage, das System soll als SaaS-Lösung auf anderen Fahrradjobs angeboten werden. Die Änderung dauert höchstens zwei Monate und benötigt nicht mehr als 20 Personentage. Wenn ich da jetzt irgendwie sage, Cloud ist halt die Lösung, das ist halt extrem profan. Ich würde jetzt sagen, ich baue das System von vornherein mandantenfähig. Mandantenfähigkeit ist die Fähigkeit, innerhalb des Systems verschiedene Fahrradjobs anzulegen. Das brauche ich nicht für das erste System, weil da gibt es nur einen Fahrradshop. Ich könnte also durch die Tür kommen mit einem System, das halt nur exakt einen Fahrradshop betreiben kann. Das wäre denkbar. Ich bin mir aber sehr unsicher, ob ich jetzt innerhalb von zwei Monaten mit 20 Personentage ein System, das ohne Rücksicht auf Mandantenfähigkeit geschrieben wird, anbiete. Das ist wiederum etwas, über das man diskutieren kann, es führt wieder zu Kosten. Ich kann dem Kunden sagen, wir investieren jetzt mehr Geld für die initiale Entwicklung, wir bauen für die initiale Entwicklung überflüssige Flexibilität ein. Weil wir das hier vorhersehen, das ist ja das, was du gerne möchtest, diese Mandantenfähigkeit dort irgendwie drin zu haben. Und das kann man dann auf der Basis diskutieren und das ist ja auch irgendwie fein, wenn dann ein Kunde oder ein Entscheider sagt, dann killen wir halt diese Anforderung. Grundsätzlich ist hier noch ein abstrakteres Konzept, ich baue jetzt Flexibilität in die Architektur ein, die ich nicht brauche. Ist das in diesem Fall eine sinnvolle Entscheidung? Ja, weil meine Aussage ist, ich schaffe es sonst nicht, dieses Qualitätsszenario umzusetzen. Das ist aber etwas, wo ich die Änderungen vorhersehen kann und sie auch mit dem Kunden diskutiert habe. Ich würde jetzt beispielsweise nicht, wir hatten das ja vorhin mit dem Ferrari Reparaturshop, ich würde jetzt nicht das System so auslegen, dass es auch dazu in der Lage ist, die italienischen Sportwagen zu reparieren, weil das hat der Kunde nicht gesagt, dass der Kunde das will. Das macht also keinen Sinn. Das hier macht Sinn, das heißt also, ich würde nur an der Stelle Flexibilität einbauen und Dinge einbauen, wo ich die Zukunft entsprechend antizipieren kann. Und spätestens an der Stelle, wo hier ein Qualitätsszenario steht und ich das mit dem Kunden diskutiert habe, ist das glaube ich ausreichend sicher, dass ich das bei mir in der Architektur mal ernsthaft betrachten kann. Zweiter Mandant, gleich zweites Deployment. Ja, gute Frage. Das wäre wahrscheinlich auch nochmal ein Thema, das man diskutieren könnte. Also Skalierbarkeit. Können wir 2, 3, 10, 100 Fahrradshops mit dem System erschlagen? Wobei dort irgendwie meine Vermutung wäre, dass wir halt vielleicht mit 2, 3 oder 10 noch keine Probleme haben, sodass das irgendwie nicht das Thema ist, was mich jetzt intensiv umtreibt. Also es wäre jetzt nichts, worauf ich fokussieren würde. Das, worauf ich halt fokussieren würde und was glaube ich auch nochmal ein ganz wichtiges Thema ist, ist das Thema mit dem Drittsystem. Wir haben ja jetzt gerade eben gesagt, okay, mein System soll irgendwie dazu in der Lage sein, mich an das Rechnungswesen anzuschließen und ich soll mich halt auch an die Kasse anschließen können. Ich gehe mal davon aus, dass andere Fahrradshops andere Kassensysteme haben und andere Rechnungssysteme. Jetzt ist halt die Frage, wie kriege ich es hin, diese Systeme dort auch zu erschlagen? Weiß ich nicht. Sollte man abklären und das könnte eben dazu führen, also das wird wahrscheinlich zu einer Einschränkung führen, dass man dann sagt, okay, wir können eben nur bestimmte Kassensysteme integrieren oder nur bestimmte Rechnungssysteme oder vielleicht gar keine oder weiß der Teufel was. Das ist auf jeden Fall etwas, was ich hier nochmal jetzt untersuchen sollte, könnte, müsste, muss und was sich eben auch aus den Qualitätsszenarien ableitet. Ich würde jetzt eigentlich behaupten, dass wir damit die wesentlichen Dinge entschieden haben, die durch die Qualitätsszenarien auf unsere Agenda gesetzt worden sind.
10.1 Qualitätsbaum
| ISO/IEC-25010-Merkmal | Kennzeichnung | Szenarien und Belege |
|---|---|---|
Benutzbarkeit (Usability) |
konkretisiert Ziel 1 aus Kapitel 1.2 |
QS-U-01 bis QS-U-07 (Board Seite 5) |
Wartbarkeit (Maintainability), hier Änderbarkeit |
konkretisiert Ziel 2 aus Kapitel 1.2 |
QS-A-01 (Board Seite 6); fachlicher Schnitt in vier Module (Kapitel 4) |
Zuverlässigkeit (Reliability), hier Verfügbarkeit und Wiederherstellbarkeit |
konkretisiert Ziel 3 aus Kapitel 1.2 |
QS-Z-01 bis QS-Z-07 (Board Seite 6); ADR-008 |
Sicherheit (Security) |
Threat Model 8.1, Maßnahmen 8.2; kein Board-Szenario |
|
Performance (Performance Efficiency) |
abgeleitet |
Einzige Zahl: Preisermittlung in 2 Minuten nach Ausfall (QS-Z-03); Skalierbarkeit auf dem Board mit |
Kompatibilität (Compatibility) |
abgeleitet |
Sieben REST-Schnittstellen und JWT-Cookie (Kapitel 3); Same-Origin-Policy (ADR-002) |
Funktionale Eignung (Functional Suitability) |
abgeleitet |
Stories auf Board Seite 1; Reparatur als eigener Ablauf statt Webshop-Produkt (ADR-003) |
Übertragbarkeit (Portability) |
abgeleitet |
Cloud bei AWS entschieden (ADR-013); Monolith oder Microservices vertagt (ADR-014); Board Seite 10 und 11 |
|
Note
|
Offen: Für Sicherheit, Performance, Kompatibilität, funktionale Eignung und Übertragbarkeit nennt das Board keine Szenarien mit Zahl. Die Zeilen sind abgeleitet und ohne Maß. Eberhard kündigt in Folge 113 den ISO-25010-Baum als Prüfliste an, "ob ich alle wesentlichen Informationen abgefragt habe" (62:43 bis 63:00), führt die Prüfung aber nicht durch. Security fällt dort nur als Grund für Updates (29:05) und als DSGVO-Prüfung für AWS (43:39); Performance nur als Latenz-Hinweis von Jan (21:50); Kompatibilität sachlich bei fremden Kassen- und Rechnungssystemen anderer Shops (47:50 bis 48:44). |
Transkript Folge 113, 62:43 bis 63:00
Oder doch? Nein, das kriege ich im Moment nicht hin. Also das ist eben, das ist dieser ISO 25010 Qualitätsbaum, der irgendwie all diese ganzen Qualitätsangebote, Security und so weiter diskutiert. Und der hilft mir dabei herauszufinden, ob das, was ich da bauen möchte, ob ich da irgendwie alle wesentlichen Informationen abgefragt habe.
Transkript Folge 113, 47:50 bis 48:44
Also es wäre jetzt nichts, worauf ich fokussieren würde. Das, worauf ich halt fokussieren würde und was glaube ich auch nochmal ein ganz wichtiges Thema ist, ist das Thema mit dem Drittsystem. Wir haben ja jetzt gerade eben gesagt, okay, mein System soll irgendwie dazu in der Lage sein, mich an das Rechnungswesen anzuschließen und ich soll mich halt auch an die Kasse anschließen können. Ich gehe mal davon aus, dass andere Fahrradshops andere Kassensysteme haben und andere Rechnungssysteme. Jetzt ist halt die Frage, wie kriege ich es hin, diese Systeme dort auch zu erschlagen? Weiß ich nicht. Sollte man abklären und das könnte eben dazu führen, also das wird wahrscheinlich zu einer Einschränkung führen, dass man dann sagt, okay, wir können eben nur bestimmte Kassensysteme integrieren oder nur bestimmte Rechnungssysteme oder vielleicht gar keine oder weiß der Teufel was. Das ist auf jeden Fall etwas, was ich hier nochmal jetzt untersuchen sollte, könnte, müsste, muss und was sich eben auch aus den Qualitätsszenarien ableitet.
10.2 Qualitätsszenarien
Jedes Szenario steht in der sechsteiligen Form. Das Maß trägt die Zahl vom Board. "Antwort der Architektur" nennt die Maßnahmen-Karte vom Board.
Benutzbarkeit
|
Note
|
Offen: Folge 113 vertagt alle Usability-Szenarien ausdrücklich auf die Folge mit der UX-Expertin Aminata: "die werden dann keine Rolle spielen" (03:21), "da werden wir Aminata nächstes Mal nerven" (05:22), "Benutzerfreundlichkeit diskutieren wir beim nächsten Mal" (54:20). Keine der Zahlen in QS-U-01 bis QS-U-06 ist im Video begründet, keine Maßnahme genannt; die rote Karte "nicht erfüllbar" zu QS-U-01 wird nicht erwähnt. |
Quelle |
Neue Kund:in |
Stimulus |
Will das System nutzen und registriert sich |
Artefakt |
Reparatursystem, Registrierung |
Umgebung |
Normalbetrieb |
Reaktion |
Konto ist angelegt |
Maß |
Innerhalb von 1 Minute |
Antwort der Architektur |
Keine. Auf dem Board als nicht erfüllbar markiert, Registrierung liegt im Webshop (ADR-001). |
Bezug |
konkretisiert Ziel 1 |
Quelle |
Frisch registrierte Kund:in |
Stimulus |
Will eine Reparatur beauftragen |
Artefakt |
Reparaturbereich unter |
Umgebung |
Normalbetrieb, Kund:in ist im Webshop eingeloggt |
Reaktion |
Auftrag ist erfasst |
Maß |
90 % der Benutzer:innen schaffen das innerhalb von 2 Minuten |
Antwort der Architektur |
Login und vorbelegte Adresse aus dem Webshop (ADR-001, ADR-002); eigener Bezahlvorgang (ADR-003) |
Bezug |
konkretisiert Ziel 1 |
Quelle |
Kund:in |
Stimulus |
Bewertet das System |
Artefakt |
Reparatursystem, Kundensicht |
Umgebung |
Nach abgeschlossener Reparatur |
Reaktion |
Bewertung liegt vor |
Maß |
Im Schnitt 4 von 5 Punkten |
Antwort der Architektur |
Eigene Statusseite, Benachrichtigung per E-Mail (ADR-005, ADR-007) |
Bezug |
konkretisiert Ziel 1 |
Quelle |
Mitarbeiter:innen des Shops |
Stimulus |
Werden gefragt, ob sie das System empfehlen |
Artefakt |
Reparatursystem, Werkstattsicht |
Umgebung |
Laufender Betrieb |
Reaktion |
Empfehlung |
Maß |
85 % würden das System sehr wahrscheinlich anderen empfehlen |
Antwort der Architektur |
Keine Maßnahmen-Karte auf dem Board |
Bezug |
konkretisiert Ziel 1 |
Quelle |
Neue Shop-Mitarbeiter:in |
Stimulus |
Wird in das System eingearbeitet |
Artefakt |
Reparatursystem, Funktionen Abgabe und Bezahlung |
Umgebung |
Laufender Betrieb |
Reaktion |
Bedient das System eigenständig |
Maß |
Nach 1 Stunde |
Antwort der Architektur |
Keine Maßnahmen-Karte auf dem Board |
Bezug |
konkretisiert Ziel 1 |
Quelle |
Neue Fahrrad-Mechaniker:in |
Stimulus |
Wird in das System eingearbeitet |
Artefakt |
Reparatursystem, Werkstattfunktionen |
Umgebung |
Laufender Betrieb |
Reaktion |
Bedient das System eigenständig |
Maß |
Nach 1 Stunde |
Antwort der Architektur |
Keine Maßnahmen-Karte auf dem Board |
Bezug |
konkretisiert Ziel 1 |
Quelle |
Shop |
Stimulus |
Betreibt das System ohne IT-Experten |
Artefakt |
Gesamtsystem, Betrieb |
Umgebung |
Dauerbetrieb |
Reaktion |
Das System läuft dennoch |
Maß |
Kein IT-Experte beschäftigt (Board nennt keine Zahl) |
Antwort der Architektur |
Cloud (ADR-013); Eigener Support mit Rufbereitschaft (ADR-017). Folge 113: Ohne IT-Experten kann niemand einen Server im Laden betreiben (05:47 bis 05:57), und Cloud allein reicht nicht, weil Ausfälle und Security-Updates jemanden brauchen, "der angerufen werden kann" (28:42 bis 29:24) |
Bezug |
konkretisiert Ziel 1 (Mitarbeitende); stützt zugleich Ziel 3 |
Zuverlässigkeit
Quelle |
Mitarbeiter:in im Shop |
Stimulus |
Will das System zwischen 9 und 18 Uhr nutzen |
Artefakt |
Werkstatt-Teil des Systems |
Umgebung |
Ladenöffnungszeit |
Reaktion |
System steht zur Verfügung |
Maß |
99 % Verfügbarkeit |
Antwort der Architektur |
EKS / EC2 SLAs: mindestens zwei Instanzen über mehrere Availability Zones (ADR-015); Eigener Support (ADR-017). Folge 113: 99 % zwischen 9 und 18 Uhr sind "3 Minuten am Tag", profan machbar (30:36 bis 30:55) |
Bezug |
konkretisiert Ziel 3 (ADR-008) |
Quelle |
Ausfall |
Stimulus |
Das System im Shop fällt aus |
Artefakt |
Werkstatt-Teil des Systems |
Umgebung |
Ladenöffnungszeit |
Reaktion |
System steht wieder zur Verfügung |
Maß |
Spätestens nach 30 Minuten |
Antwort der Architektur |
EKS / EC2 SLAs: mindestens zwei Instanzen über mehrere Availability Zones (ADR-015); Eigener Support (ADR-017); Netzausfall im Laden als akzeptiertes Risiko mit mobilem Router als Reserve (ADR-018). Folge 113: Ein Wiederanlauf in 30 Minuten vor Ort ist ohne IT-Experten nicht machbar, deshalb Cloud (06:30 bis 06:44) |
Bezug |
konkretisiert Ziel 3 (ADR-008: "30 Minuten Zettel und Bleistift") |
Quelle |
Ausfall |
Stimulus |
Das System im Shop fällt aus |
Artefakt |
Modul Reparatur durchführen, Preis aus dem Protokoll |
Umgebung |
Ladenöffnungszeit, Kund:in wartet an der Kasse |
Reaktion |
Preis einer erfolgten Reparatur ist wieder ermittelbar |
Maß |
Spätestens nach 2 Minuten |
Antwort der Architektur |
EKS / EC2 SLAs (ADR-015); Eigener Support (ADR-017); Netzausfall im Laden als akzeptiertes Risiko mit mobilem Router, Cache-Server im Laden verworfen (ADR-018). Folge 113 nennt dieses Szenario "das aggressivste Wiederanlauf-Kriterium, was wir haben" (07:55 bis 08:20). Eberhard erwägt in Folge 112 einen Low-Tech-Fallback: einen Zettel am Fahrrad mit dem Preis ("diese Reparatur hat übrigens 10 Euro gekostet") oder eine fest abgelegte Tabelle (14:13 bis 14:35). Entschieden ist nichts: "da kann man sich was ausdenken". |
Bezug |
konkretisiert Ziel 3. Quelle: Folge 112, 13:07 bis 14:35. Das Szenario entsteht dort aus der Frage, was bei Abholung passiert: "muss ich dem Menschen das Geld abknöpfen, dafür brauche ich diese Information"; die Annahme verträgt 30 Minuten, die Preisermittlung nicht. Board Seite 6 hält es fest. |
Quelle |
Kund:in |
Stimulus |
Will das Web-System zwischen 7 und 24 Uhr nutzen |
Artefakt |
Web-Teil des Systems unter |
Umgebung |
Tag und Abend |
Reaktion |
System steht zur Verfügung |
Maß |
99,9 % Verfügbarkeit |
Antwort der Architektur |
EKS / EC2 SLAs: mindestens zwei Instanzen über mehrere Availability Zones (ADR-015); Eigener Support (ADR-017) |
Bezug |
konkretisiert Ziel 3 (ADR-008: "jede Minute Umsatzausfall") |
Quelle |
Kund:in |
Stimulus |
Will das Web-System zwischen 24 und 7 Uhr nutzen |
Artefakt |
Web-Teil des Systems unter |
Umgebung |
Nacht |
Reaktion |
System steht zur Verfügung |
Maß |
99 % Verfügbarkeit |
Antwort der Architektur |
EKS / EC2 SLAs: mindestens zwei Instanzen über mehrere Availability Zones (ADR-015); Eigener Support 24/7 (ADR-017). Folge 113 leitet die Rufbereitschaft rund um die Uhr aus 7 bis 24 Uhr und 24 bis 7 Uhr zusammen ab, "wahrscheinlich keine Entwicklerin" (40:26 bis 40:59) |
Bezug |
konkretisiert Ziel 3 |
Quelle |
Ausfall |
Stimulus |
Das System im Shop fällt aus |
Artefakt |
System (Board: "im Shop") |
Umgebung |
Nicht benannt |
Reaktion |
System steht wieder zur Verfügung |
Maß |
Spätestens nach 5 Minuten |
Antwort der Architektur |
|
Bezug |
konkretisiert Ziel 3; Board-Artefakt, im Video nicht belegt (siehe Note) |
|
Note
|
Offen: QS-Z-02 und QS-Z-06 nennen beide "das System im Shop" mit 30 und 5 Minuten. ADR-008 ordnet den schnelleren Wiederanlauf dem Web-System nachts zu (Folge 111, 56:07). Die 5-Minuten-Karte fällt in keiner der drei Folgen. In Folge 113 nennt Eberhard bei 08:20 die 2-Minuten-Preisermittlung (QS-Z-03) "das aggressivste Wiederanlauf-Kriterium, was wir haben"; eine 5-Minuten-Karte für den Shop widerspräche dem. QS-Z-06 gilt deshalb als Board-Artefakt, im Video nicht belegt, vermutlich aus der Vorbereitung des Boards (26:05, 53:24). Es bleibt im Bestand, weil es auf dem Board steht; welche Zuordnung gilt, muss das Team klären. |
Quelle |
Ausfall |
Stimulus |
Das System fällt aus |
Artefakt |
Persistenz der Reparaturdaten |
Umgebung |
Beliebig |
Reaktion |
Daten, die älter als 5 Minuten sind, stehen wieder zur Verfügung |
Maß |
Mit 99,9 % Sicherheit; Datenverlust höchstens 5 Minuten |
Antwort der Architektur |
RDS, relational mit Oracle oder MySQL, kein NoSQL (ADR-016). Das Fragezeichen auf dem Board bleibt: RDS garantiert Verfügbarkeit, "den Datenverlust aber nicht getrennt" (Folge 113, 42:01) |
Bezug |
konkretisiert Ziel 3 (ADR-008, R-024). Die Zahlen 5 Minuten und 99,9 % fallen im Video nicht; Eberhard liest das Szenario in Folge 113 nur als "Daten nicht verloren gehen" (40:59) |
Änderbarkeit
Quelle |
Geschäftsführung |
Stimulus |
Das System soll als SaaS-Lösung auch anderen Fahrrad-Shops angeboten werden |
Artefakt |
Gesamtsystem, Betrieb und Integrationen |
Umgebung |
Entwicklungszeit, System ist im Betrieb |
Reaktion |
Die Änderung ist umgesetzt |
Maß |
Höchstens 2 Monate und nicht mehr als 20 PT |
Antwort der Architektur |
Cloud (ADR-013), die allein "extrem profan" ist und nicht reicht (Folge 113, 44:18); Mandantenfähigkeit von Anfang an, entschieden (44:10 bis 47:02, 56:33 bis 57:43), mit offen benanntem Trade-off zur Instanz je Shop und zu Serverless; Skalierbarkeit auf zwei, drei oder zehn Shops nicht fokussiert (47:02 bis 47:47); Drittsysteme je Shop offen, erwartete Einschränkung auf bestimmte Kassen- und Rechnungssysteme (47:50 bis 48:44) (R-003, R-006, R-013, R-018, R-026) |
Bezug |
konkretisiert Ziel 2 |
|
Note
|
Offen: Das Board nennt keine Szenarien für Security, Performance oder Kompatibilität. Die Karte "Skalierbarkeit?" bleibt ohne Maß; Folge 113 sagt dazu nur, "zwei, drei oder zehn" Shops seien kein Problem (47:02 bis 47:47). |
Transkript Folge 113, 47:02 bis 47:47
Und spätestens an der Stelle, wo hier ein Qualitätsszenario steht und ich das mit dem Kunden diskutiert habe, ist das glaube ich ausreichend sicher, dass ich das bei mir in der Architektur mal ernsthaft betrachten kann. Zweiter Mandant, gleich zweites Deployment. Ja, gute Frage. Das wäre wahrscheinlich auch nochmal ein Thema, das man diskutieren könnte. Also Skalierbarkeit. Können wir 2, 3, 10, 100 Fahrradshops mit dem System erschlagen? Wobei dort irgendwie meine Vermutung wäre, dass wir halt vielleicht mit 2, 3 oder 10 noch keine Probleme haben, sodass das irgendwie nicht das Thema ist, was mich jetzt intensiv umtreibt.
10.3 Welche Entscheidungen auf welche Szenarien antworten
|
Note
|
Dieser Abschnitt ist eine Auswertung, keine Quelle. Er ordnet zu, was in Abschnitt 10.2 und in den ADRs aus Kapitel 9 schon steht. Er ergänzt nichts vom Board und nichts aus den Folgen 111 bis 113. |
| Szenario | Maß | Antwortende ADRs | Maßnahme laut Board |
|---|---|---|---|
QS-U-01 Registrierung |
1 Minute |
ADR-001 (erklärt das Szenario für nicht erfüllbar) |
Keine; auf dem Board als nicht erfüllbar markiert |
QS-U-02 Reparatur beauftragen |
90 % in 2 Minuten |
Login und Adresse aus dem Webshop; eigener Bezahlvorgang |
|
QS-U-03 Bewertung durch Kund:innen |
4 von 5 Punkten |
Eigene Statusseite; Benachrichtigung per E-Mail |
|
QS-U-04 Empfehlung durch Mitarbeitende |
85 % |
keine Entscheidung dokumentiert |
Keine Maßnahmen-Karte |
QS-U-05 Einarbeitung Shop-Mitarbeiter:in |
1 Stunde |
keine Entscheidung dokumentiert |
Keine Maßnahmen-Karte |
QS-U-06 Einarbeitung Fahrrad-Mechaniker:in |
1 Stunde |
keine Entscheidung dokumentiert |
Keine Maßnahmen-Karte |
QS-U-07 Betrieb ohne IT-Experten |
Keine Zahl |
Cloud; Eigener Support |
|
QS-Z-01 Verfügbarkeit Werkstatt |
99 %, 9 bis 18 Uhr |
EKS / EC2 SLAs; Eigener Support |
|
QS-Z-02 Wiederanlauf Werkstatt |
30 Minuten |
EKS / EC2 SLAs; Eigener Support |
|
QS-Z-03 Preisermittlung nach Ausfall |
2 Minuten |
EKS / EC2 SLAs; Eigener Support |
|
QS-Z-04 Verfügbarkeit Web tagsüber |
99,9 %, 7 bis 24 Uhr |
EKS / EC2 SLAs; Eigener Support |
|
QS-Z-05 Verfügbarkeit Web nachts |
99 %, 24 bis 7 Uhr |
EKS / EC2 SLAs; Eigener Support 24/7 |
|
QS-Z-06 Schneller Wiederanlauf |
5 Minuten (Board-Artefakt, im Video nicht belegt) |
EKS / EC2 SLAs; Eigener Support |
|
QS-Z-07 Datenverlust |
99,9 %, höchstens 5 Minuten (Zahlen im Video nicht genannt) |
RDS SLAs ( |
|
QS-A-01 SaaS für andere Fahrrad-Shops |
2 Monate, 20 PT |
ADR-013; Mandantenfähigkeit von Anfang an (Folge 113, 44:10 bis 47:02); ADR-001, ADR-002, ADR-004, ADR-005, ADR-006 (betroffen über R-003, R-006, R-013, R-018) |
Cloud; Mandantenfähigkeit; Skalierbarkeit ( |
| ADR | Szenarien | Bemerkung |
|---|---|---|
ADR-001 Login über den Webshop |
Treibt QS-U-02; macht QS-U-01 im Reparatursystem unerfüllbar; R-002 und R-003 belasten QS-Z-04 und QS-A-01 |
|
ADR-002 Pfad unter der Webshop-Domain |
Folge aus ADR-001; R-006 belastet QS-A-01 |
|
ADR-003 Reparatur als eigener Bereich |
Der eigene Bezahlvorgang muss die zwei Minuten halten (R-008) |
|
ADR-004 Payment Service und Kasse |
Die Kasse im Laden trägt QS-Z-03; keine eigene Abwicklung wegen QS-U-07; R-013 belastet QS-A-01 |
|
ADR-005 Eigene Statusseite |
Die Statusseite ist die Kundensicht nach der Reparatur; ein Datenort hilft QS-A-01 |
|
ADR-006 Ersatzteile selbst führen |
Ein System weniger für den Laden; R-018 belastet QS-A-01 |
|
ADR-007 Benachrichtigung per E-Mail |
keine Szenario-Basis, folgt aus Randbedingung |
QS-U-03 nennt die E-Mail als Antwort; die Kanalwahl selbst folgt aus "Dienste kaufen statt betreiben" |
ADR-008 Verfügbarkeit differenziert |
Setzt die Maße aller QS-Z-Szenarien; Betriebsmodell und Persistenz sind seit Folge 113 entschieden (ADR-013, ADR-016); R-022 bleibt, weil die Kasse aus der Cloud nicht entschieden ist |
|
ADR-013 Betrieb in der Cloud bei AWS |
Antwort auf "keine IT-Experten" und Voraussetzung für SaaS; Restrisiko Regionsausfall akzeptiert; die Kasse aus der Cloud bleibt Risiko (R-010) |
|
ADR-014 Monolith oder Microservices, vertagt |
keine Szenario-Basis |
Für die Qualitätsziele "relativ irrelevant" (Folge 113, 20:29); beide Varianten "genauso verfügbar" |
ADR-015 Mindestens zwei Instanzen über mehrere Availability Zones |
Leitet sich aus dem AWS-SLA ab: Ausfall zählt erst ab mehr als einer Availability Zone |
|
ADR-016 Relationale Datenbank als RDS |
RDS garantiert Verfügbarkeit, den Datenverlust nicht getrennt; Fragezeichen bleibt |
|
ADR-017 Eigener Support mit Rufbereitschaft |
Cloud allein reicht nicht; tagsüber Entwicklerin, nachts Rufbereitschaft |
|
ADR-018 Netzausfall im Laden als akzeptiertes Risiko |
Mobiler Router als Reserve; Cache-Server im Laden verworfen |
Drei Szenarien stehen ohne Entscheidung und ohne Maßnahmen-Karte da: QS-U-04, QS-U-05 und QS-U-06; Folge 113 vertagt sie auf Folge 114. Seit Folge 113 haben sieben Szenarien eine entschiedene Maßnahme: QS-U-07 (ADR-013, ADR-017), QS-Z-01, QS-Z-02, QS-Z-04 und QS-Z-05 (ADR-015, ADR-017), QS-Z-03 (ADR-018) und QS-Z-07 (ADR-016, mit Fragezeichen beim Datenverlust). QS-A-01 hat die Mandantenfähigkeit entschieden; die Drittsysteme je Shop bleiben offen. QS-Z-06 bleibt ohne Videobeleg. Offen für kommende ADRs: die Anbindung von Kasse und Rechnungswesen aus der Cloud (R-010, R-022) und die Drittsysteme bei SaaS.
Eine Entscheidung steht ohne Szenario da: ADR-007. Die Wahl des Kanals folgt aus der Randbedingung, dass der Laden Dienste kauft statt betreibt, nicht aus einem Maß. Alle anderen ADRs treiben mindestens ein Szenario oder werden von einem belastet.
Folge 111 auf software-architektur.tv und Video auf YouTube. Die Zeitmarken im Text springen im Player an die Stelle. Audio: software-architektur.tv (Eberhard Wolff, Ralf D. Müller), Lizenz CC BY 4.0; für genaues Springen mit konstanter Bitrate neu kodiert.
Folge 112 auf software-architektur.tv und Video auf YouTube. Die Zeitmarken im Text springen im Player an die Stelle. Audio: software-architektur.tv (Eberhard Wolff, Ralf D. Müller), Lizenz CC BY 4.0; für genaues Springen mit konstanter Bitrate neu kodiert.
Folge 113 auf software-architektur.tv und Video auf YouTube. Die Zeitmarken im Text springen im Player an die Stelle. Audio: software-architektur.tv (Eberhard Wolff, Ralf D. Müller), Lizenz CC BY 4.0; für genaues Springen mit konstanter Bitrate neu kodiert.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.