Warum ist Software so schlecht?



  • otze schrieb:

    Ich habe heute auf meinem neuen notebook ine ganze batterie treiber über linux runter laden müssen, weil windows mal rein gar nichts erkannt hat - inklusive ethernet. Im Vergleich dazu musste ich bei Linux ausser dem nvidia treiber exakt gar nichts installieren.

    Kann es sein, dass deine Windowsversion vor deiner Hardware released wurde und dein Linux danach?



  • Mal wieder wegkommend von der Diskussion Win/Linux und Treibern - so weit muß man in die Tiefen der Systeme gar nicht absteigen.

    Es gibt viele Beispiele im Alltag, die einfach nur nerven, mein Klassiker ist bei einer Bank ein Online-Applet für die Kontoauszüge.

    Wenn ich da am 27.10.2012 drauf gehe, bietet mir die Datumszeile "Alle Buchungen ab" dann an:

    27.09.2012

    Also immer 1 Monat zurück.

    Jetzt will ich ab z.B. ab dem 01.10. eingeben, ich setze den Cursor auf das Datumsfeld an den Anfang, und lösche mit "Entf":

    7 .09.2012

    Und PENG geht eine Messagebox auf! Ungültiges Datumsformat (da an der ersten Position eines Tagesfelds nur 0, 1, 2, 3 stehen darf, offensichtlich). Das System prüft wohl nach jeder Eingabe sofort gegen einen sehr starren Prüfausdruck der Form [0,1,2,3][0-9], so daß ein an sich als "07" interpretierbares Datum zu einem ungültigen Ausdruck wird.

    Und natürlich die Messagebox. Bestätigen, danach ist der Fokus aus der Eingabe weg. Keine Taborder... man muß den Fokus neu mit der Maus setzen.

    Alternativ haben die Jungs natürlich auch einen Date-Time-Picker, den ich verwenden könnte, aber ich bin eigentlich mit der Tastatur viel schneller als mit der Maus, auf jeden Fall bei sowas.

    Da kann man dann auch erkennen, wie getestet wurde... nämlich ein Prüffall war "ungültiges Datum erkennen", ein anderer Prüffall war "Datum aus Picker richtig übernehmen". Aber es gab wohl kein Testszenario für "Benutzer gibt Datum ein".

    Bei solchen Fällen würde ich den Fehler daher weniger im Management suchen, denn anscheinend wurde ja Zeit und Aufwand in sowas gesteckt, weil die Prüfung an sich immer ein gültiges Datum garantiert - auf Kosten der Nerven des Benutzers. Aber die Prüfungen wurden aus Sicht eines Programmierers erstellt nach der Vorgabe "egal was kommt, da darf nie ein illegales Datum stehen". Aber es wurde nicht aus Sicht des Nutzers gedacht.

    Und das ist bei vielen nervigen Problemen im Alltag meines Erachtens das größere Problem... daß Programmierer eben wie Programmierer denken, die ihr Programm vor dem Benutzer schützen wollen, also quasi restriktive Auslegung der Benutzerinteraktion. Der Benutzer dagegen will eine Aufgabe erledigen, das steht selten im Vordergrund.

    Ein anderes Beispiel?

    Ich habe einen HP Allinone mit Scanner und Co. Prima Geräte, gute Scanqualität. Wenn ich in den Einzelblatteinzug einen Stapel Papier einlege und alles für den Scan vorbereite, erscheint bei jedem neuen Blatt kurze eine Fortschrittsbox à la "Scanne Seite x". Gottseidank geht sie wenigstens von alleine weg und man muß nicht klicken, aber sie raubt dem anderen aktiven Programm unweigerlich den Fokus. Noch fieser ist, daß es in diesem Dialogfenster einen Button "Abbrechen" gibt, der Default ist, d.h. ein Druck auf die Return-Taste wird als Abbruch erkannt. Sobald ich also neben dem Scanvorgang noch irgendwas schreibe und Pech habe vom Timing her, bricht mein Scanvorgang ab, weil das Zeilenende in der Email als Auslösen des Abbruchs im Scannerdialog erkannt wird. Zur Sicherheit heißt das also: während des Scanvorgangs nicht weiterarbeiten. Da hat man dann eine Multicore-CPU, die problemlos mit sowas im Hintergrund klarkommt, aber leider macht die Software das kaputt.

    Auch sowas sehe ich weniger als Problem eines Managements, sondern als Versagen der Testcases - offensichtlich wird da relativ exklusiv getestet, d.h. wenn man den Treiber testet, läuft sonst nix weiter. Es ist kein Benutzerumfeld, daß da testet, sondern ein Tester an einer weitgehend sterilisierten Box, kein Wunder, daß dem das nicht auffällt.

    Das wäre nicht einmal schlimm, da man solche Seiteneffekte im Vorfeld kaum überblicken kann (naja, eine Best Practise wäre natürlich schon, nie einen Fokus zu stehlen), wenn ein Benutzer da wenigstens die Chance hätte den Fehler zu melden. Habe ich versucht... Szenario erklärt, Email an den Support gemacht. Kam zunächst mal eine Standardantwort wie "blabla, neuer Treiber, und keine Garantie für andere Anwendung, ich soll mich doch an deren Hersteller wenden." Noch mal nachgehakt, bis jemand das Problem als solches verstanden hat, und meinte, sie würden das an die Fachabteilung geben. Das war irgendwann 2010. Es gab seit der Zeit viele Updates. Behoben ist das nicht.

    Wobei sich da einiges durch die App-Märkte tut, wenn da was nicht geht in Bezug auf Usability schreien einige 100 User, und es wird auch bei großen Firmen eher rasch gefixt - man kann sich nur wünschen, daß das auch beim PC-Markt bald mal Einzug hält.



  • Marc++us schrieb:

    Bei solchen Fällen würde ich den Fehler daher weniger im Management suchen[...]

    Wo denn sonst? Das Management ist dafür verantwortlich, Aufgaben wie die Beurteilung der Usability an die richtigen Leute zu delegieren. Es sei denn das ist eine kleine Klitsche, wo jeder macht, was er für richtig hält.

    Auch sowas sehe ich weniger als Problem eines Managements, sondern als Versagen der Testcases - offensichtlich wird da relativ exklusiv getestet, d.h. wenn man den Treiber testet, läuft sonst nix weiter. Es ist kein Benutzerumfeld, daß da testet, sondern ein Tester an einer weitgehend sterilisierten Box, kein Wunder, daß dem das nicht auffällt.

    Wieso versagen? Das ist doch absolut korrekt so. Funktionale Tests finden in einer "sterilen" Umgebung statt, so dass alles jederzeit nachvollziehbar ist.

    Das Problem ist, dass es zusätzlich keine Tests gibt, die das ganze aus Benutzersicht testen. Und das wiederum zu etablieren ist Aufgabe des Managements.

    Habe ich versucht... Szenario erklärt, Email an den Support gemacht. Kam zunächst mal eine Standardantwort wie "blabla, neuer Treiber, und keine Garantie für andere Anwendung, ich soll mich doch an deren Hersteller wenden." Noch mal nachgehakt, bis jemand das Problem als solches verstanden hat, und meinte, sie würden das an die Fachabteilung geben. Das war irgendwann 2010. Es gab seit der Zeit viele Updates. Behoben ist das nicht.

    Und du meinst, das hat ein kleiner Programmierer oder Supporter unter den Tisch fallen lassen? Nein, die haben das in ihre Problemdatenbank eingetragen, und das Problem ist -- vom Management natürlich -- nicht ausreichend priorisiert worden, um angegangen zu werden.

    Was alles nicht heißt, dass das Management "schuld" an irgendwas ist, die machen auch nur ihren Job und haben halt entschieden, dass es wirtschaftlich nichts bringt, die Usability zu verbessern.



  • Marc++us schrieb:

    Jetzt will ich ab z.B. ab dem 01.10. eingeben, ich setze den Cursor auf das Datumsfeld an den Anfang, und lösche mit "Entf":

    7 .09.2012

    Und PENG geht eine Messagebox auf! Ungültiges Datumsformat

    ...

    Alternativ haben die Jungs natürlich auch einen Date-Time-Picker, den ich verwenden könnte, aber ich bin eigentlich mit der Tastatur viel schneller als mit der Maus, auf jeden Fall bei sowas.

    Da kann man dann auch erkennen, wie getestet wurde... nämlich ein Prüffall war "ungültiges Datum erkennen", ein anderer Prüffall war "Datum aus Picker richtig übernehmen". Aber es gab wohl kein Testszenario für "Benutzer gibt Datum ein".

    Bei solchen Fällen würde ich den Fehler daher weniger im Management suchen, denn anscheinend wurde ja Zeit und Aufwand in sowas gesteckt, weil die Prüfung an sich immer ein gültiges Datum garantiert - auf Kosten der Nerven des Benutzers.

    Hast du schon mal im Bugtrackingsystem deiner Bank nachgeschaut, ob der Bug nicht sogar vielleicht schon bekannt ist und irgendein Manager entschieden hat, dass es trotzdem einen Release der SW gibt, weil man sie ja benutzen kann.



  • Ähm, ich bin verblüfft, was betrachtet Ihr eigentlich als Managerebene? Wo beginnt die für Euch? Für mein besseres Verständnis.



  • Marc++us schrieb:

    Ähm, ich bin verblüfft, was betrachtet Ihr eigentlich als Managerebene? Wo beginnt die für Euch? Für mein besseres Verständnis.

    Das Management beginnt grundsätzlich eine Stufe über einem selbst. Und wenn man Konzernboss ist, wird "Management" durch "Politik" ersetzt 😉



  • Naja, eigentlich ist es schon fast so wie Tim es sagt. Kommt halt auch darauf an, wieviele Hierarchiestufen ein Unternehmen hat. Im Prinzip die Leute die bestimmen können, ob noch mehr Geld ausgegeben wird um einen Bug zu fixen oder ob die SW jetzt raus geht.



  • Aber wie Marc++us schon schrieb, bei Apps klappt das ja auch ganz gut.

    OT: Wenn das so weiter geht werden Tablets und Apps bald viele Haushalte erobert haben. Ob Windows da noch eine Rolle spielt werden die nächsten Monate zeigen.



  • Es kann auch sein, dass man einfach nicht erwartet so viel mit Software zu verdienen, dass es sich lohnen würde ein Produkt mit wirklich ausführlichen Tests durchzuführen.

    Natürlich betrifft das nicht die gewöhnlichen Usability-Tests. Man kann zwar bis zum Erliegen testen, aber gewisse Standardszenarien sollte man ja immer testen.



  • Marc++us schrieb:

    Ähm, ich bin verblüfft, was betrachtet Ihr eigentlich als Managerebene?

    Einfach gesagt: Wer nicht macht, sondern sagt, was gemacht wird.

    Der Grund deiner Verblüffung würde mich aber auch mal interessieren. Insbesondere da du ja ebenfalls die Linie zwischen Programmierer und Manager ziehst, kann deine Definition sich von meiner nicht großartig unterscheiden.



  • Butterbrot schrieb:

    OT: Wenn das so weiter geht werden Tablets und Apps bald viele Haushalte erobert haben. Ob Windows da noch eine Rolle spielt werden die nächsten Monate zeigen.

    Tablets werden PCs nur ergänzen, aber nicht ersetzen.

    Selbst wenn man die meiste Zeit nur im Internet surft oder Briefe schreibt, so kommt es mindestens einmal in drei Jahren vor, das man sein Urlaubsvideo enkodieren und vielleicht sogar auch schneiden will und nur dafür hält man einen PC vorrätig im Haus.

    Die Tablets haben also lediglich zur Folge, das der PC nicht mehr so oft upgedatet, sondern länger benutzt wird. Das ist aber auch schon alles.
    Verdrängen werden sie den PC niemals, zumindest nicht bei normalen nicht "nur Schicki-Micki-Konsumpersonen".



  • Butterbrot schrieb:

    Aber wie Marc++us schon schrieb, bei Apps klappt das ja auch ganz gut.

    OT: Wenn das so weiter geht werden Tablets und Apps bald viele Haushalte erobert haben. Ob Windows da noch eine Rolle spielt werden die nächsten Monate zeigen.

    Monate? Eher Jahre, Jahrzehnte. Und wenn ich mal überlege was ich mit meinem Desktop/Notebook so alles mache, fällt mir spontan _nichts_ ein, was ich mit einem Tablet/Smartphone/etc besser oder bequemener machen könnte. Ausser vielleicht News und Emails beim Kacken lesen.

    Ich verstehe aber auch nicht so ganz was Tablets/"Apps" (*schauder*) mit dem Thema zu tun haben. O.K. bei "Apps" ist man durch die arg eingeschränkten Eingabemöglichkeiten nahezu gezwungen der Usability große Aufmerksamkeit zu schenken. Und deswegen aber auch wegen der eher geringen Resourcen der Endgeräte ist die Software darauf halt eher kompakt gehalten. Dass Bugs und schlechte Detaillösungen mit komplexer werdender Software nicht gerade abnehmen ist ja jetzt auch keine brandaktuelle Erkenntnis.



  • Tim schrieb:

    Und wenn ich mal überlege was ich mit meinem Desktop/Notebook so alles mache, fällt mir spontan _nichts_ ein, was ich mit einem Tablet/Smartphone/etc besser oder bequemener machen könnte.

    Doch, das ganze auch dann machen, wenn der PC grad aus ist, man auf der Couch sitzt oder im Bett liegt.

    Nicht für alles, was ich mache, bräuchte ich auch den PC. E-Mails checken, was im Internet nachsehen, schnell was zusammenscribbeln. Dafür will ich nicht immer den PC anmachen müssen

    Selbst ein Notebook ist manchmal zu viel



  • Wie soll den gute Software entstehen?

    Der Markt ist sehr launisch, und schnelllebig.
    Sich ständig anzupassen um nicht unter zu gehen ist schon schwer.

    Die großen hängen an der börse und sollen ständig immer größere Gewinne
    einfahren.
    Für die kleine ist überleben eh schwer.

    Die Leute wollen für Software kein Geld ausgeben.

    Gute Software soll schnell entwickelt werden um günstiger zu sein und der
    Konkurenz ein Schritt voraus zu sein.

    Mit Verbreitung des Internets und den schnellen Leitungen sind wir zu Beta-
    Testern geworden. Halt nen Patch hinterher schieben...(wenn der bedarf groß
    genug ist)

    usw usw usw usw usw usw usw usw...........
    Das sind so viele Faktoren, die es einfach mal unmöglich machen
    wirklich gute Software zu entwickeln.



  • Mit Verbreitung des Internets und den schnellen Leitungen sind wir zu Beta-
    Testern geworden. Halt nen Patch hinterher schieben...(wenn der bedarf groß
    genug ist)

    Warum sollte ein großer Publisher der teure AAA Spiele herstellt auch ein Spiel, welches sich schlecht verkauft hat, weitersupporten, wenn die Kundenanzahl dieses Spieles so klein ist, dass man deren Verlust locker verkraften kann?
    Zumal Gamer süchtiges Konsumvieh sind und es nur ein anderes gutes AAA Spiel bedarf und schon hat man die verlorenen Kunden wieder an der Leine.



  • @TyRoXx:
    Vieles was du geschrieben hast sind einfach Feature Requests.

    Informatik ist aber ein interdiziplinäres Fach. Stell dir vor ein Pianist müsste einen Cutter (Metzgerei) bedienen. Oder ein Bauarbeiter müsste von heute auf morgen löten.

    Ok das müssen die einzelnen Personen nicht unbedingt. Aber jeder möchte einen Computer bedienen. Und wieviele sitzen vorm Rechner und können nicht einmal die notwendigsten Grundlagen des PC's ?

    Gute Software ist nun die Kunst eine Software zu entwickeln so dass alle möglichen Bevölkerungsgruppen sich damit zurechtfinden. Also auch solche welche meinen Computer sind giftig und solche die meinen Computer sind essbar. Ein Freund hatt mal diesbezüglich aus Angst vor einem Virus versucht ein Programm zu löschen, in dem er hingegangen ist und den Eintrag aus dem Startmenü gelöscht hat.

    Als Entwickler steht man vor einem Problem, da man sich selbst in einen solchen Kundenkreis eindenken muss, man es aber aus Betriebsblindheit oft nicht tut. Wenn ich alle *.bak dateien auf einem Verzeichnis löschen möchte, öffne ich eine Konsole und gebe *.bak ein. Logisch, aber nicht für jedermann. Konsole was ist das ? Man muss sich förmlich als Entwickler immer wieder sagen: Wie würde das der Benutzer machen ?

    Und einigen Fälle sind auch nicht trivial, wenn beispielsweise X % das Feature gefällt, aber Y % nicht, Experten als auch Laie die Software nutzen wollen, Anwender die Sofware in nicht vorgesehener Weise nutzen, Neue Features eingepflegt werden soll was aber das Design nicht zulässt (Dateiformate)...

    Windows: Man muss Treiber zusammensuchen und installieren

    😃 Wie soll ein Betriebssystem das besser machen sollen bei diesem Wildwuchs an Treibern ??? Wie stellst du sicher dass Treiber XYZ kein Rootkit ist oder dir das System nicht abschießt ?

    Windows: Ja, ich weiß, dass der Akku fast leer ist verdammt nocheins!! (bei 9% (~ 15 Minuten) oder so wird ein Notebook dann ungefragt heruntergefahren)

    Weil wohl 9% Akkuleistung soviel Energie sind, um ein System sicher herunterzufahren. Ansonsten droht wohl Datenverlust.



  • Bashar schrieb:

    Es sei denn das ist eine kleine Klitsche, wo jeder macht, was er für richtig hält.

    Bashar schrieb:

    Und du meinst, das hat ein kleiner Programmierer oder Supporter unter den Tisch fallen lassen? Nein, die haben das in ihre Problemdatenbank eingetragen, und das Problem ist -- vom Management natürlich -- nicht ausreichend priorisiert worden, um angegangen zu werden.

    Ich arbeite in so einer "kleinen Klitsche".
    Problemdatenbank und Bugtracker? Kann man das essen?
    Das Management ist sich der Probleme bewusst? Das Management weiß die meiste Zeit nicht einmal, an was wir arbeiten und kennt die Software die wir bauen manchmal nur oberflächlig! Unser Management weiß nichts von Software-Entwicklung, handelt nach 30 Minuten Gespräch mit Kunden einen Festpreis aus (nachdem einer der Programmierer die Zeit eingeschätzt hat, natürlich total geraten und mit Information, die nichtmal einen Notizzettel füllen würde) und schon geht das fröhliche Entwickeln los. An der Stelle klinkt sich das Management meistens auch wieder aus. Von Zeit zu Zeit erzählt man woran man arbeitet ("wie, immer noch?", "was war das nochmal für ein Projekt?" ... nein, das ist kein Witz. Das ist hier die Regel).

    Tja und was ist dann mit beschissener Usability? Hat das irgendeine Priorität? Nö, wenn der Müll läuft und nicht ständig abstürzt ist die Sache erledigt, in der Projekte-Queue warten schon neue Aufträge.

    Auch mit wenigen Leuten kann man relativ große Programme bauen. Meine größeren Projekte die ich alleine Baue haben etwa 50-100kLoc eigenen Code. Ich würde wirklich nicht davon ausgehen, dass hinter der Mehrheit der Software, mit der man so tagtäglich in Berührung kommt, ein ganzes Team von Entwicklern steckt die State of the Art Software bauen. Neee, eher so völlig ungeführte Frickler wie wir. (Es liegt nichtmal an fehlender Motivation. Bei spannenden Problemen kniet man sich wirklich rein. Aber man ist in dieser Klitsche komplett führungslos. Mein "Abteilungsleiter" (auch Programmierer), hat sich in den 3 Jahren exakt keinmal eine Software von mir angesehen, von Code ganz zu schweigen. Lol ... naja ich nehme ich auch nicht mehr als Abteilungsleiter wahr...)
    Tja was mache ich dann als Einzelkämpfer, wenn mich eine Kundenbeschwerde erreicht? Das ist ehrlich gesagt ganz abhängig von der Tageslaune und ob der Kunde sich wie ein Arsch benimmt oder sympathisch wirkt. Die meisten kleinen Probleme (wie z.B. eine von Markus angesprochene Eingabe des Datums) sind nervtötend zu beheben und zu verbessern. Sowas fällt zu 99% unter den Tisch weil kein Programmierer bock hat sich mit solchen Dingen zu beschäftigen.

    Willkommen in der Realität.



  • Exakt so habe ich es schon in drei Firmen erlebt. Die armen Schweine die Informatik studiert haben und dann denselben Mist für fast dasselbe Geld machen müssen wie ein Quereinsteiger-Programmierer. Alles persönlich erlebt.

    Die IT ist heute so, als würde man auf den Baustellen die Architekten Wände mauern und zu spachteln, für das gleiche Geld wie ein Maurer natürlich.

    Ist auch kein Wunder, kaum eine Bude braucht wirklich einen reinen Informatiker, da nur ganz selten das Rad neu erfunden werden muss und in der Regel nicht selbst Frameworks oder neue Programmiersprachen entwickelt werden, sondern nur welche zusammen geklatscht und angepasst werden.

    Für ein wenig OOP-Design und dessen Implementierung braucht man bei 90% der ganzen Softwareentwicklung(Web eingeschlossen) keinen Informatiker, sondern Leute die schnell loslegen auch wenn das Produkt dann Schrott ist. Solange die Kunden das bezahlen und nicht viel mehr, wird sich daran auch nix ändern.

    Ich würde heute keine Informatik mehr studieren, sondern eher was mit wirklicher beruflicher Anerkennung und gutem Verdienst.



  • Neunzehn schrieb:

    Ich würde wirklich nicht davon ausgehen, dass hinter der Mehrheit der Software, mit der man so tagtäglich in Berührung kommt, ein ganzes Team von Entwicklern steckt die State of the Art Software bauen.

    lol! nicht dein ernst, oder? es gibt ein paar libs, die von einzelnen geschrieben werden. aber hinter jedem richtig großen ding >100ksloc arbeitet normalerweise mehr als einer 😉 teilweise arbeiten auch firmen/universitäten gemeinsam an programmen. ijemand muss die ja auch bezahlen von der hand im mund lebt da keiner die haben alle ganz gute stellen! auch bei open source 😉

    Neunzehn schrieb:

    Neee, eher so völlig ungeführte Frickler wie wir.

    dass du in einer scheiß firma bist, dafür kann keiner was. den 'ungeführten Frickler' gibt es in der realität nicht. bei open source ist es so, dass einer anfängt, und das dann so lange macht, bis er keinen bock mehr hat, oder er das gefühl hat, dass das jmd. besser kann. alle die da mitmachen wollen, haben sich gefälligst daran zu halten, was von oben angesagt wird. wenn ihnen das nicht passt gibt es einen split/branch oder wie das teil auch immer heißt und das gleiche spiel geht von vorne los.

    Willkommen in der Realität.



  • Was laberst Du denn von OpenSource?

    Und ja, es ist mein voller Ernst. Ich glaube eher Du bist noch nicht mit der Situation in vielen kleinen und mittelständigen Klitschen in Berührung gekommen.


Anmelden zum Antworten