Wir haben uns in den letzten beiden Teilen um die Idee der App gekümmert, um das Aussehen und wie wir damit Geld verdienen wollen. Heute gehts um das Thema der Authentifizierung, die in den meisten Lösungen eine zentrale Rolle spielt. Darüber hinaus begeben wir uns auf die Suche nach passenden Entwicklern.
5. Authentifizierung und rechtliche Aspekte
Benötigt Ihre Anwendung ein Login? Sollen benutzerabhängige Informationen verarbeitet werden? Dann kommen Sie um eine Authentifizierung des Benutzers bzw. der Benutzer nicht herum. Das Ganze hat aber einen Rattenschwanz: Es gibt viele Authentifizierungsmethoden, persönliche Daten müssen gespeichert werden und schon sind wir beim Datenschutz. Was passiert, wenn ein User sein Passwort vergisst etc. Ich habe die Erfahrung gemacht, dass wir solche Dinge tagtäglich nutzen und meistens funktionieren sie auch recht zuverlässig, aber man macht sich keine Gedanken darüber, dass dahinter ein recht komplexer Mechanismus stecken muss, damit das alles so reibungslos funktioniert. Glücklicherweise gibt es fertige Tools, die den Entwicklern viel Arbeit abnehmen. Es ist nicht ratsam, das mit der Hand am Arm selbst zu entwickeln.
5.1. Authentifizierungsmethoden
Überlegen Sie sich, welche Authentifizierungsmethoden Ihre App bieten soll:
- Optionen: Dazu gehören Apple, Google, E-Mail, MagicLink, Passkeys und viele andere. Überlegen Sie, wie einfach oder komplex der Anmeldevorgang für den Benutzer sein soll. Eine komplizierte Authentifizierung kann Benutzer abschrecken. Außerdem muss das System fehlertolerant sein, z.B. wenn der Benutzer sein Passwort vergessen hat.
- Rechtliche Anforderungen: Berücksichtigen Sie rechtliche Aspekte wie die DSGVO, um die Privatsphäre der Nutzer zu schützen. Stellen Sie sicher, dass alle gesammelten Daten sicher und gemäß den geltenden Datenschutzbestimmungen gespeichert und verarbeitet werden. Denken Sie in diesem Zusammenhang daran, die Datenschutzvereinbarung entsprechend zu erweitern. Hier bieten sich Tools wie z.B. erecht24.de an, mit denen dies recht gut funktioniert. Zu beachten ist auch, dass mit jedem Anbieter, dessen Tool Sie nutzen, ein Auftragsverarbeitungsvertrag (AV-Vertrag) abgeschlossen wird. Das klingt schlimmer als es ist. Die allermeisten Anbieter haben diese Verträge direkt zum Download auf ihrer Website.
- Fertige Tools nutzen: Wie oben beschrieben, sollten für die Authentifizierung fertige Tools wie z.B. Firebase von Google verwendet werden. Für den E-Mail-Verkehr, z.B. wenn ein Benutzer automatisch ein neues Passwort anfordert, bieten sich Tools wie Resend.com an. Diese Tools sind in der Regel bis zu einem bestimmten Limit kostenlos. Grundsätzlich ist es ratsam, den pflegbaren Code auf ein absolutes Minimum zu beschränken, da dieser gepflegt werden muss. Wenn man fertige Tools verwendet, hat das den Vorteil, dass sich Leute damit beschäftigen, ihren Teil am Laufen zu halten. Und klar, wo Licht ist, ist auch Schatten. Man muss sich mit den Funktionen des gewählten Tools auseinandersetzen und letztendlich damit zufrieden sein.
6. Suche nach einem passenden Entwickler
6.1. Auswahl des Entwicklers
Die Wahl des richtigen Entwicklers ist entscheidend:
- Chemie: Stellen Sie sicher, dass Auftraggeber und Entwickler gut zusammenarbeiten und die Kommunikation klar und strukturiert erfolgt, idealerweise über ein Projektmanagement-Tool wie Jira, Asana, Trello, Polarion oder eines der vielen anderen Tools auf dem Markt. Wichtig ist auch, dass der Entwickler die Vision des Projekts versteht und sich mit den Zielen identifiziert.
- Standort und Kosten: Beachten Sie, dass die Kosten je nach Standort des Entwicklers variieren können. Achten Sie auf kulturelle und sprachliche Unterschiede, wenn Sie mit Entwicklern in entfernten Regionen arbeiten. Berücksichtigen Sie auch die Vor- und Nachteile der Eigenentwicklung im Vergleich zum Outsourcing.
- Durchhalten: Sie kennen sicher das Pareto-Prinzip: 80% der Arbeit in 20% der Zeit und die letzten 20% der Arbeit kosten dann die restlichen 80% der Zeit. Mit anderen Worten: Es ist unerlässlich, dass Auftraggeber und Auftragnehmer einen langen Atem haben. Gerade gegen Ende des Projekts, wenn die Tests laufen und immer wieder neue Fehler und Ungereimtheiten auftauchen, ist ein effizientes und konsequentes Abarbeiten (siehe oben: Projektmanagement-Tool) unumgänglich. Auch hier kann ein Projekt noch scheitern, wenn eine Partei die Lust verliert oder man sich über die Kosten streitet, weil man bei den Vertragsverhandlungen (siehe unten) nicht klar definiert hat, wer die Kosten übernimmt.
6.2. Vertragliche Vereinbarungen und IP-Schutz
Stellen Sie sicher, dass alle rechtlichen Aspekte klar geregelt sind:
- Vertraulichkeitsvereinbarung: Eine formale Vertraulichkeitsvereinbarung (NDA) ist wichtig, um die Interessen beider Parteien zu schützen. Diese Vereinbarung sollte auch die Verantwortlichkeiten beider Parteien klar definieren.
- IP-Rechte: Klären Sie, wem das Produkt und der Quellcode gehören, und stellen Sie sicher, dass das Produkt frei von Rechten Dritter ist. Sorgen Sie dafür, dass der Entwickler alle notwendigen Lizenzen und Rechte besitzt, um das Projekt durchzuführen.
- Quellcode-Verwaltung: Der Quellcode sollte in einem vom Kunden angelegten GitHub- oder GitLab-Account verwaltet werden. Stellen Sie sicher, dass der Entwickler keine Rechte an den Sourcen behält, und klären Sie, ob der Code oder Teile davon anderweitig verwendet werden dürfen. Erwägen Sie auch, wie zukünftige Entwickler Zugang zum Quellcode erhalten können, falls das ursprüngliche Entwicklungsteam nicht mehr verfügbar ist.
So, auch das ist geschafft, jetzt können wir in Teil 4 endlich mit der eigentlichen Umsetzung beginnen und uns um den Projektabschluss kümmern. Man sieht schon, es ist ein langer Weg bis es endlich losgeht - aber es lohnt sich.