Käfer in der Kiste //2529

Erst neulich hatte ich über ein Software-Problem gebloggt, und wie es mir letztendlich doch noch gelungen ist, es zu lösen.
An der auszuführenden Aufgabe waren mindestens fünf Software-Hersteller beteiligt:
Außer dem Hersteller des Betriebssystems und mir selbst, waren das noch die Hersteller des Compilers, des Internet-Frameworks und der für SSL genutzten Libraries.
[Das bezieht sich wohlgemerkt konkret nur auf die einzige Funktionalität des Herunterladens per SSL. Bei anderen Projekten können je nach Aufgaben und Umfang noch weit mehr Third-Party-Hersteller beteiligt sein. Noch komplizierter wird es, wenn bestimmte Systemkonfigurationen, bestimmte Hardwarekomponenten oder Netzzugriff Voraussetzung sind.]
Zwischen all diesen beteiligten Komponenten existieren Schnittstellen, die perfekt aufeinander abgestimmt sein müssen. Hakt es irgendwo, selbst wenn es nur eine Kleinigkeit, vielleicht nur eine winzige Inkonsistenz oder Inkompatibilität in einer einzelnen Version ist, funktioniert die ganze Anwendung nicht.

Als Softwareanwender sollte man das bitte im Hinterkopf behalten, und dem Hersteller der Anwendung nicht sofort alle Schuld zuschieben, wenn sie mal nicht so funktioniert, wie sie soll.
Nach einem aussagekräftigen Fehlerreport wird sich der Hersteller dennoch des Problems annehmen, aber nicht unbedingt eine Lösung finden.

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

10 Antworten zu Käfer in der Kiste //2529

  1. Sempersolus schreibt:

    Eine einfache juristische Frage der Vertragsgestaltung und der darin vereinbarten Bedingungen.

    Hat man gemeinsam (z.B. über ein detailliertes Pflichtenheft und festgelegte Laufzeitbedingungen) eine bestimmte Ergebnisqualität vertraglich festgelegt, dann sollte der Hersteller die auch liefern, schließlich kannte er dann hoffentlich die Gefahr der Inkonsistenzen von Fremdanteilen, die das von ihm verkaufte Produkt möglicherweise beeinflussen – sonst: Geld zurück (wobei diesen simplen Lösungsweg viele Hersteller nur zu gern nähmen).

    Ist man ein stiller Bewunderer von Prozessqualität und der verschlungenen Wege, wie ein Hersteller dann doch noch zu einer Lösung kommt, die einigermaßen brauchbar ist, dann darf man sich das gerne etwas kosten lassen und diese Nachbesserung finanzieren – mein Fall ist das nicht (und trotzdem lasse ich mir mangels Alternativen noch viel zu oft Bananensoftware – reift beim Kunden – aufzwingen).

    Gefällt 1 Person

    • Juristische Implikationen sind wieder ein anderes Thema. Es macht auch einen Unterschied, ob es um kundenspezifische Auftragssoftware (mit i.d.R. streng definierten Systemvoraussetzungen) geht, oder um Standardsoftware, die von vielen Anwendern auf verschiedenen Systemen genutzt wird, was dann schnell in Chaos ausarten kann.
      Und mit embedded Firmware verhält es sich wieder anders.

      Gefällt mir

  2. Plietsche Jung schreibt:

    Es gibt im Leben mit dem PC Probleme, die man ohne PC nicht hat.
    In diesem Sinne: Happy debugging 🙂

    Gefällt 1 Person

    • Nur ein toter Käfer ist ein guter Käfer.

      Gefällt 1 Person

      • Plietsche Jung schreibt:

        Hugh… ich habe gesprochen 🧍

        Gefällt 1 Person

        • Sempersolus schreibt:

          Na na na! Darf man das denn noch öffentlich so sagen?

          Schonmal ein Glück, dass das unbedacht daneben gemalte Männlein/Weiblein als solches nur schemenhaft erkennbar ist (obwohl sie/er/es natürlich eine blaue Hose zu tragen scheint, hoffentlich keine dieser modernen, westlich-imperialistischen Arbeitshosen aus köpergebundenem, indigogefärbten Stoff mit hohem DDT-Anteil, der in Kinderarbeit im fernen Indien für Hungerlöhne von Einarmigen mit dem Mund gewebt wird, „Jeans“, oder wie das heißt, quasi DAS Symbol der kolonialistischen Einwanderer Nordamerikas).

          Wird durch das Wort „Hugh“ nicht die zum Teil hochkomplexe und leider schon viel zu oft durch Überformung untergegangene Sprache der indianischen Ureinwohner Nordamerikas klischeehaft simplifiziert und solchermaßen eine ganze Ethnie sprachlich und implizit auch faktisch herabwürdigt und unterdrückt? Müsste man nicht eigentlich die Gesamtausgabe gerade der entsprechenden Jugendliteratur, die doch so einen immensen Einfluss eben auf unsere Kinder hat, indizieren und verbannen oder mindestens der staatlichen Korrekturkammer zur Verbesserung vorlegen, gäbe es da nicht einen kleinen Hoffnungsschimmer, eben den, dass Karl May aller Vermutung nach ein ausgemachter Hochstapler, jedenfalls aber auch Gefängnisinsasse war und damit ebenfalls selber zu einer sozialen Randgruppe, der der Gefangenen und Verurteilten, gehörte und dergestalt als Vertreter eben solch einer Minderheit dann eben doch wieder nicht indiziert werden kann, damit diese nicht unbotmäßig benachteiligt wird?

          Vulgo: Bedarf es nicht einer feinsinnigeren und sensiblen Abschätzung, ob ein Schriftsteller, der den Begriff „Rothaut“ benutzt zwar unbedingt damit gegen die Regeln der Rassendiskriminierung verstößt, er aber mehr als exkulpiert wird, wenn er selber ein „Knacki“ ist?

          Wir sollten da sehr viel achtsamer sein, damit das historische Erbe vergangener Zeiten, das sich ja gerade auch sprachlich ausdrückt, nicht vollends verloren geht. Sicher: es bedarf IMMER einer Translation des damaligen Wortes in den modernen Kontext unserer Zeit, so muss mindestens die weiland ignorierte Geschlechtergerechtigkeit für den historisch unerfahrenen Leser transkribiert werden, aber ist so ein Wort „hugh“ denn wirklich noch verständlich in unserer Zeit? Kann man sich nicht mehr Mühe geben, wenigstens, indem man den Wort mindestens einen erklärenden Wikipediaverweis zur Seite stellt?

          Also: einfach ´mal mehr Mühe geben, beim nächsten Mal wird’s dann besser.

          Hugh(*in), auch „ugh*in“ oder „Howgh*ine“, vgl. auch https://de.wikipedia.org/wiki/Howgh et al.

          Gefällt mir

  3. Leser schreibt:

    Interessant, wie man das als „rein kommerzieller“ Anwender so sieht. Ich würde die Hersteller nicht als Hersteller bezeichnen, sondern als „Projekte“, da ich ja idR Open Source Software nutze. Da gibt es beispielsweise ein OpenSSL Projekt, das stellt die Libraries zur Verfügung, die dann im System installiert sind und von anderen Anwendungen (die wieder anderen Projekten entstammen, teilweise auch unter der Schirmherrschaft einer Stiftung oder ähnliches stehen) genutzt werden. Natürlich sind interoperable Schnittstellen da genauso wichtig, aber idR ist es glaube ich so, dass die lib ihre eigene Schnittstelle zur Verfügung stellt, und die Anwendung direkt darauf zugreift. Aufgabe des Betriebssystems (bzw. genauer gesagt der Paketverwaltung, die auch nur eine weitere Anwendung ist und sozusagen ein eigenes Projekt, die aber in der Distribution mit paketiert wird) ist es, die Abhängigkeiten der Anwendung, also dass alle benötigten libs in der benötigten Mindestversion zur Verfügung stehen, zu erfüllen, d.h. wenn ich Programm X installiere, sagt mir die Paketverwaltung: „Da brauche ich aber auch noch die libs y und z dafür, sonst funktioniert das nicht“, und ich sage „jagut, mach halt“ und dann gehts. An „Hersteller“ verschwende ich da keinen Gedanken.
    Klar gibt es auch (selten) mal kommerzielle Software, die dann entweder über dieselbe Schnittstelle der Paketverwaltung installiert wird (oft ihr eigenes Repository mit einbindet, wo die Updates herkommen, um zentral mit allen anderen System- und Programmupdates installiert zu werden), dann nutzt die die bestehenden libs im System (was in Anbetracht der möglichen Distributionen und unterschiedlichen Versionen noch mal einen Layer an Komplexität einbringt, aber trotzdem funktioniert es idR problemlos). Oder es gibt neuartige Paketformate, wo die Anwendung ihre benötigten libs in der benötigten Version mitbringt (was viele kommerzielle Hersteller besser finden). Nur, wenn dann z.B. eine Anwendung eine OpenSSL Lib in Version A bringt, und die Version A hat wie so oft eine Sicherheitslücke, und deshalb wird dann OpenSSL Version A.1 rausgebracht, dann muss der Hersteller der Anwendung ein Update für seine Andwendung paketieren mit dieser OpenSSL Version A.1, obwohl es eigentlich kein Update für seine Anwendung gibt, sonst ist diese möglicherweise angreifbar. Das ist zusätzlicher Aufwand, deshalb sehe ich diese neuartigen Paketformate durchaus kritisch, da greift einfach nicht alles so schön ineinander, wie beim zentralen shared library Prinzip.

    Gefällt mir

  4. ednong schreibt:

    Ich verstehe deine Sicht der Dinge und kann sie nachvollziehen.

    Bin ich allerdings der Anwender oder gar Käufer, dann will (!) ich, dass das Ding das tut, wofür es angeschafft bzw. programmiert wurde. Und zwar einwandfrei, fehler- und mängelfrei. Schließlich gebe ich ja mein Erspartes für die Software aus 😉

    Also mal etwas überspitzt geschildert. Auch wenn ich Verständnis und entsprechende Hintergrundinfos habe – ich zahle für das Produkt, dass fehlerfrei sein sollte. Oder zumindest fehlerfrei arbeiten sollte. Und klar ist es schwierig – grad unter Windows – bei zig Möglichkeiten und Varianten der PCs alles immer laufen lassen zu können. Das ist halt der Nachteil eines Nicht-geschlossenen Systems versus bspw. Apple. Oder eben den Distributionen wie Linux sie nutzt.

    Erfülle ich jedoch mit meinem PC die vorgegebenen Systemvoraussetzungen des Produkt, erwarte ich ein einwandfreies Funktionieren. Als Anwender/Kunde.

    Gefällt 1 Person

    • Dem stimme ich ja grundsätzlich zu.
      Bei Auftragssoftware setze ich auch alles daran, sie zum spezifikationsgemäßen Funktionieren zu bringen.
      Bei Standardsoftware sieht es dagegen etwas anders aus. Zum einen ist sie preisgünstig, so dass der Kunde nicht allzuviel Support erwarten darf. Sie ist „as is“ – d.h. der Kunde hat vor dem Kauf Gelegenheit, sie kostenlos auszuprobieren und zu testen, ob sie auf seinem System läuft und seine Anforderungen erfüllt. Danach ist die individuelle Unterstützung bei Problemen aber begrenzt.

      Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s