• setsubyou@lemmy.world
    link
    fedilink
    arrow-up
    28
    ·
    3 days ago

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

    Dann produziere ich also 10x soviel Code der reviewt werden muss, und zwar von Menschen, weil es nix bringt die KI zu fragen ob ihr eigener Code gut ist. Letztens als Reviewer wieder so einen Fix auf den Tisch bekommen wo die KI hoch begeistert war wie toll der Code war. Die zwei Stellen wo der Autor einer Variablen temporäre Objekte zugewiesen hat die direkt danach wieder zerstört werden hat sie nicht gesehen. Und ich bin nicht mal C+±Programmierer und habs gesehen.

    Aber sagen wir mal der Code geht flott durchs Review. Dann produziere ich 10x soviel Features die durch die QA müssen und dann zur Dokumentation. Die haben natürlich beide auch KI aber QA mit KI ist so eine Sache weil die beste QA für mich von kreativen Leuten kommt die sich komplett andere Nutzerverhalten vorstellen können etc. Die KI findet meiner Erfahrung nach nicht die wirklich schlimmen Bugs.

    Natürlich muss auch unser CI-System mehr stemmen. 10x soviel auf jeden Fall. Ok das kostet hauptsächlich Geld. Aber aufgebaut/skaliert muss es werden und das Budget muss auch jemand bewilligen.

    Naja egal, sagen wir die kriegen das irgendwie alles hin und ich kann meine 10x Features alle flott abliefern. Aber die Ideen und die Planung dafür macht die KI ja nicht. Ne KI die für mich in Meetings sitzt gibt es noch nicht. Also irgendwie 10x soviel Meetings irgendwie unterbringen.

    Also ein bissel geht sicher aber je größer die Firma desto weniger bleibt von den 10x übrig, wenn überhaupt was bleibt. Wenn die KI zuviele Bugs produziert die ich nicht sofort bemerke, kann es auch gut unter dem Strich zu einer Verschlechterung führen. Merkt man halt erst später.

    Und das ist nur IT wo lauter technikaffine neugierige Nerds sitzen. Anderswo kommen die Leute ja nichtmal damit klar wenn Excel anders aussieht, wie sollen die denn einen massiven Paradigmenwechsel vollziehen.

    Naja und meine corporate Realität ist dass auch wir in der IT, in einer IT-Firma die viel auf KI gesetzt hat, gar nicht die richtig coolen Tools kriegen. KI nur mit diesen approvedten Tools, nur diese Modelle, wenn nicht sicher harmlos dann sogar nur mit den bei uns selbst gehosteten Modellen. Jeden Montag komm ich von einem Wochenende mit Claude Code zurück und Arbeit mit KI-Unterstützung fühlt sich an wie Waten durch Schlamm.

    Also mich wundert das nicht wenn das jetzt wenigen was bringt. KI haben alleine ist halt eigentlich noch nicht viel wert.

    • 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.

    • primeapple@feddit.org
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      3 days ago

      Um mal ein bisschen zu differenzieren:

      Unser Backlog ist immer voll. Wenn ich ein Feature baue, sehe ich gleich drei andere Sachen, die verbessert werden müssten. Wenn die alle gemacht sind, hat IMMER irgendjemand eine Idee und wenn es nur für A/B Tests ist. Vieles davon sind auch Sachen, die man entweder sowieso machen muss (technische Schulden) oder die man sowieso probieren muss (A/B Tests). Da sollte die Meeting Last eigentlich gering gehalten werden können.

      Ich kann gerade wirklich nicht nachvollziehen, warum ihr so schlechte Modelle bekommt. OpenCode mit Github Copilot Integration und es ist ja quasi alles verfügbar, was man braucht?