Produktivität Gehirnentwickler: So beenden Sie das Schreiben von Code und beginnen mit dem Schreiben von Anwendungen

    Der Mobilfunkmarkt entwickelt sich so schnell, dass es nicht mehr ausreicht, nur eine gute Anwendung zu entwickeln, um die Benutzer zufrieden zu stellen. Sie müssen sich auf das Publikum konzentrieren, interessante und nützliche Funktionen anbieten, aber es nicht übertreiben. Wie kann man zwischen dem Schreiben von Code und kreativen Ideen balancieren? Wo sind derzeit die interessantesten Projekte und benötigen Sie Benutzerdaten, um eine coole Anwendung zu erstellen? Wir haben darüber mit dem Android-Entwicklungsexperten Jonathan Levin gesprochen.



    Jonathan Levin hat den Titel Google Android Experts. Zu einer Zeit spielte er eine Schlüsselrolle für den Erfolg von Gett und erhielt Finanzmittel für den KolGene-Konnektor für den genetischen Markt. Jonathan ist ein versierter Android-Entwickler sowie ein Unternehmer, der sehr gut weiß, wie man gute Ideen für eine Anwendung in ein profitables Produkt verwandelt.


    Code und Tools


    - In der Regel werden Anwendungen nach klar definierten TK entwickelt. Was ist falsch an einem Entwickler, der sich nur auf Code konzentriert?

    Jonathan Levin: Natürlich ist daran nichts auszusetzen. Aber auch nichts Gutes. Alles in TK zu malen ist eine äußerst schwierige und manchmal fast unmögliche Aufgabe.
    Ein Entwickler, der einfach Code schreibt, schreibt einfach Code. Und er wird wahrscheinlich wie im ToR angegeben arbeiten.

    Ein Entwickler, der versteht, warum er einen solchen Code schreibt, wie und von wem er verwendet wird, wo dieses Produkt wächst und was der Zweck von allem ist, was er im Allgemeinen tut, schreibt keinen Code, sondern ein Produkt. Schließlich sind wir Entwickler die Quelle des Wissens darüber, was auf einer bestimmten Plattform am besten funktioniert und wie eine bestimmte technische Lösung basierend auf den Anforderungen des Benutzers korrekt erstellt werden kann. Und dafür müssen Sie eine Reihe von Fragen stellen, verstehen, was, warum und wie all dies das Leben der Benutzer des Produkts verbessert.

    - Wie stelle ich die Aufgabe von Anfang an richtig ein und welche Tools und Ansätze sind zu verwenden?

    Jonathan Levin: Ich weiß nicht, wie ich es richtig machen soll, aber ich werde Ihnen sagen, wie ich es selbst versuche.
    Bereits in der Phase der Erstellung einer Funktion / eines Produkts diskutieren alle Teamentwickler diese Funktion. Ich bereite eine Beschreibung und alle grundlegenden Daten im Format vor: „Wer ist der Benutzer, warum wird diese Funktionalität benötigt, wer wird sie verwenden, wie werden wir ihren Erfolg messen?“. Dann setzen wir uns und diskutieren gemeinsam, wie wir am besten zu einer bestimmten Entscheidung kommen können.

    Jeder meiner Entwicklerkollegen ist ein Experte auf seinem Gebiet. Ich kann ihnen nicht sagen, was auf einem iPhone, im Internet oder in einem Backend besser gemacht werden kann. Natürlich kann ich Code für jede Plattform schreiben und eine Art Architektur auswählen, aber meine Kollegen sind Experten für jede dieser Plattformen und ich weiß viel besser, was für sie am besten ist.

    Als Werkzeug halte ich das Beste für ein Paar Filzstifte, ein Diskussionsforum, ein köstliches Mittagessen auf Kosten des Unternehmens und einen ganzen Tag für die direkte Planung und Diskussion.

    - Viele Entwickler lösen typische Probleme innerhalb der Pipeline (z. B. in Webstudios). Wie kann man gewöhnliche Aufgaben diversifizieren und ist dies notwendig?

    Jonathan Levin: Jemand hat einmal gesagt, dass es bei jeder Entwicklung für Android darauf ankommt, Daten aus dem Backend abzurufen, zu analysieren und in der Liste anzuzeigen. Jede Aufgabe kann langweilig und langweilig werden. Auf der anderen Seite kann dieselbe Aufgabe zu einer super interessanten und aufregenden Aufgabe werden.

    Ich denke das: Wenn Sie eine Aufgabe haben, die Sie bereits kennen, die Sie 100.500 Mal und in einem Drittel der zugewiesenen Zeit erledigt haben, ist dies Ihre Chance. Viele verschiedene Bibliotheken, Architekturlösungen und Änderungen werden entwickelt - dies ist eine großartige Gelegenheit, etwas Neues auszuprobieren, zu sehen, wie es unter der Haube funktioniert, und dank dessen Ihre Fähigkeiten zu verbessern.

    Benutzeranalyse


    - Wie lerne ich, wie man vom Polieren und der Schönheit des Codes zur Benutzeranalyse übergeht? Ab wann kommt das Verständnis: „Das reicht. Benutzer benötigen eine Qualitätsanwendung, sie interessieren sich nicht für meinen Code? "

    Jonathan Levin: Wann kam das Verständnis? - Bei Gett lief ich jedes Mal, wenn ich über die Veröffentlichung der einen oder anderen technologischen Innovation sehr aufgeregt war, sofort los, um dies zu tun, zu implementieren und in die Anwendung zu integrieren. Dies führte zu schlaflosen Nächten der Fehlerbehebung und zu Benutzern, die die Anwendung nicht sicher verwenden konnten.

    Ich denke, wir waren zuerst alle so. Einmal fragte mich VP RnD, als ich wieder einmal begeistert von der neuen Sache von Square war: "Nun, nun, was nützt das für unser Geschäft, wie werden wir davon profitieren?" Ich konnte nicht antworten. Später wurde mir klar, wie richtig er war. Es war nur eine weitere Überarbeitung dessen, was bereits funktionierte und keine zusätzlichen Ressourcenkosten erforderte.

    Mehr Code - mehr Fehler. Jedes Refactoring ist ein Risiko für das Unternehmen. Ein paar Abstürze reichen aus, damit der Benutzer die Anwendung nicht mehr verwendet. Es ist ihm egal, ob Sie Rx, Clean Architecture oder ein neues ORM dort haben.

    Wenn Sie nicht klar beschreiben können, wie Ihr Unternehmen von Ihrem Refactoring profitieren wird, sollten Sie überlegen, ob es überhaupt benötigt wird. Könnte es besser sein, Zeit damit zu verbringen, eine neue Funktion zu erstellen, die Ihrer Anwendung noch mehr Glanz verleiht?

    Wie erstelle ich eine einzigartige Anwendung?


    - Ich möchte ein nützliches und interessantes Produkt für Benutzer erstellen. Auf welche Bereiche sollten Sie achten? Gibt es eine interessante Nische, die aus irgendeinem Grund nicht von Entwicklern besetzt ist?

    Jonathan Levin: Maschinelles Lernen ist heute wahrscheinlich das heißeste Thema. Aber nicht als Produkt, sondern als Technologie. Mit seiner Hilfe können Sie Produkte erstellen, die zuvor nicht verfügbar waren, ohne ein Arzt für angewandte Mathematik oder Algorithmus sein zu müssen.

    Es gibt bereits eine Vielzahl von Tools zum Erstellen von Produkten, die auf maschinellem Lernen basieren - von TensorFlow bis zu allen Arten von OCRs. Und das Tätigkeitsfeld, auf das dies angewendet werden kann, ist wirklich enorm: Ich würde Ihnen raten, mit dem Problem zu beginnen, das den Entwickler selbst am meisten betrifft. Schließlich ist das beste Produkt das, das Sie selbst verwenden.

    - Nehmen wir an, ich habe eine wunderbare Anwendung in einer engen Nische. Wie kann man den Benutzern seine Einzigartigkeit vermitteln? Im Laden fallen täglich eine Vielzahl von Anwendungen aus. Wie heben Sie sich von der Masse ab?

    Jonathan Levin: Ich habe eine solche Prüfung. Ich nenne seine Prüfung "wow". Und es beginnt damit, dass ich dem nicht zustimme, wenn es nicht "wow" ist.

    Wenn eine Person zu einem Interview kam und ich kein Wow-Gefühl hatte, werde ich sie nicht zu meinem Team bringen. Und „wow“ - das ist nicht unbedingt der technologische Teil. Zum größten Teil geht es darum, was für ein Mensch er ist.

    Das Gleiche gilt für Produkte - Sie müssen sich bemühen, „Wow“ zu machen: Wow-Design, Wow-Benutzererfahrung, Wow-Code, Wow-Kommunikation.

    Normalerweise hat jede Idee, über die Sie nachdenken können, höchstwahrscheinlich bereits 10 Leute, die darüber nachgedacht haben und bereits begonnen haben, etwas zu tun. Daher ist die Idee weniger wichtig als vielmehr deren Umsetzung. Wir müssen uns bemühen, dass alles „wow“ ist - damit die Chancen, die Besten zu werden, am höchsten sind.

    - Wie kann man den Benutzer von den ersten Sekunden nach dem Start der Anwendung beeindrucken? Was muss ich nicht tun? Wann ist es beispielsweise besser, einen Begrüßungsbildschirm, Push-Benachrichtigungen und andere Mittel zu verwenden?

    Jonathan Levin: Meine persönliche Meinung: SplashScreen ist ein Schmerz. Im Durchschnitt sind es ungefähr fünf Sekunden, um einen ersten Eindruck von der Anwendung zu erhalten und den Benutzer zu fesseln. Normalerweise ist SplashScreen ein Firmenlogo auf einem schönen Hintergrund. Am häufigsten verwenden Entwickler es, um alle Arten von Einstellungen zu laden. In der Tat sollte dies der Grund sein, warum Benutzer sich an Ihre Anwendung erinnern. Es gibt andere interessantere Lösungen, die beim Laden von Parametern im Hintergrund verwendet werden.

    Ich denke, ein guter Haken ist es, Ihrem Benutzer sofort den Köder zu zeigen: Genau das macht Ihre Anwendung.

    Dies kann entweder über den OnBoarding-Prozess erfolgen, bei dem auf sehr schöne und interaktive Weise die Geschichte Ihrer Anwendung erzählt wird, oder indem die Hauptaktionen sofort angezeigt werden. Wenn Sie beispielsweise eine Supermarktanwendung haben, sollten Sie sofort die Möglichkeit aufzeigen, die köstlichsten Produkte (Schokolade!) In den Warenkorb zu legen, und erst nach Abschluss der Auswahl die Registrierung anbieten.

    - Angenommen, die Anwendung sammelt viele Daten im Hintergrund: Geolokalisierung, Medieninhalte, Kontakte usw. Wie kann man es richtig verkleiden? Und ist es notwendig zu maskieren?

    Jonathan Levin:Transparenz ist wahrscheinlich das Beste, was Sie Benutzern geben können. Als ich klein war, wurde uns immer gesagt, dass alles Geheimnis klar wird. Früher oder später wird jemand Ihre Anwendung zurückentwickeln und alles wird herauskommen. Der Schaden für das Unternehmen wird enorm sein.

    Es ist viel besser, dem Benutzer die Möglichkeit zu geben, zu entscheiden, ob er Ihnen seine Daten geben möchte oder nicht, und zu erklären, was mit ihnen geschehen wird und wie. Nach meiner Erfahrung sind die meisten bereit, ihre Daten für bestimmte Funktionen in der Anwendung anzugeben.

    - Muss ich Daten über Benutzer sammeln und in welchem ​​Umfang? Verstößt dies gegen ihre Privatsphäre? Wie hat das in der Realität geholfen? Welche Dienste und Erweiterungen empfehlen Sie?

    Jonathan Levin: Ohne Daten - wie ohne Augen. Es ist schwer, im Dunkeln den wahren Weg zu finden.
    Unter dem Gesichtspunkt der Rechtmäßigkeit besteht der direkteste Weg darin, die Geschäftsbedingungen aufzuhängen, mit denen die Benutzer einverstanden sind. In der Folge kann dies viele Probleme beseitigen. Dies bedeutet nicht, dass Sie zu einem Anwalt laufen und ihm ein paar Tugriks bezahlen müssen. Das Internet ist eine sehr nützliche Sache. Wenn Sie ein wenig hinschauen, können Sie leicht die Vorlage mit den allgemeinen Geschäftsbedingungen finden, die in den ersten Phasen der Entwicklung geeignet ist, bis ein Anwalt im Unternehmen erscheint.

    Was die Privatsphäre betrifft, denke ich, dass sie tatsächlich längst nicht mehr existiert. Wenn jemand denkt, dass er etwas vor jemandem verstecken kann, der diese Informationen wirklich erhalten möchte, irrt er sich. Daher mache ich mir keine besonderen Sorgen, wenn jemand Informationen darüber sammelt, wie ich diese oder jene Anwendung verwende. Und die meisten Benutzer überprüfen, wie viele Fälle zeigen, die Allgemeinen Geschäftsbedingungen, ohne sie zu lesen.

    In Wirklichkeit sind solche Informationen ein Schatz. Ein Schatz, der Ihnen später hilft, herauszufinden, was und wie es funktioniert und wie Sie die Anwendungsfunktionen verwenden.

    Für den Anfang würde ich empfehlen, FullStory für das Web und TestFairy für mobile Anwendungen zu installieren. Auf diese Weise können Sie sehen, was genau Ihr Benutzer auf der Site oder in der Anwendung tut. Ich versichere Ihnen, Sie werden über viele Dinge überrascht sein.

    Darüber hinaus bietet Google Analytics / Firebase Analytics viele kostenlose Brötchen in Form von Ereignissen, die erfasst und für die weitere Verarbeitung verwendet werden können.

    Wenn möglich, sollte alles gemessen werden. Ausgehend von der Häufigkeit, mit der Sie auf die Schaltfläche geklickt haben, wurde das Foto am häufigsten angezeigt. Ganz zu schweigen davon, dass die Erfassung von Geschäftsmetriken ein absolutes Muss ist.

    - Hier sammeln wir Daten, analysieren jeden Schritt des Benutzers in der Anwendung. Wie verwalte ich diese Daten richtig?

    Jonathan Levin: Jedes Mal, wenn wir eine bestimmte Funktion in einer Anwendung entwickeln, müssen wir bestimmen, welche Metriken den Erfolg messen.

    Angenommen, hier haben wir bei der Bestellung die automatische Vervollständigung des Namens des Gentests hinzugefügt. Wie kann man herausfinden, ob es erfolgreich funktioniert oder nicht? Was wird als Erfolg für diese Funktion angesehen? Vielleicht die Anzahl der erfolgreich angeforderten Namen im Test? Oder vielleicht die Gesamtzeit, die auf dem Bestellbildschirm verbracht wurde? Oder von welchem ​​Brief haben wir bekommen?

    All dies muss im Voraus festgelegt und gemessen werden, und dann muss entschieden werden, was damit zu tun ist. Und wenn es nicht funktioniert, schneiden Sie die Funktion als morsches Teil.

    Wie kann man verstehen, ob die Anwendung erfolgreich ist?


    - Wie installiere ich KPI für Ihr Projekt? Wie kann man ihre Implementierung durch analytische Systeme überprüfen?

    Jonathan Levin: Versuch und Irrtum. Der einfachste Weg, um von einem Geschäftsmodell auszugehen. Das heißt, Wenn die Einnahmen aus der Anzahl der durchgeführten Gentests stammen, müssen Sie alles messen, was dies beeinflussen kann. Zum Beispiel kann der KPI von der Ebene und dem Zeitpunkt der Interaktion des Labors und der Geschwindigkeit seiner Arbeit bis zur Streuung der Preise in Angeboten verschiedener Labors reichen.

    - Erzählen Sie uns von den A / B-Tests. Wie und wie man sie richtig umsetzt? Wie kann man es nicht mit A / B-Tests übertreiben?

    Jonathan Levin: Ich habe mich in Firebase Remote Config verliebt. Sie können verschiedene Werte festlegen, je nachdem, wer der Benutzer ist, woher er kommt und wie er sich verhält.

    Sie können in Firebase Analytics verschiedene Ereignisse erstellen. Wenn eines davon auftritt, tun Sie etwas Besonderes für diesen Benutzer.

    Sie können beispielsweise die Bestellschaltfläche im oberen Menü festlegen, z. B. auf der unteren Registerkarte, und messen, wo die meisten Benutzer in diejenigen konvertiert werden, die bestellen. Diese Experimente können kontinuierlich durchgeführt werden und so lange fortgesetzt werden, wie Sie möchten.

    Das Besondere an RemoteConfig ist, dass diese Experimente und Tests kontinuierlich durchgeführt werden können. Von verschiedenen Farben bis zur Navigation innerhalb der Anwendung. Die Hauptsache: Denken Sie bei der Entwicklung von Funktionen im Voraus darüber nach. Besonders wenn es Nuancen gibt, über die es keine eindeutige Meinung gibt. Am besten schrauben Sie es an RemoteConfig und sehen, was zuverlässiger funktioniert.

    Und vor allem - wenn Sie verstehen, was am besten funktioniert und wissen, dass es sich in naher Zukunft nicht ändern wird - bereinigen Sie den Code und löschen Sie alle diese Vorbereitungen für die Kaffeemaschine in Ihrer Anwendung. Weniger Code bedeutet weniger Fehler.


    Wenn Sie die Details der mobilen Entwicklung genau wie wir genießen möchten, werden Sie wahrscheinlich an diesen Berichten auf unserer Moskauer Konferenz im November 2017 in Moskau interessiert sein :


    Jetzt auch beliebt: