• HaraldvonBlauzahn@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 day ago

    Also ich kann als einzelner Software-Entwickler mit KI durchaus produktiver sein. Nicht 10x aber nehmen wir mal an es wäre 10x.

    Es ist aber ein Mißverständnis vor allem von Managern und unerfahrenen Programmierabfängern, dass Softwareentwickler vor allen Dingen Code eintippen.

    Wenn man als Fachexperte in 5 Jahren eine spezialisierte Software mit 60000 Zeilen Code entwickelt, ist das sehr sehr produktiv. Das sind 50 Zeilen Code pro Arbeitstag. Wenn diese 60000 Zeilen weitgehend fehlerfrei sind und z.B. mehrere CPU Cores nutzen , ist das schon ziemlich gut.

    Wenn ein Einzelentwickler in 20 Jahren eine Software von 200000 Zeilen Umfang entwickelt, ist das eine Reife Leistung.

    Wenn eine hundertköpfige Abteilung eines Industrieunternehmens in 15 Jahren eine Software von 5 Millionen Zeilen Code entwickelt, ist das eine sehr grosse und komplexe Software, die ein Einzelner nicht überblicken wird. Das sind 14 Zeilen Code pro Tag und Nase.

    Offensichtlich tun Softwareentwickler im Wesentlichen etwas anderes, als Code einzutippen.

    Folglich würde, selbst wenn man die Zeit für die Eingabe auf Null reduzieren könnte, und der Code nicht mehr Fehler als vorher hätte, dies die Zeit für die Entwicklung nur völlig unwesentlich beschleunigen.

    Mit GenAI generierter Code hat aber zwangsläufig mehr Fehler. Das frisst, bei Leuten die wirklich programmieren können, jeden Zeitvorteil bei der Eingabe auf, denn Fehler in Code suchen ist viel zeitaufwendiger als Code eingeben.

    • setsubyou@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      24 hours ago

      Bei mir sind es über 35 Jahre und ca 25 davon professionell. Beim Code eintippen wenn ich schon weiß was ich machen muss bin ich recht schnell. Da spare ich keine Zeit mit KI.

      Was “spezialisierte Software” angeht, ist das wichtigste was ich in den letzten 20 Jahren bei meinem momentanen AG geschrieben habe nur so 10k Zeilen Python. Selbst wenn das KI schneller tippen könnte ist da nicht viel zu holen. Der Code war jetzt fast 20 Jahre lang absolut kritisch für uns und wir haben mehrmals versucht ihn mit was fertigem zu ersetzen und es ging im Prinzip nicht weil die für uns nicht genug skaliert haben. Warum? Weil ich exakt die Probleme gelöst habe die wir mit dem Vorgänger hatten und wegen denen der nicht skaliert hat. Verteilte parallele Systeme sind schwierig, die tippt man nicht mal eben so runter und sie funktionieren dann einfach. Wahrscheinlich auch noch eine ganze Weile nicht mit KI.

      Aber mein AG hat mich eben nicht als Experte für exakt ein Feld eingesetzt. Nicht mal nur als Experte für Entwicklung. Und wenn man ständig auf anderen Gebieten unterwegs ist, für andere Plattformen entwickelt (und zwar wirklich die volle Bandbreite mit mehreren kommerziellen UNIXen, IBM i, ganz früher auch Exoten wie Novell Netware, usw. neben den Consumer-Systemen), andere Sprachen nutzt (deutlich zweistellig und manchmal nur für eine Sache, z.B. Objective C und Swift nur ein paar Produkte für macOS oder iOS, oder Terraform und Puppet weil das IT-Team überlastet ist), usw., da fällt dann schon viel Recherche an. Und das ist eine Sache wo ich privat gemerkt habe dass sie deutlich schneller für mich wird wenn ich Tools wie Claude Code nutzen kann (darf ich bei meinem AG nicht). Der Anfang mit was neuem von fast 0. Oder das wieder Reindenken wenn man was nach Monaten mal wieder anfasst.

      In den letzten zwei Jahren ist mein AG dann komplett durchgedreht und hat angefangen mit Demo Driven Entwicklung (nenne ich mal so). So nach dem Motto wir brauchen für das neue Produkt noch eine Anwendung die XYZ macht, kannst du was machen, nächste Woche ist Demo für unseren Vice President, können wir da schon was zeigen? Und dann halt immer weiter so: Wir brauchen noch X Feature, nächste Woche ist wieder Demo, können wir das da zeigen? Also im Prinzip rapid prototyping aber der Prototyp ist das Produkt. Im Prinzip behandelt mein AG mich so als wäre ich selbst eine KI :)

      Naja die KI die ich bei meinem AG nutzen darf kann das alles nicht, aber ich denk halt wenn ich z.B. Claude Code benutzen dürfte dann hätte der da auch viel von hingekriegt (jedenfalls seit Opus 4.5). Wenn man was komplett neues macht sind diese Tools eine kurze Zeit lang brilliant bis es zu komplex wird. Und hinterher aufräumen muss man sowieso. Ok, wahrscheinlich nicht ich, ich hab nämlich langsam keine Lust mehr.

      Auf der anderen Seite arbeite ich auch an klassischen Projekten mit sehr vielen (hunderte) Entwicklern mit. Und da fressen z.B. auch die Reviews viel Zeit weil da auch viele unerfahrene Leute dabei sind. Vor ein paar Tagen hatte ich einen ziemlich extremen Fall wo ich was reviewen sollte wo der Entwickler es geschafft hat in vielleicht 50 Zeilen zweimal Zugriffe auf schon freigegebenen Speicher einzubauen. Unsere KI war begeistert und hat geschwärmt wie toll der Code ist. Da wäre es leicht zu sagen dass die KI nichts bringt. Vor allem wenn man den Fehler schon gesehen hat.

      Aber das ist ein Anwenderfehler! Als ich dann speziell nach den relevanten Zeilen gefragt habe hat das Tool den Tonfall komplett geändert und korrekt die kritischen Fehler identifiziert, erklärt, und einen Fix vorgeschlagen. Das ist etwas, das ich bei unseren Tools generell gemerkt habe: Wenn man speziell nach bestimmten Stellen fragt werden die Reviews besser. Also man kann sich einfach zwei Minuten Zeit nehmen und Fragen zu einzelnen Funktionen, Blöcken, etc. fragen und die fängt an solche Fehler zu finden. Aus meiner Erfahrung außerhalb meines AG weiß ich auch dass andere Tools und bessere Modelle das deutlich weniger brauchen. Und man könnte das sicher auch automatisieren, es gibt ja auch auf Reviews spezialisierte KI-Tools, haben wir nur bei meinem AG nicht.

      Aber wenn er das gewusst hätte und KI verwendet hätte, oder vielleicht sogar was automatisches da wäre, dann hätte mir das ein paar Stunden gespart weil wenn ich das im Review ablehne, dann ist das ja nicht damit getan einfach Nein zu sagen, oder nur kurz das Problem in einen Kommentar zu tippen. Wenn er es mit KI gefunden hätte, dann hätte der das in einer Minute gesehen und wahrscheinlich auch repariert, und dann wäre nicht nur mein Review einfacher, und das des zweiten Reviewers, sondern sein Bugfix wäre auch ne Woche früher im Produkt gewesen, und das ist dann für das Management auch ne Woche Zeitersparnis, auch wenn ein Teil davon z.B. nur Warten auf CI war, und ein Teil nur dass er nicht sofort Zeit hatte den Fix zu reparieren, und nicht alles aktive Arbeit.

      Was man auch manchmal gut der KI überlassen kann ist Code der nicht im Produkt landet. Ich hab z.B. letztens für Spaß eine iOS-App gebaut die u.a. einen Python-Interpreter einbettet. Das ist alles nicht so kompliziert. Aber bei sowas ist es mit dem Interpreter nicht getan weil man auf iOS keine binären Erweiterungen nachladen kann. Man muss sich also vorher eine Liste mit Paketen machen die man haben will und die dann alle auch bauen damit man sie mit der App zusammen ausliefern kann. Also hab ich ein kleines Framework dafür geschrieben, Python-Pakete für iOS zu bauen wo jedes Paket im Prinzip ein Skript hat das genau dieses Paket baut. Jetzt ist aber die Sache dass die meisten Python-Pakete zwar auf iOS laufen würden, es aber nicht unterstützen, und auch keinen richtigen Mechanismus für cross builds haben.

      Das ist wo da die KI ins Spiel kommt. Für die meisten Pakete konnte ich das einfach mal Claude Code überlassen. Der hat selbständig genauso rumprobiert wie ich es wahrscheinlich selbst auch gemacht hätte und irgendwann ist er bei den meisten Paketen an einen Punkt gekommen wo wir binaries für macOS, den iOS-Simulator und iOS-Geräte hatten. Das hätte von Hand viel Zeit gefressen, weil man bei sowas einen Großteil der Zeit einfach nur auf die builds wartet, aber auch nicht lang genug, dass es sich lohnen würde was anderes zu machen, weil der Kontextwechsel zu teuer ist. Und zwar auch bei den Paketen wo man eigentlich nichts besonderes tun muss.

      Also ich hab schon genug Anwendungsfälle wo es nicht strikt um das Eintippen von Code geht. Das da oben sind alles Beispiele wo die KI vielleicht auch Code schreibt, aber der Großteil der Arbeit ist was anderes bzw. der Code ist nicht der der im fertigen Produkt landet. Und ich denke dass man da auch definitiv noch mehr finden könnte, wie gesagt mein AG pusht zwar KI, schränkt uns bei der Auswahl der Tools aber stark ein. Von irgendwelchen Integrationen mit Kram wie Jira oder unserem CI-System kann ich z.B. nur träumen.

    • HaraldvonBlauzahn@feddit.org
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      Übrigens ist das ein bisschen ähnlich wie dass die Mathe-Übungsaufgaben eines Mittelschülers oder eine Hausarbeit an der Uni nur ein Nebenprodukt von was anderem ist, nämlich dem Lernen. Deswegen bringt es nichts, die Lösung der Matheaufgaben mit GenAI zu erstellen.