Zum Inhalt springen

Individualsoftware-Entwicklung

Individualsoftware mit Next.js

Software, die für ein Unternehmen gebaut wird statt aus einem Produkt konfiguriert. Was das kostet, was es bringt, und die Fälle, in denen Zukaufen die bessere Antwort ist.

Individualsoftware ist Software, die existiert, weil ein Unternehmen etwas Bestimmtes tut und kein Produkt dieses Etwas genau genug abbildet, um es zu verbiegen.

Das ist die ganze Definition, und es ist zugleich das Erste, was man prüfen sollte. Ein guter Teil dessen, was als Individualsoftware beauftragt wird, ist ein Produkt mit getauschtem Logo, und ein guter Teil dessen, was als Produkt gekauft wird, wird über zwei Jahre Umgehungen ohnehin zu Individualsoftware. Beides ist teuer und beides lässt sich im ersten Gespräch vermeiden.

Was das praktisch bedeutet

Die Arbeit hat fast immer eine von drei Formen.

Ein operatives System - das, worin ein Team den ganzen Tag arbeitet. Angebote, Aufträge, Fälle, Bestand, Termine, Freigaben. Es ersetzt meist eine Sammlung Tabellen, eine geerbte Anwendung, die niemand ändern kann, oder beides gleichzeitig.

Eine Oberfläche für Kunden über Systemen, die nie eine haben sollten. Ein Portal, eine Sendungsverfolgung, ein Selbstbedienungskonto, eine Buchung. Der schwierige Teil ist selten die Maske; er ist, dass die Daten dahinter in etwas Altem liegen und langsam antworten.

Ein internes Werkzeug, das existiert, weil ein Produkt das eine Wichtige nicht kann. Das sind die kleinsten und häufig die lohnendsten Projekte, denn die Alternative ist jemandes Arbeitswoche.

Warum serverseitig gerendert und nicht eine Single-Page-Anwendung

Jahrelang bedeutete eine Browser-Anwendung drei Dinge zu bauen: ein Frontend, eine API, die es versorgt, und den Klebstoff dazwischen. Ein großer Teil des Codes in diesen Systemen existierte nur, um Daten zwischen zwei Teilen derselben Anwendung zu bewegen.

Eine App-Router-Anwendung streicht diese Schicht für die meisten Masken. Der Server liest die Daten und rendert die Seite. Der Browser bekommt Markup statt eines Bundles, das anschließend die Daten nachfragt. JavaScript wird nur dort ausgeliefert, wo eine Interaktion es wirklich braucht, und in einem operativen System ist das eine Minderheit der Masken.

Die Folgen sind unspektakulär und sie summieren sich. Eine Sprache über die ganze Anwendung statt zweier. Ein Repository und ein Deployment statt zweier, die unabhängig versionieren. Eine Seite, die beim Ankommen richtig ist, statt einen Moment später. Und deutlich weniger Code, was die einzige zuverlässige Art ist, die Kosten des zweiten Jahres zu senken.

Welche Route wie rendert, bleibt eine Entscheidung und kein Standard, und sie ist das erste Architekturgespräch in jedem Bau. Das Rendering-Modell zeigt, was jede Option kostet.

Wo die Daten liegen, wird gleichzeitig entschieden

Eine individuelle Anwendung ist überwiegend ein Datenmodell mit Masken daran, also ist das Schema kein Detail für später.

Teuer umkehrbar sind die gewöhnlichen Entscheidungen. Was eine Entität ist und was ein Feld. Wo Geld und Datum liegen und in welchem Typ. Ob ein Datensatz gelöscht oder nur abgelöst werden kann. Ob ein Status eine Spalte ist oder eine Historie von Übergängen - und das ist der Unterschied zwischen einem System, das sagen kann, was passiert ist, und einem, das nur die Gegenwart beschreibt.

PostgreSQL ist bei diesen Bauten der Standard, aus Gründen, die auf der PostgreSQL-Seite stehen. Es ist ein Standard und keine Regel, und die eine echte betriebliche Falle - die Zahl der Verbindungen unter einer serverlosen Laufzeit - ist ein bekanntes Problem mit bekannter Antwort statt einer Überraschung.

Wie ein Projekt abläuft

In Phasen, jede endet mit etwas Ausgeliefertem.

Die erste Phase ist absichtlich klein. Sie nimmt den schmalsten Schnitt, der wirklich nützt - einen Ablauf von Anfang bis Ende statt des Skeletts von fünf - und stellt ihn den Leuten hin, die ihn benutzen werden. Das bewirkt zwei Dinge: die Architektur wird an echten Daten entschieden statt an einem Dokument, und alle haben eine ehrliche Grundlage, den Rest zu schätzen.

Der Umfang jeder Phase steht vor ihrem Beginn schriftlich fest. Ihre Entwickler reviewen ab der ersten Woche Pull Requests, wenn Sie welche haben, denn so übertragen sich die Konventionen, und es ist die einzige Variante, in der der Code nach uns wartbar bleibt.

Was Sie bekommen

Am Ende jeder Phase eine ausgelieferte Anwendung, die Sie benutzen können - keine Demo-Umgebung und keinen Branch.

Dazu: das Repository mit intakter Git-Historie und ohne Abhängigkeit von uns, um es zu bauen oder zu deployen. Eine Architekturnotiz, die sagt, welche Route wie rendert, wo die Client-Grenze liegt und warum, geschrieben während die Entscheidungen fielen und nicht nachträglich rekonstruiert. Die Datenbankmigrationen als Code, sodass das Schema eine Historie hat und nicht nur einen Ist-Zustand. Ein Deployment, das auf Ihrer Infrastruktur läuft, wenn das gefordert ist. Und eine Liste dessen, was wir nicht getan haben, mit Begründung, denn das bewusst Weggelassene ist der Teil, den eine Übergabe sonst verliert.

Wann das das falsche Projekt ist

Das gehört klar gesagt, denn die Antwort ist manchmal nein.

Wenn ein Produkt existiert, das achtzig Prozent erfüllt, und die anderen zwanzig Geschmack statt Prozess sind, kaufen Sie das Produkt. Konfiguration ist billiger als Code und bleibt es jedes Jahr.

Wenn gefordert sind ein paar Seiten und ein Kontaktformular, ist das eine Website. Ein Redaktionssystem mit guten Vorlagen dient Ihnen besser als eine Anwendung ohne Wartungsbudget dahinter.

Wenn der Prozess noch erfunden wird, friert Software eine Entscheidung ein, die niemand getroffen hat. Führen Sie ihn von Hand oder in einer Tabelle, bis die Form stillhält, und automatisieren Sie dann die Form, die überlebt hat.

Und wenn intern niemand das Ergebnis besitzt - keine Person, deren Arbeit besser wird, wenn es funktioniert -, wird es aufgegeben, egal wie gut es gebaut ist. Das ist der Fehler, den wir am häufigsten sehen, und der einzige, der nichts mit Entwicklung zu tun hat.

Umfang und Konditionen

Zusammenarbeit
Fester Umfang, schriftlich vereinbart, bevor die Arbeit beginnt. Kein Tagessatz gegen ein offenes Backlog.
Preis und Dauer
Beides wird je Projekt festgelegt, sobald der Umfang steht. Gemeinsam angeboten, bevor etwas gebaut wird.
Was wir von Ihnen brauchen
Eine Person, die entscheiden darf, und Zugang zu Ihrem Repository und Ticketsystem.
Nicht enthalten
Alles außerhalb des vereinbarten Umfangs. Es wird ein eigener Umfang statt eines Änderungsauftrags.
Kosten Dritter
Hosting, Lizenzen, API-Gebühren und SaaS-Abonnements schließen und zahlen Sie selbst.
Rechnungsstellung
Codefacture Yazılım A.Ş., Türkiye. EUR, USD oder GBP per Überweisung, ohne türkische Umsatzsteuer auf exportierte Leistungen.

Häufige Fragen

Was ist Individualsoftware und was nur eine Website?
Ob sie einen Zustand hält, zu dem jemand zurückkommt. Eine Website veröffentlicht Informationen; Software hat Datensätze, Rollen, einen Ablauf und eine Historie - ein Angebot, das zum Auftrag wird, ein Fall, den jemand nächsten Monat wieder aufmacht, ein Dashboard, das die operative Wahrheit ist und nicht ihr Bericht. Wenn gefordert sind Seiten und ein Formular, das jemandem eine Mail schickt, ist das eine Website und sollte auch so gebaut werden. Wenn Menschen täglich darin arbeiten, ist es Software, und die Entscheidungen sind ab Woche eins andere.
Warum Next.js für etwas, das keine öffentliche Website ist?
Weil die meiste Individualsoftware heute über einen Browser erreicht wird, und eine Browser-Anwendung früher ein eigenes Frontend, eine eigene API und zwei Deployments bedeutete. Eine serverseitig gerenderte Anwendung streicht diese Schicht für die Mehrheit der Masken - der Server liest die Daten und sendet die Seite, mit JavaScript nur dort, wo die Interaktion es braucht. Eine Sprache, ein Repository, ein Deployment, und deutlich weniger Code, der nur existiert, um Daten zwischen zwei eigenen Systemen zu bewegen.
Ist das günstiger als ein Produkt zu kaufen?
Im ersten Jahr fast nie, und das ist der ehrliche Vergleich. Ein Produkt kostet eine Gebühr und liefert fremdes Modell Ihres Geschäfts. Individualsoftware kostet einen Bau und liefert Ihr eigenes. Sie lohnt sich, wenn der Prozess das ist, worüber Sie sich unterscheiden, wenn das Volumen Handarbeit teuer macht, oder wenn das Produkt so viel Konfiguration und Umgehung braucht, dass Sie ohnehin Software pflegen - nur ohne sie zu besitzen.
Wie wird der Umfang bestimmt und kalkuliert?
In Phasen, jede vor Beginn schriftlich fixiert, pro Phase kalkuliert und nicht als Tagessatz. Die erste Phase ist absichtlich klein und endet mit etwas Ausgeliefertem, das Sie benutzen können - denn eine Schätzung für zwölf Monate in Woche eins ist eine Vermutung, und alle im Raum wissen das. Was die Zahl bewegt, ist die Zahl der Masken, die Zahl der anzubindenden Systeme und wie viel Bestandsdaten bereinigt werden müssen, nicht das Framework.
Wem gehört der Code?
Ihnen, ab dem ersten Commit, in Ihrem Repository oder in unserem mit intakter Git-Historie übergeben. Die Architekturentscheidungen werden aufgeschrieben, während sie getroffen werden, denn ein am Ende verfasstes Übergabedokument ist eines, das niemand liest und niemand prüfen kann.
Anrufen+1 848 272 7583WhatsApp+90 850 308 5436E-Mailinfo@codefacture.comKontaktseite