Joel Spolsky: "Die Power der Entwickler hat in den letzten Jahren dramatisch zugenommen"

Den Punkt „Schnelle Verantwortungsübertragung“ fand ich da jetzt lustig. Das klingt nach dem, was ich im letzten Absatz geschrieben hatte, mit dem „Sahnehäubchen“ "Du bist schuld wenn’s kracht! oben drauf :smiley:

Über manche Sachen denke ich da schon viel nach. Vor einiger Zeit hatte Landei ja mal beiläufig Elm erwähnt (Elm angetestet) und dort hatte ich schon das Bild verlinkt, das mir in ihrem „Manifest“ ( http://www.elmbark.com/2016/03/16/mainstream-elm-user-focused-design ) besonders aufgefallen ist:

http://www.elmbark.com/assets/images/posts/1/010.png

Und ich bin mir sicher, das das stimmt. Ein Haufen minderqualifizierter Leute, die JavaScript gelernt haben, weil sie auf ihrer geocities-Webseite einen Glüh-Effekt über einen Button legen wollten, und die bei dem Wort „Schnittstelle“ an das denken, was ihnen gestern passiert ist, als sie mit einem scharfen Messer einen Apfel schälen wollten, drängt jetzt als vermeintliche „JavaScript Seniors“ (weil sie ja schon alt sind, und das schon lange machen :roll_eyes: ) in die Firmen, wo sie Verantwortung für Serverseitige Software mit NodeJS übernehmen, und in einer ungetypten (und, da habe ich noch nie gehört, dass jemand widersprochen hätte: ) von Grund auf vermurksten Sprache aus Bibliotheken, die ihresgleichen auf NPM gestellt haben, irgendwelche Webanwendungen zusammenklöppeln.

Ich bin mir sicher, dass das so ist. Wo ich mir aber nicht sicher bin: Ob das ein Problem ist. Der „Churn“ scheint so weit antizipiert zu sein, dass heute irgendwas entwickelt wird, was schon während des Entstehens Legacy-Code ist, aber morgen wird das ganze eh mit einem anderen Tech-Stack und einem anderen JavaScript-Framework von einer anderen Firma neu aus dem Boden gestampft.

Vielleicht ist die Quintessenz also: Alles Sche!ße, aber das ist egal :no_mouth:

Vielleicht etwas OT. So ein MERN-Stack ist ja für einen Anwendungsfall zugeschnitten.
Zentrale Datenbank, Webserver und SPA im Browser.

Aber wie sähe denn ein Stack aus den du für so einen Fall auswählen würdest?

So ein Gedanke, den ich habe ist der:
In der Medizin muss man Latein können. Macht prinzipiell ja keinen grossen Sinn. Der Gedanke dahinter könnte sein, wer es schafft Latein zu beherrschen, hat wohl noch soviel Restintelligenz zur Verfügung, dass er auch Arzt werden kann.

In der Kirche ein ähnliches. Lange Zeit war alles in Latein oder Altgriechisch. Um die Interpretationshoheit bei der Kirche zu behalten, die das ja konnten. Lutherbibel, die Übersetzung auf Deutsch, war ja ein Frevel, der es jedem ermöglichte sich selbst zu (re)-(in)formieren.

Wenn jetzt durch entsprechende Tools, Sprachen etc. jeder, auch ohne ein Informatikstudium oder die entsprechenden Grundlagen, programmieren kann, dann ist das einerseits toll, andererseits hat man das Problem wenn man das ganze Warten/Reparieren soll und bekommt eine ganz andere Einstellung dazu.

Aber ein Arzt hat da ein ähnliches Problem, wenn er einem Hypochonder mit Internetanschluss erklären muss, dass er wirklich kein Lepra hat.

Vielleicht ist auch Youtube schuld, dort findet man zu jedem Thema ein Video, dass einen zum Profi macht.

Ist das eine Pflicht, miteinander zu reden?
Oder mal anders dargestellt, würdest du es auch schaffen, ein paar Minuten Schweigen zu überbrücken?
(Viele können das übrigens nicht.)

Es gibt inzwischen auch bessere Nachfolger von Legacy-Code.

Wo ist da denn jetzt der Zusammenhang zwischen Latein und „MERN“-Stack, und Latein und… eh… „Anwendungsfall“?


Irgendwie finde ich das überspitzt, daneben und am Thema vorbei von euch - außerdem zu viel Geplänkel. Zugegeben - nicht alles in diesem Thema gelesen usw.

Es geht hier ja schon um Asm vs. C vs. Java vs. JavaScript (Reihenfolge der Aufzählung spiegelt jetzt NIX wieder). Ursprünglich ging es doch um gute Entwickler, Trolle und Quietscheentchen… Ich finde…, das ist keine Einladung für Albernheiten.

Glaubst du, wenn die Beteiligten Entwickler nicht miteinander kommunizieren, kommt auch nur ein Ansatzweise funktionierendes Produkt heraus?

(und nein, ich schweige nie, ich laber die ganze Zeit irgendwelchen Unsinn :man_shrugging: )

Ich glaube einfach, dass die Qualität massiv zugenommen hat. In den 90er sind umgeschulte Lehrer zu IT Spezialisten aufgestiegen und sitzen heute in den oberen Etagen von zig Unternehmen. Persönliche Erfahrung in der Familie. Da wurde halt auf Win 95 ein bisschen C Code geschrieben, weils keine Stellen als Lehrer gab und keine ITler. Siemens hat z.B. massiv umgeschult. Heute reicht es nicht mehr nur ganz gut coden zu können. Man braucht mehr Blick “über den Tellerrand” um die immer komplexeren Prozesse verstehen zu können. Dafür braucht man aber auch einfach Erfahrung und die Bereitschaft sich immer weiter zu entwickeln. Und wenn ich heute noch mit Admins zu tun habe, die sich beschweren, warum man irgendwelche “Sicherheitslöcher” aufmachen muss um Produktiv zu bleiben, dann wird kurz der Kreislauf “Produkt” -> “Gewinn” -> “Gehalt” angesprochen. Die IT ist nicht nur räumlich insgesamt aus dem Keller in die Geschäftsräume gezogen (zumindest bei allen Unternehmen die ich so kennengelernt habe), die Prozesse werden auch vielfach von der IT mitbestimmt. Da ist ganz viel Kommunikation und Verständnis nötig.

Thema JS: Ja ist Mist, aber es funktioniert und bringt teilweise doch erstaunlich tolle Anwendungen hervor. Die Leute die das machen sehen die Nutzbarkeit als oberstes Gebot…ist auch ok. Ein gutes Produktmgmt hat Apple groß gemacht. Die Sicherheit kommt dann vll. später, ist aber nicht nicht immer unbedingt notwendig.

Der Stack an sich mag „gerechtfertigt“ sein, da maße ich mir kein Urteil an. Wenn eine triviale CRUD-Anwendung in 10 Microservices zerstückelt und in 8 Docker-Containern quer über die Welt verteilt wird, gibt es zwar einen Punkt, wo ich mir denke: „Das KANN so nicht richtig sein!“, aber wo genau dieser Punkt liegt, darüber kann und will ich nicht streiten.

Einiges von dem was ich vorher gesagt hatte, bezog sich gerade auf den Punkt der Wartbarkeit: Die Tools suggerieren Teilweise einen Abstraktionsgrad und eine Einfachheit, die in der Praxis nicht gegeben ist. Wenn man sich irgendein Tutorial ansieht, wo dann direkt in einem REST-Call per hartverdrahteter URL auf eine lokale MongoDB zugegriffen wird, sieht es so aus (und wird manchmal suggeriert) dass man „Mit 20 Zeilen eine MERN/CRUD-Anwendung erstellen kann“. Die möglichen Probleme sind dann:

  • Manche machen das, und was rauskommt, ist Murx
  • Manche merken, dass es eben nicht so einfach ist, und machen dann das, was man stattdessen machen muss (Services, Proxy, Config, Docker) obwohl sie keine Ahnung haben, wie man das „gut“, „richtig“ und vor allem wartbar macht, und was rauskommt, ist Murx

Das mit dem Latein kann ich aber auch gerade nicht einordnen.

Die Situation von heute mit der in den 90ern zu vergleichen ist etwas unangebracht. Die Geschäftsmodelle und (unabhängig von den Modellen auch) die Geschäftsprozesse und die für diese Prozesse benötigte Infrastruktur ist überhaupt nicht vergleichbar. Man kann jemandem, der 1990 C Programmieren gelernt hat keinen Vorwurf machen, wenn er mit Docker erstmal nicht direkt was anfangen kann (und wie sehr man erwarten kann, dass derjenige da „auf dem Laufenden“ bleibt hängt stark von seiner Rolle ab (und auch von seinen persönlichen Zielen)).

EDIT: Nur weil der erste Artikel auf Heise gerade recht gut zu einigem passt, was ich oben gesagt hatte:

Du hast mich da falsch verstanden. Ich meinte, dass früher die Anforderungen einfach viel(!) geringer waren als heute. Sicherheit? Geschenkt. Wartbarkeit? Geschenkt

Wenn man sich Überbleibsel aus dieser Zeit anguckt, sind die Sicherheitsrisiken heutiger Software ein Witz dagegen. Nur entweder sind die alten Anwendungen weg vom Fenster oder sie sind ganz tief im Innern verborgen und werden gut geschützt. Oder es ist so wie beim SS7 Netz…es ist kacke…aber wir haben nicht besseres.

„Works as designed“ :wink:

Ich hab schon Leute mit 30+ Jahren und 0 Jahren Erfahrung pfuschen gesehen, da war dann die Programmiersprache egal.

Denke dass man da wirklich unterscheiden muss.

„IT“ im Sinne von Windows Admin (dem Manager sein Word/Outlook?PowerPoint konfigurieren, „Have you tried to turn it off & on again?“), Neztwerkadmin („Kabellutscher“), oder einem Spezialisten fuer AI/Machine Learning, dem Frontendentwickler der auf react schwoert („its from Facebook, its awesome“), usw. usf.

Die Bandbreite ist da enorm, zB. selbst wenn nicht jeder alles gleich gut koennen muss bei DevOps, sollte jeder zumindest wissen wie die Abhaengigkeiten so sind.

Tatsache ist: Das war schon immer so.

Das braucht man auch keinen „allgemeinen Kulturpessimismus“ dazugeben, zB. VW hat seine Kunden belogen & betrogen, Facebook & Google verdienen sich dumm & daemlich mit Werbung & unseren Daten, die Forschungsabteilungen bei oeffentlichen Instituten bringen nix ausser Geld zu verbrennen, SAP arbeitet nach dem Prinzip „wenn Tumore sich so schnell festsetzen und verbreiten koennen, dann koennen wir das auch“, jede Firma braucht „IT’ler“, viele wollen die aber nicht fest einstellen, Zeit-/Leiharbeitsfirmen schimpfen sich „Consultancies“…

Nichts davon ist neu.

„The way you see the world says nothing about the world and everything about you“

:wink:

Muss zugeben dass ich mich persoenlich immer weniger fuer „IT“ bzw., SW Entwicklung interessiere, speziell in meiner Freizeit mache ich da nix mehr, seit langem, vielleicht schaffe ich es dass mein jetztiger Job mein letzter IT Job ist, wenn nicht ganz, dann zumindest als Festangestellter.

Der angesprochene „Churn“ hat aber zugenommen, und es wird meinem Eindruck nach immer weniger Wert auf Dinge gelegt, die ich eigentlich für wichtig halte.

Es mag abgedroschen klingen, aber … wenn ich heute in meinem C:\Develop\Old\__backup\fromPentium2\_old-Verzeichnis eine myFirstAwtProject_backup_0021.zip finde, dann packe ich die aus, mach’ sie in Eclipse auf, in dem Moment ist sie auch schon compiliert und dann kann ich sie starten.

Wenn heute jemand ein Projekt übernehmen soll, das mit Angular, AngularJS, Angular2 o.ä. geschrieben ist, dann ist der - und das muss man so profan sagen - gefickt, wenn er eben nur React kennt. Alles, was dann gemacht werden kann, wird im Endeffekt darauf rauslaufen, das ganze neu zu schreiben, mit dem Framework, das derjenige halt zufällig kennt, … bis er dann - wegen seiner langjähigen Erfahrung :roll_eyes: - zum Senior Level Organization Technology Head (SLOTH) befördert wird, und den Scheck unterschreibt, mit dem sein Nachfolger dafür bezahlt wird, das ganze dann mit VueJS neu zu machen, weil derjenige halt React nicht kennt.

Kurz: Nachhaltigkeit scheint keine Rolle mehr zu spielen.

(Und weil du auch von Forschunsabteilungen geredet hast: Nachhaltigkeit steht nicht im Kontrast zu Innovation. Im Gegenteil. Als jemand, der 10 Jahre in der „angewandten (IT-) Forschung“ gearbeitet hat, kann ich eines mit Sicherheit sagen: Da wird ein Haufen haarsträubender Müll produziert, der dann, „wenn das Projekt zuende ist“, in irgendeinem filer://archive/2012_InnovationCluster/Results_final.zip-Archiv landet. Dort von vornherein mehr Wert auf Nachhaltigkeit zu legen, würde den Transfer und die Nutzbarmachung der „Forschungs“-Ergebnisse für die Industrie sicher verbessern. Und vieles davon ist eben nur technisch Müll, aber nicht konzeptuell)

Klingt als würdest du auch bald Visitenkarten im 20:9-Format brauchen :smiley: