Warum wir (fast) nur unseren Tech-Stack verwenden. Oder: Wer alles kann, kann nix!
Wir haben im Laufe der Jahre „unseren“ Tech-Stack entdeckt/entwickelt:
Frontend: TypeScript + React
Backend: Kotlin/Ktor oder Java/Spring Boot
Datenbank: MongoDB (seltener relationale Datenbanken), S3 für Object-Storage
Von diesem Tech-Stack weichen wir nur sehr selten und möglichst wenig ab. Und dafür gibt es gute Gründe!
Wer alles macht, kann nix richtig!
Die Software-Welt wird immer komplexer und umfangreicher. Jeden Tag erscheinen eine ganze Menge an Tools und Libs.
Da überall auf dem Laufenden zu bleiben ist schon lange nicht mehr möglich.
Wir beschränken uns daher auf wenige Technologien und Libs und lernen diese richtig. Wir sind in diesen Technologien wahre Experten. Wir haben die meisten (oder zumindest viele) Probleme bereits gesehen und vor allem gelöst.
Erfahrungen ist teuer – gut, wenn der Preis dafür schon bezahlt ist
Wir haben schon viele Fehler gemacht – und daraus gelernt. Wir kennen deshalb die entscheidenden Stolpersteine.
Positiv formuliert: Wir haben schon sehr, sehr viel Zeit und Geld investiert um heute schnell den richtigen Weg verfolgen zu können.
„Wie schwer kann React schon sein“?
„Hello World“ in React ist tatsächlich sehr einfach. Aber eine wirklich komplexe Anwendung in React zu erstellen? Das ist definitiv eine Kunst! Jeder Angular-Entwickler wird im ersten Versuch daran scheitern.
Umgekehrt bilden wir uns auch nicht ein, komplexe Angular-Anwendungen schreiben zu können!
Das „beste“ Tool für den Job? Um jeden Preis?
Lohnt es sich wirklich das beste Tool für den Job zu finden?
In fast allen Fällen gilt: Lieber ein „good enough“ Tool finden, welches dafür vom Team bereits beherrscht wird.
Gibt es Projekte, in denen eine andere Datenbank als MongoDB geeigneter wäre? Mit Sicherheit!
Aber in den allermeisten Fällen, sind die Vorteile nur marginal. Und die Nachteile durch Evaluierung und Einarbeitung sind viel gravierender.
Meistens kommt es sowieso anders
Früher oder später ändern sich die Anforderungen und Umstände sowieso.
Bei jeder Major Version neu evaluieren um vielleicht 5% Performance zu gewinnen???
Während andere noch evaluieren wird bei der Neckar IT schon entwickelt!
Wir kennen unsere Technologien. Wir wissen sofort, ob unser Tech-Stack den Anforderungen gerecht wird. Es ist kein langwieriges (und teures) evaluieren mit unklarem Ausgang notwendig.
Wir legen entweder sofort los – oder kommunizieren offen und ehrlich, dass wir der falsche Partner für das Projekt sind.
Ausnahmen bestätigen die Regel + kenne deine Grenzen!
Manchmal, aber wirklich nur manchmal setzen wir eine andere Datenbank ein. Natürlich kennen und können wir auch relationale Datenbanken. Aber wir sind keine Experten in dem Bereich.
Wir können auch fortgeschrittene SQL-Queries schreiben. Und natürlich bestehende Systeme integrieren. Aber es gibt SQL-Experten da draußen, mit denen können und wollen wir uns nicht messen…
Wer uns engagiert, engagiert 100%ige Experten in unserem Gebiet!
Teuer wird es (sonst) am Ende!
Bei Software-Projekten ist es leider so, dass sich die großen, langfristigen Architektur-Entscheidungen erst nach geraumer Zeit bemerkbar machen. Und dann ist das Kind bereits in den Brunnen gefallen (und die Freelancer weitergezogen).
Deshalb gilt von Anfang an: Augen auf bei der Wahl der Experten und Technologien. Niemand möchte den Software-Entwicklern eine teure Lektion in einer neuen Technologie bezahlen.