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
Leistung · Befähigung
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
Befähigung ist kein Selbstzweck. Sie soll drei Dinge bewirken — und daran lässt sie sich messen.
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.
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.
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.
Unternehmen mit eigener Entwicklung, die den Weg gehen wollen, aber nicht wissen, wo sie ansetzen — vom einzelnen Team bis zur ganzen Abteilung.
An Ihrem laufenden Vorhaben, nicht an einer Übungsaufgabe. Was dabei entsteht, ist Ihre Software und bleibt es.
Ein Team, das ohne uns liefert. Dazu die Leitplanken, Prüfschritte und Werkzeugkette, mit denen es das verlässlich tut.
Ihr Team sagt in normalen Sätzen, was gebraucht wird. Kein Lastenheft.
Datenmodell, Oberfläche und Abläufe entstehen im Dialog mit den Modellen.
Jedes Ergebnis wird fachlich geprüft — das bleibt Aufgabe von Menschen.
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
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
Ein vollständiges Haus, kein Modul: von der ersten Kundenanfrage bis zur Steuererklärung.
Branchenlösung für Dienstleister
Für Gebäude-, Fenster- und Fassadenreinigung: der gesamte Weg vom Auftrag bis zur Rechnung.
Infrastruktur
Als Ersatz für Exchange gedacht — und deshalb an dessen Protokollen gemessen, nicht an einem Prototyp.
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
Kein Spielzeug zum Üben, sondern das, was ohnehin ansteht. Die Bandbreite reicht vom internen Werkzeug bis zur Ablösung einer gewachsenen Tabellenlandschaft.
Werkzeuge für einen konkreten Ablauf im Haus: erfassen, prüfen, freigeben, auswerten — zugeschnitten statt von der Stange.
Zugänge nach außen, über die Aufträge, Belege und Stände abgerufen werden, ohne dass jemand Mails hin- und herschickt.
Verbindungen zwischen Systemen, die bisher nicht miteinander sprechen — inklusive der Regeln, die dabei gelten sollen.
Excel-Landschaften, die niemand mehr überblickt, werden zu einer Anwendung mit klaren Zuständigkeiten.
Die Arbeitsweise
Links steht, was ein Entwickler sagt. Rechts, was daraus wird. Auffällig ist, was der Mensch beiträgt: Urteil, Grenzfälle, Architekturentscheidungen. Nicht Tipparbeit.
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.“
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;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.“
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 };}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.“
// 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);}Anforderung
„Und schreib die Tests dazu. Besonders den Grenzfall bei genau 25.000 € — da liegt erfahrungsgemäß der Fehler.“
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.
Beschreiben Sie Ihr Vorhaben in drei Sätzen. Wir sagen Ihnen ehrlich, ob Ihr Team dafür der richtige Ausgangspunkt ist.