Mindesterfahrung
5+ Jahre pro Entwickler
Testabdeckung
Teil der Lieferung
Einarbeitung
1–3 Wochen
Drei Modelle der Zusammenarbeit
| Modell | Passt, wenn … | Wer entscheidet Architektur | Typische Dauer |
|---|---|---|---|
| Projektteam | ihr ein abgegrenztes Vorhaben komplett abgeben wollt | wir, mit euch abgestimmt | 3–9 Monate |
| Team-Verstärkung | euer Team Kapazität oder Spezialwissen braucht | euer Team | laufend, ab 2 Tagen/Woche |
| Codebasis-Übernahme | ein bestehendes System weiterentwickelt oder betreut werden muss | gemeinsam, nach Assessment | unbefristet |
Womit wir täglich arbeiten
Keine Besetzungswechsel
Wer im Erstgespräch sitzt, arbeitet auch im Projekt. Wir wechseln Personen nicht ohne Absprache aus — Kontextverlust ist der teuerste Posten in jedem Softwareprojekt.
Vertretung ist geregelt
Mindestens zwei Personen kennen jedes Projekt. Urlaub, Krankheit oder ein Ausfall führen nicht dazu, dass euer Vorhaben stillsteht — das ist der handfeste Vorteil gegenüber einem einzelnen Freelancer.
Offener Zugriff
Ihr habt jederzeit Zugriff auf Repository, Tickets und Deployments. Kein Reporting-Theater, sondern der tatsächliche Stand — jeden Tag einsehbar.
Wie Code-Qualität entsteht
Tests von Anfang an
pytest für Geschäftslogik und Schnittstellen. Nicht 100 % Abdeckung um der Zahl willen, sondern Tests dort, wo Fehler teuer werden.
Reviews durch Zweite
Kein Merge ohne Review durch eine zweite Person. Das findet nicht nur Fehler, es verteilt auch das Wissen im Team.
Typannotationen
Vollständig typisierter Code mit mypy oder pyright in der CI. Das fängt eine ganze Fehlerklasse ab, bevor sie überhaupt läuft.
Automatisierte Pipeline
Linting, Formatierung, Tests und Typprüfung laufen bei jedem Push. Was rot ist, geht nicht live.
Migrationen mit Rückweg
Datenbankänderungen werden versioniert und sind rückrollbar. Ein Deployment darf niemals eine Einbahnstraße sein.
Dokumentation im Repo
Architekturentscheidungen, Setup und Betriebsanleitung liegen beim Code — nicht in einem Wiki, das nach sechs Monaten niemand mehr pflegt.
Python-Entwickler einstellen oder beauftragen?
| Kriterium | Festanstellung | Agentur | Freelancer |
|---|---|---|---|
| Verfügbar ab | 3–9 Monate (Suche) | 2–4 Wochen | 1–4 Wochen |
| Kosten pro Jahr | 70–95k € plus Nebenkosten | nach Aufwand, skalierbar | nach Aufwand, skalierbar |
| Vertretung bei Ausfall | im Team, falls vorhanden | vertraglich geregelt | keine |
| Spezialwissen (z. B. LLM) | schwer zu finden | im Haus vorhanden | je nach Person |
| Wissen bleibt im Unternehmen | ja | über Doku und Übergabe | meist nicht |
| Sinnvoll bei | dauerhafter Grundlast | Vorhaben mit klarem Ziel | klar umrissenen Aufgaben |
Die ehrliche Antwort: Wer dauerhaft Python-Entwicklung braucht, sollte einstellen. Eine Agentur lohnt sich für Vorhaben mit Anfang und Ende, für Spezialwissen, das sich keine Festanstellung trägt, und für die Zeit, in der die Suche nach eigenen Leuten noch läuft. Wir sagen das auch im Erstgespräch, wenn es auf euch zutrifft.
Was ihr bei der Übergabe bekommt
Repository mit Historie
Vollständige Git-Historie, keine Squash-Übergabe eines einzelnen Commits. Ihr könnt nachvollziehen, warum etwas so gebaut wurde, wie es gebaut wurde.
Setup in einem Befehl
Ein dokumentierter Weg vom leeren Rechner zur laufenden Entwicklungsumgebung. Wenn das nicht funktioniert, ist die Übergabe nicht fertig.
Runbook für den Betrieb
Was tun bei Ausfall, wie wird deployt, wo liegen Logs und Backups, welche externen Dienste hängen dran und was kosten sie.
Übergabegespräche
Zwei bis vier Termine mit eurem Team oder eurem nächsten Dienstleister. Wir beantworten Fragen auch danach noch — das gehört sich so.
Häufige Fragen zur Zusammenarbeit
Wer entwickelt konkret — Senior oder Junior?
Bei uns schreibt niemand Code, der nicht mindestens fünf Jahre Python-Erfahrung hat. Wir arbeiten in kleinen Besetzungen und verkaufen keine Teams, in denen eine erfahrene Person das Angebot schreibt und danach Berufsanfänger die Arbeit machen. Das ist der Grund, warum unsere Stundensätze nicht die günstigsten sind — und warum die Gesamtkosten trotzdem oft niedriger ausfallen.
Wem gehört der Code am Ende?
Euch, vollständig und ohne Einschränkung. Ihr bekommt das Repository mit vollständiger Historie, die Deployment-Konfiguration, die Dokumentation und ein Runbook für den Betrieb. Wir bauen keine Abhängigkeiten ein, die einen Wechsel künstlich erschweren — weder technisch noch vertraglich.
Was kostet ein Python-Entwickler bei euch?
Wir arbeiten mit Tagessätzen im mittleren dreistelligen Bereich, abhängig von Umfang und Laufzeit. Bei längeren Engagements sinkt der Satz. Für klar abgegrenzte Vorhaben bieten wir auch Festpreise an, allerdings erst nach einer bezahlten Analysephase — Festpreise auf Basis einer unklaren Anforderung sind für beide Seiten schlecht.
Könnt ihr unser bestehendes Team verstärken?
Ja, das ist eines von drei Modellen, in denen wir arbeiten. Wir kommen dann in eure Prozesse: euer Repository, euer Ticketsystem, eure Code-Review-Regeln, eure Stand-ups. Das funktioniert gut, wenn euer Team die Architekturentscheidungen behalten will und punktuell Kapazität oder Spezialwissen braucht.
Übernehmt ihr auch fremden, gewachsenen Python-Code?
Regelmäßig. Wir beginnen mit einem Assessment: Testabdeckung, Abhängigkeiten, Datenmodell, Deployment-Situation. Daraus entsteht eine Einschätzung, was tatsächlich Arbeit braucht und was besser in Ruhe gelassen wird. Nicht jeder alte Code muss modernisiert werden — vieles läuft und soll einfach weiterlaufen.
Wie lange dauert die Einarbeitung in unser Projekt?
Bei einer dokumentierten Codebasis mit Tests sind wir nach etwa einer Woche produktiv. Ohne Tests und Dokumentation dauert es zwei bis drei. Wir rechnen diese Zeit transparent ab und nutzen sie, um die Lücken zu schließen, die wir dabei finden — davon habt ihr auch nach uns noch etwas.
Arbeitet ihr remote oder vor Ort?
Überwiegend remote, mit regelmäßigen Terminen vor Ort, wenn es das Projekt braucht. Wir sitzen in Berlin und sind für Kundschaft in Deutschland gut erreichbar. Die Zusammenarbeit läuft über euer oder unser Ticketsystem, wöchentliche Zwischenstände und offenen Zugriff auf das Repository — ihr seht jederzeit, was entsteht.
Unsere Leistungsseiten im Überblick
Wir trennen bewusst zwischen der Frage, wen man beauftragt, und der Frage, wie entwickelt wird — je nachdem, wo ihr gerade steht, ist eine andere Seite die richtige.
Überblick
Software Agentur — Individualsoftware, Auswahl, Kosten, Standard vs. Eigenbau
Mehr erfahren →Beauftragung
Python Agentur — Auswahl, Kosten, Leistungen, LLM- und Agenten-Projekte
Mehr erfahren →Beauftragung
Django Agentur — Django und Django CMS als Projekt vergeben
Mehr erfahren →Technik
Django Entwicklung — DRF, Django Ninja, Admin, Celery, Deployment
Mehr erfahren →Web
Website erstellen lassen — Next.js und Vercel statt Baukasten, mit eingebauter Messung
Mehr erfahren →Bestand
Website-Relaunch — TYPO3 oder WordPress ablösen, ohne Sichtbarkeit zu verlieren
Mehr erfahren →KI
KI-Agenten entwickeln — Abgegrenzte Aufgabe, eigene Werkzeuge, prüfbares Ergebnis
Mehr erfahren →CMS
Plone Agentur — Enterprise-CMS für Institute, Migration auf Plone 6
Mehr erfahren →Weiterführende Artikel
Legacy
Legacy-Software modernisieren statt ersetzen
Artikel lesen →Vergabe
Lastenheft für Softwareprojekte: Was wirklich hineingehört
Artikel lesen →Entscheidung
Python-Agentur oder Freelancer? Die datenbasierte Entscheidungshilfe
Artikel lesen →Kosten
Was kostet Python-Webentwicklung? Preise und Projektbudgets
Artikel lesen →Ablauf
Von der Idee zur Python-Webanwendung: So läuft ein Agenturprojekt ab
Artikel lesen →Qualität
Technische Schulden: 6 Wege, ihnen zu begegnen
Artikel lesen →Stack
6 Gründe für einen langweiligen Tech-Stack
Artikel lesen →Grundlagen
Warum Python? Die Vorteile für moderne Unternehmenssoftware
Artikel lesen →/ Hintergrund & Wissen
Was einen guten Python-Entwickler ausmacht
Die Sprache selbst ist schnell gelernt — das ist einer der Gründe für Pythons Verbreitung. Der Unterschied zwischen jemandem, der Python schreiben kann, und jemandem, der wartbare Systeme baut, liegt woanders: im Datenmodell, in der Fehlerbehandlung, in der Frage, was passiert, wenn ein externer Dienst nicht antwortet.
Wir achten bei Einstellungen deshalb weniger auf Framework-Kenntnisse als auf Erfahrung mit Systemen, die längere Zeit im Betrieb waren. Wer einmal eine Migration auf einer Tabelle mit vielen Millionen Zeilen gemacht hat, trifft danach andere Entscheidungen als jemand, der nur auf der grünen Wiese gearbeitet hat.
Warum Testabdeckung keine Zahl ist
Eine Abdeckungsquote von 90 Prozent sagt wenig darüber aus, ob die richtigen Dinge getestet werden. Man erreicht sie leicht, indem man Getter und Konfigurationsdateien mitzählt, während die eigentliche Geschäftslogik ungeprüft bleibt.
Wir testen deshalb nach Risiko: alles, was Geld bewegt, Daten verändert oder mit externen Systemen spricht, hat Tests. Reine Darstellungslogik oft nicht. Das Ergebnis ist eine niedrigere Quote und eine höhere Sicherheit — und es macht die Testsuite schnell genug, dass sie tatsächlich bei jedem Commit läuft.
Zusammenarbeit mit internen Teams
Wenn wir ein bestehendes Team verstärken, übernehmen wir dessen Regeln, nicht umgekehrt. Euer Branching-Modell, eure Review-Vorgaben, eure Definition of Done. Das klingt selbstverständlich, ist es in der Praxis aber nicht — viele Dienstleister bringen ihre Prozesse mit und erzeugen damit Reibung, die niemandem nützt.
Was wir mitbringen, ist Erfahrung aus anderen Kontexten. Wenn uns etwas auffällt, sagen wir es — aber als Vorschlag, nicht als Bedingung. Die Entscheidung bleibt bei dem Team, das danach damit weiterlebt.