Wie baut man eine Webanwendung?

Wie baut man eine Webanwendung?

Fast jeder der in der Webentwicklung tätig ist, weiss wie man eine Webanwendung erstellt. Hier beschreibe ich das jedoch trotzdem nochmal, so dass es auch für mich selbst etwas klarer wird 😊

1) Anforderungen festlegen

Man sollte meinen: Das ist wohl der einfachste Teil.

Jedoch: Meistens haben die Auftraggeber (da schliesse ich mich mit ein) keine genaue Beschreibung der Anforderungen.

Im Grund genommen weiss man meistens noch nicht was man haben möchte.

Das ist daher so problematisch, weil man dann keinen “Preis” oder Preisrahmen nennen kann, für welchen man die Anwendung programmieren kann.

Man weiss dann auch nicht wie lange das dauert, um es zu entwickeln.

Hier meine, hoffentlichen hilfreichen Tipps dazu:

  • a) Wenige Anforderungen, genau beschreiben: Anstatt eine riesige Liste zu machen, sollte man eine kleine Liste an Anforderungen erstellen. Und diese so gut we möglich beschreiben. Sicherlich hilft auch eine Paint Datei, in welcher die Bilder der Anwendung im groben Aufgezeichnet sind.
  • b) Verstehen das es einen Designer braucht oder rudimentäres Design durch Programmierer: In den meisten Entwicklerteams gibt es keinen dedizierten Designer (Designer für Photoshop, Webdesigner für HTML, CSS). Und Entwickler können keine schönen Webdesigns erstellen. Daher sollte man eine Phase einbauen, in welcher das Frontend erstellt wird. Zum Beispiel durch einen externen Dienstleister. Alternativ kann man auf ein sehr rudimentäres Design entwickelt durch den Webentwickler setzen. Meiner Meinung nach die bessere Lösung.
  • c) Nach einem Monat liefern: Bereits nach dem ersten Monat sollte die erste Version der Software stehen. Und auch nur wenn es nur rudimentäre Funktionalitäten sind. Am besten nur eine, welche jedoch für das Projekt wichtig sind.

Mit diesen drei Schritten a) b) und c) kann man sich eine engmaschige Beschreibung der Anforderungen sparen. Gleichzeitig ist man dadurch in der Lage sofort loszulegen.

2) Einfache Technologien nutzen

Setzt man auf Technologien wie Node.JS, Golang, MEAN Stack, Angular, etc., dann hat man immer das Problem das es kaum Entwickler in diesen Bereichen gibt.

Zudem sind die dann auch relativ teuer. Sei es extern durch einen Dienstleister oder als Angestellte.

Besser sind hier Technologien wie PHP (PHP, MySQL, JavaScript, HTML, CSS) oder ein PHP Framework wie Laravel.

Wenn man dann wächst kann man sicherlich auch auf performantere Systeme wie Ruby on Rails, Python, C# oder Java setzen. Und wenn man wirklich Vorteile in Technologien wie Node, Golang, etc. sieht, dann kann man auch diese verwenden.

3) Dokumentation schreiben lassen

Es ist immer gut das man eine Dokumentation vom Entwickler schreiben lässt. Dafür muss man dem Entwickler dann etwas Zeit geben.

Diese kann bestehen aus: a) Code Kommentierungen b) Logische Beschreibung der Software mit Screenshots und Illustrationen in einer Word Datei.

Ein Entwickler welcher noch nie etwas mit der Software zu tun hatte, sollte sich einfach einarbeiten können. Dazu gehört auch, dass der Code in einer “einfachen Sprache” geschrieben wurde. (Beispiel: Funktion mit Namen “DatumsAnzeiger” anstatt “DaAn”).

4) Budget vorher festlegen oder Entwickler zum Teil an bezahlten Projekten arbeiten lassen

Das ist wohl einer der schwierigsten Teile einer Webanwendungs-Umsetzung. Wer möchte schon ein kleines, mittleres oder grosses Budget verplanen.

Alternativ könnte man entweder aus den laufenden Einnahmen des Unternehmens, die Kosten tragen. Zum Beispiel durch Programmier-Dienstleistungen für externe Unternehmen. D.h. der Entwickler arbeitet zu 50 Prozent an Kundenprojekten und 50 Prozent der Zeit an Eigenprojekten. Das ist natürlich nicht der perfekte Weg, denn ein Entwickler möchte sich auf eine Sache konzentrieren können. So kann man seine Kosten jedoch geringer halten. Bei so einem Vorgehen kann man davon ausgehen, dass das Projekt dann auch länger dauert.

5) Auf Open-End-Entwickler setzen

Zusatzpunkt in diesem Zusammenhang: Besser auf Open-End-Entwickler setzen, als auf eine zeitlich begrenzte Zusammenarbeit.

Was damit gemeint ist, ist folgendes: Da man in den meisten Fällen/ Projekten gar nicht weiss, wie lange so eine Webentwicklung dauert, sollte die Zusammenarbeit mit dem Entwickler langfristig ausgelegt sein. Dies kann ein eigener Angestellter sein oder ein externer Entwickler bei einem Dienstleister oder ein Freelancer.

In allen Fällen ist der Preis (Stundensatz, Gehalt) geringer, wenn man langfristig zusammenarbeitet und hat auch Planungssicherheit für die Programmierung.

6) Einen erfahrenen Entwickler im Team haben, plus idealerweise einen erfahrenen IT Projektleiter

Das mit dem erfahrenen IT Projektleiter ist in den meisten Fällen schwer. Besonders für Startups. Es sollte jedoch reichen, wenn man bereits Erfahrung mit dem Management von Projekten hat (etwas was die meisten Personen mit Berufserfahrung mitbringen).

Zudem braucht es auch einen erfahrenen Programmierer im Team, der Anleitungen geben kann, wie die Programmierung weitergeführt wird.

Ausschliesslich auf Junior Entwickler kann man nur setzen, wenn der IT Projektleiter selbst Programmierer ist und die jeweiligen Architektonischen Entscheidungen treffen kann.

7) Kostengünstige Entwickler einsetzen

Es gibt unterschiedliche Wege kostengünstiger zu entwickeln.

Hier einige Wege davon:

  • Entwickler Co-Founder: Hier kann der Co-Founder programmieren und man bekommt die Entwicklungsdienstleistung sozusagen kostenlos. Jedoch muss man hierfür Firmenanteile abgeben.
  • Auszubildender: Auch Azubis können bei der Entwicklung unterstützen. Wie immer der obligatorische Hinweis: Nur das machen was laut Gesetz, in einer Ausbildung erlaubt ist.
  • Teilzeit Entwickler: Viele Studenten haben Zeit, neben dem Studium zu arbeiten. Ein Webentwickler Job ist hierfür ideal. Besser als zu Kellnern, etc. Der Student erhält so die erste Berufserfahrung und kann an einem spannenden Projekt arbeiten.
  • Offshore Programmierer: Wenn man erfahrene Entwickler benötigt, dann kann man auch im Ausland schauen. Besonders Indien ist hier ein Vorreiter. (Disclaimer: Ich biete sowas mit meiner Firma YUHIRO an)

8) Open Source und kostenfreie Software nutzen

Ein Softwareprojekt könnte man mit einem kostenfreien Tool wie Trello leiten. Auch Email, Skype und andere Werkzeuge sind zum Teil kostenfrei oder zu geringen Kosten zu erwerben.

Eine Entwicklung mit Open Source ist zudem ratsam. Bei .NET ist zum Beispiel vieles gegen Bezahlung zu erhalten. Zum Beispiel unterschiedliche Softwarelizenzen. Bei PHP und co. ist das anders. Hier ist fast alles kostenfrei zu erhalten.

Jedoch sollte man nicht an Software sparen, welche die Entwicklungsgeschwindigkeit des Entwicklers enorm erhöht.

9) Monetarisierungs-Strategie

Das Projekt kann nicht ewig aus externen Budgets kommen. Irgendwann sollte sich die Weiterentwicklung selbst tragen.

Einige Wege das zu erreichen:

  • Freemium: Man bietet die ersten 14 Tage oder 30 Tage kostenfrei an. Danach muss man für die Lösung zahlen. Oder es gibt einige Funktionalitäten welche man für immer kostenfrei nutzen kann. Und für Premium Funktionalitäten zahlt man einen monatlichen Betrag. Zum Start muss auch die Premium Version sehr kostengünstig sein. Spater, wenn man mehr Funktionalitäten programmiert oder mehr Nutzer hat, kann man die monatlichen Beträge auch erhöhen.
  • Firmium: Das ist ein Wort das ich eben selbst erfunden habe. Dabei geht es darum, dass man die Lösung einem Unternehmen kostengünstig anbietet. Die Kosten für die Entwicklung sollten dadurch getragen werden. Der Software-Code gehört jedoch dem Entwickler selbst und kann diese dann auch anderen Unternehmen anbieten. Das Unternehmen welches die Software initial mitfinanziert hat den Vorteil, dass es die Software zu einem minimalen Preis erhält.
  • Investor: Sinnvoll kann es auch sein, dass wenn die Software an fahrt aufgenommen hat (aktive Nutzer oder bereits Premium-Abonnenten), Investoren zu suchen, welches das weitere Wachstum finanzieren. Zum Teil kann man mehrere Hunderttausend bis Millionen Euro so erhalten. Das Potenzial muss dementsprechend sein.
  • “Einmal”-Zahlung durch Auftraggeber: Dies ist der klassischste Fall. Hier wird die Webanwendung im Auftrag für jemanden anders entwickelt.

Fazit

Es gibt sicherlich noch viele weitere Tipps die man geben kann. Dies sind jedoch die wichtigsten meiner Meinung nach.

Was sind Eure Erfahrungen?

Hier ein paar weitere interessante Beiträge:
Planung eines Web-Applications Projektes übersichtlich aufgezeigt
Oder doch gleich mit WordPress entwickeln?

Schreibe einen Kommentar