1. Foren
  2. Kommentare
  3. Software-Entwicklung-Forum
  4. Alle Kommentare zum Artikel
  5. › Software: 20 Dinge…

Schrottsoftware

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema

Neues Thema


  1. Schrottsoftware

    Autor: fabiwanne 19.11.21 - 16:59

    Zu Punkt 6-8:
    Ja. 99% der Software, die geschrieben wird funktioniert genau so: Wird einfach mal angefangen, dann guckt man, was möglich ist und irgend wann ist sie Schrott.

    Für Softwareentwickler ist das Toll: Man baut toll neue Features ein, für die man bezahlt wird.
    Für den Auftraggeber ist das Toll: Man muss sich vorab nicht viel Gedanken machen. Man es werden nach bedarf alle nötigen Funktionen umgesetzt und es kommt das beste Produkt raus, dass diese Anforderungen erfüllt. Unnötiges muss nicht implementiert werden.
    Und zu Letzt: Solche Software kann üblicherweise gut erweitert werden indem man nochmal was dran pappt. Üblicherweise kann das problemlos auch durch jemand anderen, der von dieser Materie Ahnung hat passieren. Der Funktionsumfang skaliert gut.

    Genau wegen dieser Vorteile läuft Softwareentwicklung fast überall so. Und das ist auch sinnvoll. Ich nenne das trotzdem mal böse Schrottsoftware. Denn irgend wird sie halt Fett und nach der 10 Anforderungsänderung ist es eine unterschiedlichsten Teilen zusammengefrikelter Frankenstein wo keiner mehr weiß, welcher Teil noch nützlich oder längst unnötiger Balast ist. Neue Teile brauchen immer mehr Arbeit, weil es mit allen Teilen des Ungetüms zusammenarbeiten muss und man braucht es neue Software.

    Deswegen ist es bei weitem nicht so große Anteile der Software die genutzt wird.
    Bei der Nutzung wird ein erklecklicher Anteil durch "Technologie-Haie" abgedeckt:
    BSD grep, find man und make von 1975, gcc ist von 1987. C selbst von 1972.

    x86 von 1978, wget von 1996, die bash ist von 1989, OpenSSL von 1998. XFS von 1994 FAT von 1980 dpkg von 1994. MySQL 1995. Postfix von 1998
    linux-Block-Device-Management seit Jahren kaum angefasst. Windows-Netwerk-Stack seit Vista defakto nicht angefasst..

    VLC Player von 2001, StarOffice/OpenOffice von 1985

    Alle fast ohne grundsätzlichen Änderungen bzw. ausschließlich Erweiterungen und performance-Optimierungen.
    Auch Google-Maps, Google-Search, Whatsapp, wikipedia und youtube haben in den Letzten 10 Jahren kaum Änderungen erfahren.

    MS Office, Photoshot, Paint oder Outlook bekomme nur alle paar Jahre einen Generalüberholung mit neuem Skin und werden sicher nie (oder nur alle paar Jahrzehnte) neu geschienen. Funktionalität defakto seit 1990 die selbe.

    Das sind die Programme, die 75% der Zeit genutzt werden.
    Das sind die "Technologie-Haie" und die sind eben genau nicht so, wie geschrieben Entwickelt. (Oder werden es zumindest nicht mehr.)
    Ihnen ist gemein, dass sie einen sehr exakt spezifizierten aber abstrakten Funktionsumfang haben und systematisches Bedinkonzepte, die sich durchs ganze Programm ziehen haben, die sie nicht mehr aufgeben und üblicherweise Harte Strukturen drüber sitzen (bzw. oft One-Man-Shows sind.) die diese Funktionalität gegen Änderungswünsche Verteidigen der aber allgemein genug ist, dass man sie immer wieder verwenden kann.

    Das hat zuerst mal 2 Vorteile:
    1. Um diese Software wächst ein Ökosystem. Das kann nicht nur viele Unzulänglichkeiten Ausgleichen sondern Anwendungsbereiche erschließen die von einem Entwicklerteam alleine nie erreicht werden würden.
    2. Sie können massiv größeren Anspruch an die Nutzer stellen. Man kann nicht in 10 Minuten gut C oder bash programmieren, Excel Photoshop oder Word optimal beherrschen. Kurzfristig lohnt es sich für den geringen Nutzen sicher nicht UNIX-Dateirechte Tabstops oder reguläre Ausdrücke zu lernen. Braucht es auch nicht. Beherrscht man das, hat man etwas fürs Leben gelernt.
    Sie haben aber eben auch Nachteile:
    1. Sie sind unflexibel. Änderungen zum Besseren sind fast unmöglich.
    2. Die Abstraktion der Funktionalität erfordert fast immer auch besseres Wissen der Nutzer. Selbst wenn die Software anfangs intuitiv gedacht war: Das Ökosystem drum herum macht wissen erforderlich. Selbst für die WhatsApp-Nutzung muss man plötzlich Smilies verstehen.

    Großen Hass zieht man auf sich, wenn man nicht versteht, was man für Software entwickelt:
    Egal wie scheiße 0-Terminierte Strings sind. Nach dem "Warum" wird nicht gefragt! Es gibt zig Mio. Libraries, die das jetzt so machen. Bestimmt eine halbe Milliarde Leute, die gelernt haben, wie man damit umgeht. All die stößt du mit einer Änderung vor den Kopf. Unwahrscheinlich, dass die Verbesserung den Effort wert ist.
    Entsprechend genau solltest du dir von Anfang an überlegen, was, wie und ob du irgend etwas einbaust. Du willst nicht über Jahrzehnte Leuten erklären müssen, warum die eine Funktion die Argumente jetzt in der umgekehrten Reihenfolge wie die andere übergibt.

    Auf der anderen Seite: In der "Schrottsoftware" ist es absolut unzumutbar, wenn du zum Kollegen „Nein“ sagst, wenn er mal ein paar Daten an der "offiziellen" API (falls die überhaupt exisitert) vorbei in irgend einem rohformat haben will.
    Es braucht beides die Hai-Software auf der die Infrastruktur dann über Jahrzehnte läuft und die Schrottsoftware, die flexibel genug für den nächsten Auftrag ist.

    Man sollte kapieren an was für einem Projekt man arbeitet. Noch genauer sollte man sich das bei der Auswahl von Abhängigkeiten überlegen.



    2 mal bearbeitet, zuletzt am 19.11.21 17:01 durch fabiwanne.

  1. Thema

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Windows Systemadministrator (m/w/d)
    STRABAG BRVZ GMBH & CO.KG, Stuttgart
  2. Projektmanager CES (m/w / divers)
    Continental AG, Markdorf
  3. IT-Projektleiter (m/w/d)
    Bayerisches Landesamt für Steuern, München, Nürnberg, Regensburg
  4. Senior Analyst Corporate Strategy (m/w/d)
    akf bank GmbH & Co KG, Wuppertal, Berlin, Frankfurt am Main, Hamburg, Stuttgart

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote


Haben wir etwas übersehen?

E-Mail an news@golem.de


  1. WIK: Netzausbausteuer für Netflix und Co. schadet den Nutzern
    WIK
    Netzausbausteuer für Netflix und Co. schadet den Nutzern

    Werden Contentanbieter wie Netflix in Europa gezwungen, sich am Netzausbau zu beteiligen, schadet das am Ende den Nutzern. Das ergibt eine Analyse des WIK.

  2. Subventionen: Lindner will lieber Kitas als Elektroautos fördern
    Subventionen
    Lindner will lieber Kitas als Elektroautos fördern

    In der Debatte um die künftige Förderung von Elektroautos legt Finanzminister Christian Lindner nach. Die Kritik lässt nicht lange auf sich warten.

  3. Statt 5G: Russland nutzt 700-MHz-Frequenzband weiter für analoges TV
    Statt 5G
    Russland nutzt 700-MHz-Frequenzband weiter für analoges TV

    Der Frequenzbereich wurde um ein Jahr für die bisherige Nutzung verlängert. Die russischen Netzbetreiber wollten dort 5G ausbauen.


  1. 19:09

  2. 18:54

  3. 18:15

  4. 18:00

  5. 17:45

  6. 17:30

  7. 17:15

  8. 17:00