Software - mittlerweile ein Standard-Problem?

Jul 11, 2024 Last reply: 2 years ago 45 Replies

Ralph Aichinger schrieb:

Da brauchst du gar nicht erst zu vermuten. Spätestens ab einem 'Volumen' von 100 M [hier Zahlungseinheit einsetzen] wird quasi zwangsläufig grosszügig Bestechungsgeld fliessen.

formatting link
Insbesondere Grossprojekte, über die grosse Worte geschwungen werden, scheinen immer wieder abzusaufen. Lerneffekt = Null.

Helmut Schellong schrieb:

Vielleicht schon, aber das nützt nichts, da der Begriff inflationär gebraucht wird. Seit Jahrzehnten. Da meinten die Leute schon, sie hätten den Videorecorder 'programmiert'.

Dabei ist eben 'Programmierer' nicht genau definiert.

Zwischen Programmieren und Coden schon gar nicht.

Das spricht für einen guten Coder. Ob er auch programmieren kann, kann man daraus nicht ableiten.

Insbesondere Algorithmen-Entwickler sind extrem selten.

Am 13.07.24 um 20:50 schrieb Rolf Bombach:

Die privaten Kassen der Entscheidungsträger stimmen am Ende in der Regel, schlimmstenfalls geht es mit üppiger Abfindung direkt in den nächsten lukrativen Vorstandsposten.

Insofern: Lerneffekt = hat sich gelohnt, weiter so.

Obiges erinnert doch beängstigend an IBM versus CDC, respektive genauer Seymour Cray. Der hat mit einem Mini-Team die CDC 6600 gebaut. Daraufhin hatte Thomas Watson der jüngere einen Ausraster:

The 6600 was three times faster than the previous record- holder, the IBM 7030 Stretch; this alarmed IBM. Then-CEO Thomas Watson Jr. wrote a memo to his employees on August 28, 1963: "Last week, Control Data ... announced the 6600 system. I understand that in the laboratory developing the system there are only 34 people including the janitor. Of these, 14 are engineers and 4 are programmers ... Contrasting this modest effort with our vast development activities, I fail to understand why we have lost our industry leadership position by letting someone else offer the world's most powerful computer." Cray's reply was sardonic: "It seems like Mr. Watson has answered his own question."

Am 13.07.24 um 21:39 schrieb Rolf Bombach:

Das wohl aber in diversen Bereichen... Bosch macht nicht nur Fahrzeugelektrik/Steuerung... dazu kommen nicht nur PT, DIY, Weiße Ware, Meßtechnik...

Und mich wundert, die verglaste Wand der CDC6600 im Science-Museum in London vor Augen, immer noch, daß da kein Signalübersprechen, vernünftige Signallaufzeiten und kein Verdrahtungsfehler vorhanden ist.

Erst recht, wenn das mit der geringen Personenzahl in der Entwicklung ist... oder gerade deswegen?

Viele Grüße, Olaf

Helmut Schellong schrieb:

Früher hatte die Firma 100 Fortran-Programmierer. Wie das bei diesen Leuten so ist, meinten etwa 80% davon, sie gehörten zu der besseren Hälfte der Programmierer.

Heute fragst du einen Programmierer nach seinem Kollegen. Die Antwort ist, 'der hat ja nicht mal ansatzweise Ahnung von <hot s*it of the year>'.

Eigentlich ist das ja richtig so. Programmieren sollten die Programmierer, der Informatiker sollte das Projekt leiten, die Architektur definieren oder dergleichen.

Er muss wissen, was das ist. Es sollte sogar so sein, dass er nicht selber programmiert.

Es sind sicher 50% oder mehr 'programmierend'. Das heisst ja noch lange nicht, dass sie Programmierer sind, was auch immer das sein mag.

Diese ist zumindest umstritten. In Europa ist die Mathematik fast immer in der Naturwissenschaftlichen Fakultät angesiedelt; man erwirbt einen Dr. rer. nat. oder Dr. phil. II.

Es gibt die Fields-Medaille, allerdings eher schwach dotiert. Daher gibt es jetzt noch den Abel-Preis, welcher zumindest in dieser Hinsicht dem Nobelpreis nahe kommt.

Wen genau hättest du vorgeschlagen?

Genau, so etwas meine ich. Ich sprach im Thread von Etikettenschwindel: [12.07.2024, 21:54]

Eigentlich ist jedes Programm in einer Programmiersprache ein Algorithmus.

Ich kann am besten in C/C++ programmieren. Diese Sprachen kommen mir entgegen. Aber als zur besseren Hälfte der Programmierer gehörig sehe ich mich deshalb nicht.

Ja, einen solchen Eindruck habe ich im Beruf gewonnen.

Ralph Aichinger hingegen hat alle ihm bekannten Informatiker als gute Programmierer erkannt.

Ich habe an allen Schulen gelernt, daß Mathematik eine Geisteswissenschaft ist. Wikipedia sagt heute: Formalwissenschaft. Als ich Schulen besuchte, war eine Formalwissenschaft dort ungenannt.

Jemand, der forderte, daß es für das Fach Mathematik einen Nobelpreis geben sollte, nannte dabei eine Mathematikerin als Beispiel. Ich weiß nicht mehr deren Bezeichner?

formatting link
Grüße, H.

Ich behaupte mal, du kannst z.B. dein ganzes Leben lang Software entwickeln die irgendwelche Geschäftsprozesse abbildet, und kein einziges mal einen auch nur annähernd neuartigen Algorithmus entwickeln zu müssen.

In anderen Bereichen ist das natürlich komplett anders.

/ralph

Um so weniger, je mehr Du weißt und kannst.

Ich habe sowohl den Graetzgleichrichter als auch den Bubble-Sort-Algorithmus erfunden. In beiden Fällen erfuhr ich erst viel später, daß es das lange gibt und sogar einen Namen hat.

Olaf Schultz schrieb:

[Konstruktion der CDC6600]

Genau das meinte Cray.

Insbesondere das Reinwerfen von mehr Leuten in ein verzögertes Projekt ist in den meisten Fällen kontraproduktiv.

Das gibt wahrscheinlich so eine Paulingsche Erfolgskurve. Nach dem Maximum geht es erst mal wieder steil runter, erst asymptotisch bei >>10k Leuten dann wieder hoch, wobei nicht gesagt ist, dass das dann höher als das lokale Maximum sein wird. Siehe auch Manhattan Project (150k Leute).

Ja, das bekannte

Adding manpower to a late project makes it later.

Einfach deshalb weil die sich erst einarbeiten müssen und dabei Resourcen binden die dann nicht am eigentlichen Projekt arbeiten können.

Gerrit

Projektmanager meinen, neun Frauen könnten in einem Monat ein Baby produzieren.

Oder der Dreisatzklassiker: Ein Bagger kann in zwei Tagen den Swimmingpool ausheben. Wielange brauchen 100 Bagger?

Volker

Ich habe den Kelvin-Varley-Spannungsteiler nochmals erfunden. Wurde mir auch erst viel später klar.

Wichtig für den Programmierer ist zu erkennen, dass Bubble sort der mit Abstand dämlichste Algorithmus ist und eigentlich verboten gehört. Eine einzige kleine Änderung in einer Zeile und man hat den Straight insertion Algorithmus, welcher 2.5 mal schneller und beweisbar der schnellste Algorithmus für hinreichend kleine Mengen ist.

Ich versuche eine Liste zusammenzstellen, ähnlich dem Crackpot-Index, aber für unfähige Programmierer. Spontan fallen mir ein:

- Der Wahn, alles selber nochmal erfinden zu wollen oder zu müssen

- Aversion, bewährte libraries zu verwenden

- Aversion, nachzuschauen, wieviele Lösungen es bereits gibt und welche Vorteile und Nachteile ein Algorithmus hat

- Aversion, nachzuschauen, wieviele unterschiedliche Implementierungen einer Methode es bereits gibt und welche Vorteile und Nachteile diese haben

- Keine Fallunterscheidungen

- der Wahn, das in der theoretischen Informatik gelernte 'Programmieren' hätte einen praktischen Wert und wäre die optimale Lösung für das jeweilige Problem

- er denkt an Bubblesort

- will Nullstellen einer Funktion suchen, hat aber noch nie was von Van Wijngaarden–Dekker–Brent gehört und will das auch partout nicht

- will Funktionen integrieren, hat aber von Gaussverfahren noch nie was gehört

- macht Fouriertransformationen und Autokorrelationen, hat aber noch nie was vom Wiener-Chintschin-Theorem gehört

- macht Numerik, hat aber die Numerical Recipes nicht im Regal

Undsoweiter. Punkte-Anzahl hab ich mir jetzt noch nicht überlegt :-)

Aber Bubble sort ist wirklich ein guter Indikator für die Verblödung in der Informatik. Google Ungefähr 269’000’000 Ergebnisse

Flat earth: Google Ungefähr 525’000’000 Ergebnisse

Hergen Lehmann schrieb:

ACK. Es braucht immer zwei. Einen, der's bietet und einer, der sich's bieten lässt.

Aber einklich sollte da ja noch eine übergeordnete Kontrollinstanz stehen, insbesondere beim Steuergelder-aus-dem-Fenster-werfen. Wenn sich Gross- kotzerne gegenseitig betuppen, da misch ich mich erst mal nicht ein.

Am 15.07.24 um 20:23 schrieb Rolf Bombach:

Schwierig.

Die Entscheidungsträger wissen zu viel, auf beiden Seiten. Wer hat wen bestochen, wer hat wem ohne ordentliche Ausschreibung Aufträge zugeschustert, wo wurde das Finanzamt beschissen, wo gibt es Schwächen in den Prozessen (die Dritte ausnutzen könnten), welche Personen sind unersetzlich (was wiederum Angriffspunkte für Dritte liefert), usw.

Solche Leute lobt man weg und schaut tunlichst nicht genauer hin, sonst rollen Köpfe bis ganz oben.

Auch bekannt als "Alle Anderen sind Pfuscher, nur ich bin brilliant", eine leider recht verbreitete Wahnvorstellung.

Zitat eines Kollegen dazu vor Jahren: "In Anbetracht der Anzahl von Rädern die regelmässig neu erfunden werden ist es erstaunlich, wie wenige davon rund sind."

Naja, in Grenzen. Entweder hinreichende Erfahrung oder halt gelernter Hintergrund aus der Theoretischen Informatik ist durchaus hilfreich um zu verhindern, das man mal eben unnötig quadratische (oder schlimmer) Algorithmen oder vergleichbaren Unfug[0] baut.

Weil einem das Ding oft als erster Sortieralgorithmus erklärt wird (und man dann selber schreiben darf) und andere teilweise nur erwähnt werden. Nein, ist keine Entschuldigung (man hat die verdammte Pflicht, mehr zu lernen als was man in der Vorlesung hört), aber erklärt das IMHO. Und Komplexitätstheorie kommt dann erst 1-2 Semester später, von Mikro- benchmarks einfach aus Neugierde wollen wir hier gar nicht anfangen ...

Tja, für solche Stümperei sollte es eins auf die Finger geben.

Derer gibt es genug mehr. Regelmässig erlebt: Interview als System Engineer für komplexe Unix-basierte Systeme, volles Versagen im Unix/Linux internals Interview. Und zwar bei elementaren Sachen, keine tiefe Magie.

Man liest sich, Alex.

[0] Mein (einfaches) Lieblingsbeispiel: Monitoring-Sensor, der bind9 logs auswertet, fertig aus irgendeinem Paket. Brauchte verdächtig lange. Brauchte bei Beobachtung auch verdächtig viel Speicher. Angesehen: Einfaches Stückchen Perl, aber statt einfach das Log zeilenweise zu lesen und auszuwerten halt das Perl-Konstrukt genommen, welches die zu lesende Datei erst komplett in den Speicher[1] saugt und dann über die Zeilen iteriert. Triviale Korrektur brachte die Laufzeit von 2-3 Minuten runter auf wenige Sekunden. [1] 100..200MB grosse Logs. Auf einer Maschine mit damals IIRC 128MB RAM. Sowas macht keinen Spass.

Das sind doch Binsenweisheiten.

Wer denkt, Reinwerfen von weiteren Programmierern würde den Zeitbedarf entsprechend linear reduzieren, ist ein Vollidiot.

Es können doch nicht 10000 Programmierer an einer Mammut-Software untereinander vollkommen isoliert arbeiten. Je mehr Programmierer, desto mehr Schnittstellen.

Klassiker aus Brooks "The Mythical Man Month": Auf ein spätes Projekt nochmal fett Leute draufwerfen macht es _noch_ später. Das Buch sollte Pflichtlektüre für den Bereich Projekt Management sein, bis auf technische Details hat es nichts an Aktualität verloren, leider.

Kommt halt auch immer drauf an, wie sehr das ganze Projekt wirklich parallelisierbar ist. Beim typischen IT-Projekt ist dass kommunikations- bedingte Maximum eher schnell erreicht.

Man liest sich, Alex.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required