Connect with us

Entwicklung & Code

Vibe Coding: Wie KI komplette Software erstellt


In Entwicklerkreisen wird aktuell die Idee des Vibe Coding heiß diskutiert. Der Ex-OpenAI-Forscher Andrej Karpathy hat diesen Begriff in einem Beitrag auf X geprägt, um das Programmieren mit maximaler Unterstützung durch künstliche Intelligenz zu beschreiben.

Beim Vibe Coding überlässt der Mensch die grundlegenden Architektur- und Technologieentscheidungen vollständig der KI. Er gibt nur noch das Ziel in einem Prompt vor und lässt der KI auf dem Weg dorthin freie Hand. Falls er mit dem Ergebnis noch nicht zufrieden ist, gibt er der KI weitere Anweisungen und wiederholt diesen Vorgang so lange, bis das Programm seinen Vorstellungen entspricht.

Die KI nimmt beim Vibe Coding also nicht mehr nur eine unterstützende Rolle ein, sondern wird zum ausführenden Organ, das eigene Entscheidungen trifft. Anhand des Vibe Coding lässt sich also auch die Weiterentwicklung vom klassischen LLM zum KI-Agenten illustrieren.




Goetz Markgraf ist Consultant bei der codecentric AG. Als Softwareentwickler und Product Owner vermittelt erzwischen Technik und Fachbereich. Er beschäftigt sich seit 2023 mit KI-gestützter Softwareentwicklung.

Was erhoffen sich Programmierer vom Vibe Coding? Zunächst möchten sie den Entwicklungsprozess stark beschleunigen, da die KI auch im Vergleich mit erfahrenen Developern nur den Bruchteil der Zeit benötigt, um eine Aufgabe in Code umzusetzen. Außerdem soll Vibe Coding Menschen mit weniger technischem Hintergrund in die Lage versetzen, brauchbare Software zu entwickeln. Das entlastet Softwareentwicklungsteams, die sich auf andere, gegebenenfalls anspruchsvollere Aufgaben konzentrieren können.

Aber auch ohne den KI-generierten Code am Ende tatsächlich produktiv einzusetzen, birgt Vibe Coding Potenzial: Man kann damit in kürzester Zeit erste Tests durchführen und so klären, ob sich eine Idee für die Software überhaupt umsetzen lässt. Mit den KI-Generatoren lassen sich schnell mehrere Konzepte austesten, um das aussichtsreichste zu finden. Die Entwicklung von Prototypen gestaltet sich dadurch deutlich effizienter.



Source link

Weiterlesen
Kommentar schreiben

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Entwicklung & Code

Die Produktwerker: Das Scrum Guide Expansion Pack aus Sicht von Product Ownern


Der Scrum Guide selbst ist seit 2020 unverändert – aber rund um Jeff Sutherland ist nun das Scrum Guide Expansion Pack erschienen. Dominique Winter spricht in dieser Folge mit Oliver Winter darüber, was dieses neue Dokument für Product Owner bedeutet – und was davon hilfreich sein kann.


Product Owner Days, Konferenz in Köln, 2. und 3. April 2025

Product Owner Days, Konferenz in Köln, 2. und 3. April 2025

(Bild: deagreez/123rf.com)

So geht Produktmanagement: Auf der Online-Konferenz Product Owner Day von dpunkt.verlag und iX am 13. November 2025 können Product Owner, Produktmanagerinnen und Service Request Manager ihren Methodenkoffer erweitern, sich vernetzen und von den Good Practices anderer Unternehmen inspirieren lassen.

Denn das Expansion Pack bringt einiges mit, unter anderem:

  • neue Rollen wie die des „Stakeholders“ oder „Supporters“
  • explizite Erwähnung, dass das Scrum-Team für die Product Discovery verantwortlich ist
  • einen stärkeren Fokus auf Outcome statt nur Output

Besonders spannend: Discovery wird im Expansion Pack als expliziter Teil von Scrum verstanden. Das bringt viele Teams näher an ihre gelebte Realität: Entscheidungen auf Basis von echten Erkenntnissen, nicht bloß basierend auf Annahmen oder Feature-Wünschen außerhalb des Teams.

Auch die Rolle des Product Owners wird geschärft: Weg vom reinen Backlog-Verwalter, hin zur echten Produktverantwortung – mit strategischem Denken, Marktverständnis und Führungskompetenz auf Augenhöhe.

Doch es gibt auch kritische Punkte: Die neue Trennung zwischen „Output Done“ und „Outcome Done“ wird sicher irritieren – und auch die neue Supporter-Rolle wirft Fragen auf. Nicht jede zusätzliche Erklärung ist automatisch ein Fortschritt. Und nicht jede Ergänzung passt in jeden Kontext.

Dominique Winter und Oliver Winter nehmen das Expansion Pack auseinander – konstruktiv, praxisnah und mit Blick auf echte Herausforderungen im Alltag von Product Ownern. Ihre Empfehlung: Nicht als neue Anleitung verstehen, sondern als Impuls, um die eigene Praxis zu reflektieren und weiterzuentwickeln.

Außerdem werfen sie einen Blick auf das Kapitel zu künstlicher Intelligenz im Scrum-Kontext – und diskutieren, wo hier Potenzial steckt (und wo eher Wunschdenken).

Die aktuelle Ausgabe des Podcasts steht auch im Blog der Produktwerker bereit: „Scrum Guide Expansion Pack aus Sicht von Product Owner„.


(mai)



Source link

Weiterlesen

Entwicklung & Code

Visual Studio Code 1.102 bringt neue Features für Copilot Chat und MCP-Support


Microsofts freier Sourcecode-Editor Visual Studio Code hat in Version 1.102 einige Neuerungen zu bieten. Das Juni-Release bringt zusätzliche Funktionen für den KI-basierten GitHub Copilot Chat, allgemeinen Support für das Model Context Protocol (MCP) und Updates für die Barrierefreiheit.

Kürzlich hat Microsoft verkündet, seine KI-Funktionen für Visual Studio Code (VS Code) quelloffen verfügbar zu machen. Im Rahmen dessen hat das Unternehmen bereits die Copilot-Chat-Erweiterung Open Source gestellt. In diesem Release von VS Code stehen außerdem neue Funktionen bereit.

Neben den vordefinierten Chatmodi „Ask“, „Edit“ und „Agent“ können Entwicklerinnen und Entwickler seit dem letzten Release als Preview eigene Modi mit spezifischen Anweisungen und einem Set erlaubter Tools erstellen, nach denen sich das Large Language Model (LLM) richten soll. Nun können sie auch festlegen, welches Sprachmodell für den Chatmodus eingesetzt werden soll, indem sie die model-Metdateneigenschaft zur Datei chatmode.md hinzufügen und den Model Identifier angeben. Die Modellinfos sind mithilfe des Autovervollständigungs-Tools IntelliSense verfügbar.


Auswahl des gewünschten LLM im benutzerdefinierten Chatmodus

Auswahl des gewünschten LLM im benutzerdefinierten Chatmodus

Auswahl des gewünschten LLM im benutzerdefinierten Chatmodus

(Bild: Microsoft)

Daneben bietet der Editor für Chatmodi, Prompts und Anweisungsdateien nun Vervollständigung, Validierung und Hovern für alle unterstützten Metadateneigenschaften. Das Einstellungs-Icon Configure Chat in der Chat-View-Toolbar erlaubt das Verwalten benutzerdefinierter Modi sowie wiederverwendbarer Anweisungen, Prompts und Toolsets:


In der Toolbar der Chat-Ansicht erscheint das Icon "Configure Chat".

In der Toolbar der Chat-Ansicht erscheint das Icon "Configure Chat".

In der Toolbar der Chat-Ansicht erscheint das Icon „Configure Chat“.

(Bild: Microsoft)

Die Auswahl von Modes zeigt dabei alle aktuell installierten benutzerdefinierten Modi und ermöglicht das Öffnen, Erstellen oder Löschen eines Modus. Zahlreiche weitere Updates zum Copilot Chat lassen sich im Ankündigungsbeitrag der neuen VS-Code-Version einsehen.

Der Support für das Model Context Protocol ist nun in VS Code allgemein verfügbar. Mit diesem Standard, der KI-Modellen die Interaktion mit externen Tools und Services durch ein einheitliches Interface erlaubt, lässt sich der in VS Code verfügbare Agent Mode erweitern – etwa um eine Anbindung an Datenbanken oder um das Aufrufen von APIs. Zudem können Unternehmen nun die Verfügbarkeit von MCP-Servern mithilfe einer GitHub-Copilot-Richtlinie kontrollieren.

Um direkt loszulegen, stellt das VS-Code-Team eine kuratierte Liste beliebter MCP-Server für den Agent Mode bereit.

Regelmäßig führt VS Code neue Features ein, die die Barrierefreiheit verbessern sollen. In diesem Release sind drei entsprechende Neuerungen an Bord:

Der Befehl Keep All Edits zum Annehmen aller Änderungen lässt sich auch dann ausführen, während der Fokus auf dem Editor liegt. Bisher musste dafür der Fokus auf der Chatansicht liegen. Bei einem Rendering-Fehler im Chat werden Screenreader-User nun benachrichtigt und können diese Information mittels Keyboard fokussieren, und wenn der Chat eine User-Aktion benötigt, ertönt ein akustisches Signal.

Weitere Details zum Juni-Update VS Code 1.102 lassen sich dem Ankündigungsbeitrag entnehmen. Ebenfalls aktualisiert wurden die VS-Code-Erweiterungen für Python, Pylance and Jupyter, wie ein dedizierter Blogeintrag informiert.


(mai)



Source link

Weiterlesen

Entwicklung & Code

Datenparallele Typen in C++26: Bedingte Ausführung von Operationen


Leider habe ich in meinem letzten Beitrag „Datenparallele Typen in C++26: ein Beispiel aus der Praxis“ vergessen, eine Funktion der neuen Bibliothek vorzustellen. Das hole ich in diesem Artikel nach.


Rainer Grimm

Rainer Grimm

Rainer Grimm ist seit vielen Jahren als Softwarearchitekt, Team- und Schulungsleiter tätig. Er schreibt gerne Artikel zu den Programmiersprachen C++, Python und Haskell, spricht aber auch gerne und häufig auf Fachkonferenzen. Auf seinem Blog Modernes C++ beschäftigt er sich intensiv mit seiner Leidenschaft C++.

Das neue Schlüsselwort where erzeugt einen sogenannten Where-Ausdruck. Damit lassen sich die Elemente eines SIMD-Vektors bedingt ansprechen.

Folgendes Beispiel bringt dieses Verhalten auf den Punkt:


// where.cpp

#include 
#include 
#include 
namespace stdx = std::experimental;
 
void println(std::string_view name, auto const& a)
{
    std::cout << name << ": ";
    for (std::size_t i{}; i != std::size(a); ++i)
        std::cout << a[i] << ' ';
    std::cout << '\n';
}
 
template
stdx::simd my_abs(stdx::simd x)
{
    where(x < 0, x) = -x; // Set elements where x is negative to their absolute value       
    return x;
}
 
int main()
{
    const stdx::native_simd a = 1;
    println("a", a);
 
    const stdx::native_simd b([](int i) { return i - 2; });
    println("b", b);
 
    const auto c = a + b;
    println("c", c);
 
    const auto d = my_abs(c);
    println("d", d);
 
}


In der Funktion my_abs kommt die where-Funktion zum Einsatz: where(x < 0, x) = -x; bewirkt, dass alle Elemente des SIMD-Vektors, die kleiner als Null sind, auf ihren absoluten Wert gesetzt werden.


Beispielcode-Ausgabe

Beispielcode-Ausgabe

Der Screenshot zeigt die Ausgabe des Beispielcodes.

In diesem Fall kommen SSE2-Befehle zum Einsatz. Der SIMD-Vektor ist 128 Bit groß.

Die where-Expression kann mit einem bool-Ausdruck oder einer simd_mask parametrisiert werden.

Obiges Codebeispiel lässt sich auch mit einer simd_mask implementieren. Folgender Code zeigt die Umsetzung:


// whereMask.cpp

#include 
#include 
#include 
namespace stdx = std::experimental;
 
void println(std::string_view name, auto const& a)
{
    std::cout << std::boolalpha << name << ": ";
    for (std::size_t i{}; i != std::size(a); ++i)
        std::cout << a[i] << ' ';
    std::cout << '\n';
}

 
int main()
{
    const stdx::native_simd a = 1;
    println("a", a);
 
    const stdx::native_simd b([](int i) { return i - 2; });
    println("b", b);
 
    const auto c = a + b;
    println("c", c);
 
    const stdx::native_simd_mask x = c < 0; 
    println("x", x);

    auto d  = c;
    where(x, d) *= -1; 
    println("d", d);
 
}


Beginnen möchte ich meine Erläuterung mit den letzten fünf Zeilen der Main-Funktion. Zuerst erzeuge ich die simd_mask x, indem das Prädikat c < 0 auf jedes Element des SIMD-Vektors c angewendet wird.

Die Maske x hat die gleiche Länge wie der SIMD- Vektor, besitzt aber nur Wahrheitswerte. Damit diese Wahrheitswerte als true oder false und nicht als 1 oder 0 dargestellt werden, habe ich der Funktion println den Streammanipulator std::boolalpha hinzugefügt.

Zusätzlich muss ich den SIMD-Vektor d mit c initialisieren, da c konstant ist. Nun lässt sich die Expression where(x, d) *= -1; auf d anwenden. Dabei wird jedes Element des SIMD-Vektors negiert, wenn die Maske den Wert true besitzt.


Screenshot Ausgabe des zweiten Codebeispiels

Screenshot Ausgabe des zweiten Codebeispiels

Der Screenshot zeigt die Ausgabe des Codes mit simd_mask.

Der Datentyp simd_mask ist dem Datentyp simd sehr ähnlich. Der wesentliche Unterschied besteht darin, dass simd alle Standard-Ganzzahltypen, Zeichentypen und die Typen float und double annehmen kann. Im Gegensatz dazu unterstützt simd_mask nur Wahrheitswerte.

Die Definition von simd_mask sieht folgendermaßen aus:


template
class basic_simd_mask


Der Abi-Tag bestimmt die Anzahl der Elemente und deren Speicherplatz. Zur Vollständigkeit sind hier noch einmal die ABI-Tags:

  • scalar: Speichern eines einzelnen Elements
  • fixed_size: Speichern einer bestimmten Anzahl von Elementen
  • compatible: gewährleistet ABI-Kompatibilität
  • native: am effizientesten
  • max_fixed_size: maximale Anzahl von Elementen, die von fixed_size garantiert unterstützt werden

Entsprechend zu simd besitzt simd_mask auch zwei Aliase:


template< size_t Bytes, int N >
using fixed_size_simd_mask = simd_mask>

template< size_t Bytes >
using native_simd_mask = simd_mask>


In meinem vorerst letzten Artikel über data-parallel types möchte ich auf die besonderen Funktionen dafür eingehen.


(rme)



Source link

Weiterlesen

Beliebt