Softwareentwicklung ist eine komplexe Angelegenheit. Jedes Projekt besteht hauptsächlich aus dem Konzept und den Menschen, die dieses Konzept zum Leben erwecken. Deadlines, Ressourcen und natürlich Technologien werden meist später definiert. Aber das bedeutet nicht, dass die Wahl der Technologien von geringerer Bedeutung ist. Heute werden wir nicht über Aspekte wie das Team und dessen Fähigkeiten sprechen. Es ist klar, dass für den Erfolg kompetente Leute unerlässlich sind. Stattdessen werden wir heute darüber sprechen, wie man (nicht) den Tech-Stack für Ihr Projekt auswählt.

Bei der Entscheidung über die Kerntechnologien, die in einem Projekt verwendet werden sollen, verlangt die geschäftliche Seite, dass Sie die Antworten auf diese Fragen kennen:

  • Welche Probleme soll Ihr Projekt lösen?
  • Wie wird es sich im Laufe der Zeit entwickeln?
  • Wie viele Ressourcen werden benötigt, um es zu implementieren und zu warten?
  • Gibt es neue Technologien, die besser für Ihr Projekt geeignet sind?
  • Gibt es fertige Lösungen?
Probleme

Berücksichtigen Sie, dass unterschiedliche Probleme unterschiedliche Werkzeuge erfordern. Es ist daher entscheidend, die Geschäftslogik hinter einer App zu verstehen, bevor Sie eine endgültige Wahl des Technologie-Stacks treffen. Zum Beispiel verwenden Sie Python nicht, wenn Sie eine Werbe-Website entwickeln. Sie werden CMS wie WordPress, Joomla, Drupal, NetCat, HostCMS verwenden, weil sie kostenlos, einfach, bequem, zeiteffizient sind, verschiedene Designoptionen bieten und keine Expertenhilfe benötigen.

Skalierbarkeit

Sie denken vielleicht, dass eine kluge Wahl Ihre App für immer bestehen und gedeihen lässt. Einige Technologien können Daten wirklich einwandfrei verarbeiten, aber nur solange die Last nicht zu hoch ist. Wenn eine App wächst und Hunderttausende neuer Nutzer gewinnt, kann sie möglicherweise nicht mehr so stabil sein.

Skalierbarkeit bedeutet im Wesentlichen die Fähigkeit einer Webanwendung, große Mengen an Anfragen zu bewältigen, wenn die Anzahl der Nutzer erheblich zunimmt.

Bevor Sie den perfekten Technologie-Stack nach Ihren Bedürfnissen auswählen, sollten Sie die Skalierbarkeit im Voraus bewerten. Verlassen Sie sich dabei auf bereits vorhandene Beispiele, warum eine bestimmte Technologie skalierbar ist.

Ressourcen

Einige Technologien sind zu teuer oder die Entwickler schwer zu finden. Deshalb wenden sich manche billigen Technologien wie Mendix zu. Was sie jedoch nicht bedenken, ist die Herausforderung, eine solche Technologie später zu warten.

Während des Entwicklungsprozesses müssen Sie immer das perfekte Gleichgewicht zwischen Kosten, Deadlines und Qualität anstreben. Meistens führt dies dazu, dass Entwickler auf einige leistungsstarke Sicherheitssysteme in einer Technologie zugunsten einer schnelleren und billigeren verzichten.

Fortschritt

Natürlich sollten Sie immer daran denken, dass sich die Informationstechnologie jeden Tag ändert und dass Dinge, die vor 5 Jahren als innovativ galten, heute fast ausgestorben sind, wenn etwas Neueres vor einem Monat veröffentlicht wurde.

Als Kotlin herauskam, waren viele Java-Entwickler schockiert, wie schnell und einfach es ist, Android-Apps mit der neuen Technologie zu erstellen. Andererseits haben neuere Technologien tendenziell eine kleinere Community und schlechtere Dokumentation im Vergleich zu älteren Sprachen und Frameworks.

Schlüsselfertige Lösungen

Wenn Ihr Konzept nicht völlig neu ist, gibt es wahrscheinlich eine fertige Lösung im Web, die Sie einfach verwenden können. Allerdings besteht die Möglichkeit, dass eine solche Lösung in einer anderen Programmiersprache geschrieben ist, eine schlechte Dokumentation oder Community hat oder nur wenige Entwickler in der Lage sind, sie in einem Projekt zu verwenden.

Aber es gibt auch technische Bedenken:

Stellen Sie sich vor, Sie müssen einen Tech-Stack für den Aufbau einer Webanwendung von Grund auf auswählen. Das Beste, was Sie tun können, ist, die einfachste Lösung zu wählen und zumindest teilweise ein CMS (Content Management System) zu verwenden. Wir gehen davon aus, dass Sie WordPress als das beliebteste auswählen. Wir werden es in den folgenden Absätzen als Beispiel verwenden.

Schwierigkeit der Entwicklung

WordPress ist keine schwierige Technologie. Es erledigt die meisten Routinearbeiten für Sie. So wird die Erstellung und Bearbeitung der Webseiten schnell und einfach, selbst wenn sie von einem nicht-erfahrenen Entwickler durchgeführt wird. Und als Bonus: Es ist kostenlos. Also, dieser Punkt ist abgehakt.

Unterstützung und Dokumentation

Die Entwicklung dieser Technologie geht weiter. Schritt für Schritt implementieren die Entwickler neue Funktionen wie Asynchronität und Transaktionsverarbeitung. Ältere Funktionen werden ebenfalls unterstützt und verbessert, und die Dokumentation ist umfangreich. Es wird keine Situation geben, in der Sie nicht herausfinden können, wie etwas zu tun ist. Abgehakt.

Funktionalität

Ein wesentlicher, aber nicht der stärkste Punkt von WordPress. Es kann viel leisten, aber es gibt überlegene Lösungen für jeden Zweck auf dem Markt. Wenn man die einfache Entwicklung nicht berücksichtigt, ist WordPress an sich eine ziemlich schwache Lösung.

Anpassbarkeit

Zunächst einmal ist WordPress ein CMS. Natürlich wird es Ihnen nicht so viele Möglichkeiten bieten, Ihre Kreativität auszudrücken, wie es ein Framework oder eine Programmiersprache tun würde. Aber selbst hier gibt es einige Optionen. Es gibt fertige Themes und Mockups, bezahlt oder kostenlos, Sie müssen nur dasjenige finden, das am besten zu Ihnen passt.

Anpassungsfähigkeit

Eine WordPress-Website wird sowohl auf einem Desktop als auch auf einem mobilen Gerät gleich gut angezeigt, und das Gleiche gilt für die Leistung. Es ist nicht das schnellste CMS, aber es wird Sie nicht im Stich lassen, wenn jemand versucht, von einem Smartphone aus auf Ihre Website zuzugreifen. Check.

Sicherheit

Es gibt Möglichkeiten, die WordPress-Sicherheitsvorkehrungen zu durchbrechen. In diesem Fall bedeutet vielseitig auch anfällig. Sie können versehentlich auf ein Paket oder ein Theme stoßen, das eine Art Hintertür enthält. Das kann bei jedem CMS und in jeder Programmiersprache passieren, aber diese haben viele realitätsgeprüfte, fast klassische Pakete. Und WP hat nicht viele solcher Dinge.

Last

Und hier haben wir den Elefanten im Raum. Wir haben WordPress für unsere Website gewählt, weil wir wussten, dass es kein Nachrichtenportal oder soziales Netzwerk ist. Es ist immer noch eine anständige Lösung für eine Unternehmenswebsite. Wenn Sie nicht mehrere Millionen Nutzer pro Tag haben, sind Sie mit WP gut bedient. Aber wenn Ihre Website eine zusätzliche Last tragen soll, sollten Sie bei der Wahl Ihres Technologie-Stacks vorsichtig sein.

Stellen Sie sich vor, Sie haben es dennoch geschafft, eine hochbelastbare Website mit WordPress zu erstellen. Sie wird gut aussehen und sich gut verhalten, bis der erste Leistungstest kommt. Sobald die Last der Website auf einigermaßen reale Zahlen ansteigt, wird sie zuerst einen frustrierenden Engpass schaffen und dann einfach abstürzen.

Tatsächlich können Sie praktisch alles mit jeder Technologie entwickeln, wenn Sie sich genug Mühe geben. Es kann in einigen Qualitäten variieren, aber es ist immer noch möglich. Sie investieren nicht nur unterschiedlich viel Zeit und Geld in Projekte mit unterschiedlichen Technologie-Stacks, sondern erhalten auch ein völlig anderes Stück Software, selbst wenn es die gleiche Idee trägt.

Aber vielleicht ist das nur eine Übertreibung. Zu sagen, dass eine falsche Technologieauswahl Ihr Projekt ruinieren wird, wäre wahrscheinlich falsch. Es gibt so viele weitere Aspekte der Softwareentwicklung.

Selbst eine ungeeignete Technologie kann gute Ergebnisse liefern, wenn sie in den richtigen Händen liegt. Und ein schlechtes Team kann das vielversprechendste Projekt scheitern lassen. Softwareentwicklung besteht nicht nur darin, Technologien anzuwenden. Es geht darum, Probleme zu lösen. Und Technologien allein lösen sie nicht. Menschen tun es.