Zum Inhalt springen
ByteDialog

Leistung · Befähigung

Ihr Team lernt, Software mit KI zu bauen.

Ihre Entwickler beschreiben ein Vorhaben in normalen Sätzen und führen den Dialog mit den Modellen, bis eine lauffähige Anwendung dasteht. Getippter Code kommt darin nicht mehr vor — fachliches Urteil dagegen an jeder Stelle. Dieses Vorgehen geben wir weiter: nicht als Vortrag, sondern an dem, was bei Ihnen ansteht, und an konkreten Beispielen aus drei Anwendungen, die wir genau so gebaut haben.

Ziele

Schneller liefern. Weniger ausgeben.

Befähigung ist kein Selbstzweck. Sie soll drei Dinge bewirken — und daran lässt sie sich messen.

Ergebnisse in Tagen, nicht in Quartalen

Was am Montag besprochen wird, steht am Mittwoch als lauffähiger Stand. Wer früh sieht, was entsteht, korrigiert früh — und spart sich die Runde, in der eine fertige Anwendung am Bedarf vorbeigeht.

Weniger Aufwand je Anwendung

Teuer war nie das Denken, sondern das Aufschreiben und Übersetzen: Anforderungen in Dokumente, Dokumente in Code, und bei jeder Änderung von vorn. Fällt dieser Teil weg, liefert dieselbe Mannschaft mehr, ohne länger zu arbeiten.

Weniger Einkauf, mehr eigene Hand

Was das eigene Team bauen kann, muss nicht beauftragt werden. Das spart nicht nur das Honorar, sondern auch die Wochen zwischen Angebot, Abstimmung und Abnahme.

Zahlen nennen wir erst, wenn wir Ihren Fall kennen. Alles andere wäre geraten — und Sie würden es zu Recht nicht glauben.

Für wen

Unternehmen mit eigener Entwicklung, die den Weg gehen wollen, aber nicht wissen, wo sie ansetzen — vom einzelnen Team bis zur ganzen Abteilung.

Woran

An Ihrem laufenden Vorhaben, nicht an einer Übungsaufgabe. Was dabei entsteht, ist Ihre Software und bleibt es.

Was bleibt

Ein Team, das ohne uns liefert. Dazu die Leitplanken, Prüfschritte und Werkzeugkette, mit denen es das verlässlich tut.

BeschreibenEntwickler

Ihr Team sagt in normalen Sätzen, was gebraucht wird. Kein Lastenheft.

EntwurfModell

Datenmodell, Oberfläche und Abläufe entstehen im Dialog mit den Modellen.

PrüfungEntwickler

Jedes Ergebnis wird fachlich geprüft — das bleibt Aufgabe von Menschen.

BetriebModell

Auslieferung, Anbindung, Dokumentation. Auch das entsteht im Dialog.

Die hervorgehobenen Stationen bleiben bei Ihrem Team. Ein Modell schlägt vor, es verantwortet nicht — dieser Unterschied ist der Kern der Sache.

Der Beleg

Drei Anwendungen. Keine Zeile Code von Hand.

Wir behaupten nicht, dass es geht — wir haben es gemacht. Diese drei Anwendungen sind ausnahmslos mit KI-Modellen entstanden, im Dialog, ohne dass jemand eine Zeile Quellcode getippt hat. Was wir dabei gelernt haben, geben wir an Ihr Team weiter.

Warenwirtschaft und Finanzen

ERP-System

Ein vollständiges Haus, kein Modul: von der ersten Kundenanfrage bis zur Steuererklärung.

  • CRM und Auftragsmanagement
  • Finanzbuchhaltung mit Elster-Anbindung
  • Logistik und Lagerverwaltung

Branchenlösung für Dienstleister

Projektsteuerung

Für Gebäude-, Fenster- und Fassadenreinigung: der gesamte Weg vom Auftrag bis zur Rechnung.

  • Leistungsverzeichnisse erfassen
  • Arbeits- und Dienstpläne
  • Fakturierung

Infrastruktur

E-Mail-Gateway

Als Ersatz für Exchange gedacht — und deshalb an dessen Protokollen gemessen, nicht an einem Prototyp.

  • EWS und Microsoft Graph
  • IMAP, POP3 und SMTP
  • Kalender, Kontakte, Aufgaben

Alle drei laufen im Betrieb, nicht in einer Vorführung. Wer wissen will, wie so etwas ohne eigenes Zutun am Quellcode entsteht, bekommt den Verlauf zu sehen — nicht nur das Ergebnis.

Was dabei entsteht

Womit Teams typischerweise anfangen.

Kein Spielzeug zum Üben, sondern das, was ohnehin ansteht. Die Bandbreite reicht vom internen Werkzeug bis zur Ablösung einer gewachsenen Tabellenlandschaft.

Fachanwendungen

Werkzeuge für einen konkreten Ablauf im Haus: erfassen, prüfen, freigeben, auswerten — zugeschnitten statt von der Stange.

Portale für Kunden und Partner

Zugänge nach außen, über die Aufträge, Belege und Stände abgerufen werden, ohne dass jemand Mails hin- und herschickt.

Schnittstellen

Verbindungen zwischen Systemen, die bisher nicht miteinander sprechen — inklusive der Regeln, die dabei gelten sollen.

Ablösung gewachsener Tabellen

Excel-Landschaften, die niemand mehr überblickt, werden zu einer Anwendung mit klaren Zuständigkeiten.

Die Arbeitsweise

So arbeitet ein Entwickler mit einem Modell.

Links steht, was ein Entwickler sagt. Rechts, was daraus wird. Auffällig ist, was der Mensch beiträgt: Urteil, Grenzfälle, Architekturentscheidungen. Nicht Tipparbeit.

  1. Anforderung

    „Angebote mit Freigabe. Ab 25.000 € Vier-Augen-Prinzip, sonst eine Unterschrift. Fang beim Datenmodell an und halte die Wertgrenze an genau einer Stelle.“

    angebot.tsDatenmodell
    export type Status =  | "eingereicht"  | "in_freigabe"  | "freigegeben"  | "abgelehnt"; export type Angebot = {  id: string;  kunde: string;  betragNetto: number;  status: Status;  freigaben: Freigabe[];}; // Die Wertgrenze steht nur hier — nirgends sonst im Code.export const benoetigteFreigaben = (betragNetto: number) =>  betragNetto >= 25_000 ? 2 : 1;
  2. Anforderung

    „Der Status darf nicht frei setzbar sein, nur über erlaubte Übergänge. Sonst haben wir in zwei Monaten Datensätze, die es nicht geben dürfte.“

    uebergaenge.tsZustandsübergänge
    const ERLAUBT = {  eingereicht: ["in_freigabe", "abgelehnt"],  in_freigabe: ["freigegeben", "abgelehnt"],  freigegeben: [],  abgelehnt: [],} as const satisfies Record<Status, readonly Status[]>; export function wechsle(angebot: Angebot, ziel: Status): Angebot {  if (!ERLAUBT[angebot.status].includes(ziel)) {    throw new UngueltigerUebergang(angebot.status, ziel);  }  return { ...angebot, status: ziel };}
  3. Anforderung

    „Die Übersicht soll zeigen, wo etwas hängt — nicht alles auflisten. Und sie muss bei fünfstelligen Beständen sofort stehen, also serverseitig filtern.“

    offene-freigaben.tsAbfrage
    // Nur Wartendes, gefiltert in der Datenbank statt im Browser.// Index auf (status, eingereicht_am) liegt in der Migration daneben.export function offeneFreigaben(pruefer: PrueferId) {  return db    .from("angebote")    .where({ status: "in_freigabe" })    .whereNotExists(freigabeVon(pruefer))    .orderBy("eingereicht_am", "asc")    .limit(200);}
  4. Anforderung

    „Und schreib die Tests dazu. Besonders den Grenzfall bei genau 25.000 € — da liegt erfahrungsgemäß der Fehler.“

    freigabe.test.tsTests
    describe("benoetigteFreigaben", () => {  it("verlangt bei genau 25.000 € zwei Freigaben", () => {    expect(benoetigteFreigaben(25_000)).toBe(2);  });   it("verlangt knapp darunter nur eine", () => {    expect(benoetigteFreigaben(24_999.99)).toBe(1);  });}); describe("wechsle", () => {  it("verbietet den Sprung zu freigegeben", () => {    const a = { ...angebot, status: "eingereicht" } as const;    expect(() => wechsle(a, "freigegeben")).toThrow();  });});

Vier Sätze, vier Artefakte, keine Zeile getippter Code. Diesen Verlauf lesen zu können ist der halbe Weg — ihn selbst führen zu können der ganze. Genau dabei sitzen wir daneben.

Noch nicht sicher, ob Ihr Fall dazu passt?

Beschreiben Sie Ihr Vorhaben in drei Sätzen. Wir sagen Ihnen ehrlich, ob Ihr Team dafür der richtige Ausgangspunkt ist.

Gespräch vereinbaren