Für diejenigen, die einfach weiter scrollen, eine kurze Zusammenfassung: "Google: Freiberufler unterzeichnen einen Vertrag" Vielen Dank für Ihre Aufmerksamkeit.
Eine etwas vollständigere Beschreibung: Wie ich dank eines Kunden bei der Arbeit an einem gemeinsamen freiberuflichen Projekt neue Höhen des Managements entdeckte.
Die ersten beiden Akte sind im Wesentlichen einleitend, der Höhepunkt der Handlung und das Erscheinen des Skeletts im Schrank erfolgt im dritten Akt. Wer nur den letzten Film sehen möchte, kann direkt zum
dritten Teil übergehen.
Aktion Eins: Tolerant
Schauspieler: Ich, Bekannter C, Firma X, CEO1September:
- Möchtest du ein Programm für Android für X schreiben?
- Komm schon, aber wir sind weder an der Designentwicklung noch am Testen oder am administrativen Teil beteiligt. Schreiben wir übrigens über React-Native.
Oktober:
Nach einem Gespräch mit CEO1 haben wir die Frist festgelegt - ~ 3 Monate, vereinbart, wie die Anwendung veröffentlicht wird - zunächst werden wir sie an eine begrenzte Anzahl von Benutzern weitergeben, wenn alles in Ordnung ist - wir werden sie an eine große Anzahl weitergeben, dann werden wir die Zahlungen abschließen, das Design kämmen und freigeben, nach der Veröffentlichung beenden wir einige, nicht sehr wichtige , Fragebogen (Benutzertests nach Material). Es endet mit sechs Monaten Unterstützung. Wir haben ein wenig über die React-Native-Technologie gesprochen - CEO1 befürchtete, dass die Technologie neu ist, aber wir versicherten, dass wir bei kritischen Problemen die Schuld auf uns nehmen würden, was sich natürlich auf die Bedingungen auswirken könnte. Ängste waren vergebens, React-Native + Redux hat sich auf der guten Seite bewährt. Die Idee, dass Sie die iOS-Anwendung durch eine ersetzen können, gefiel auch der anderen Seite, obwohl diese Aufgabe über den Rahmen der Vereinbarung hinausging.
Sobald dies vereinbart war, haben wir innerhalb weniger Wochen einen Prototyp und ein Dokument mit den wichtigsten Funktionen herausgegeben. Danach wollte der Kunde unerwartet bereits im Dezember mit den Tests beginnen, um mit der Veröffentlichung ins neue Jahr zu kommen. Wir waren ein wenig überrascht, dass wir noch nicht wirklich angefangen hatten und die Fristen für uns bereits abgelaufen waren, aber auf jeden Fall würden wir es nicht verzögern und sagten, dass wir es versuchen würden.
November:
Ich fülle die Anwendung mit Funktionen, ohne die schöne Animation zu vergessen. Ich nehme mir sogar ein paar Tage frei, um pünktlich zu sein. Ich schraube die Gewinde, damit das Design später schnell und bequem geändert werden kann. Bei React-Native wird alles ganz einfach und unkompliziert erstellt. An einem Punkt gab es immer noch Probleme mit Redux, aber nach anderthalb Tagen des Versuchs kam ich zu dem Schluss, dass ich es ein wenig falsch vorbereitet habe - Sie können nicht "eine Seite mit Redux <=> vielen Komponenten" erstellen, aber Sie benötigen eine "Seite <=> viele Komponenten mit" redux “, alles beginnt gut zu funktionieren, aber seitdem starte ich regelmäßig die Anwendung auf Redmi-2 mit 1 GB Speicher, um solche Fälle zu verhindern. Das Ergebnis des Novembers - wenige Tage vor Anfang Dezember ist alles versprochen, die Anwendung ist recht funktionsfähig und kann an die erste Testrunde gesendet werden.
Dezember:
Etwa drei Wochen lang versucht die andere Seite, eine Liste mit 10 Personen zu erstellen, an die der Antrag gesendet werden kann. Danach verschwindet er vollständig. Im Allgemeinen ist es verständlich, dass das neue Jahr bald kommt. Ich behebe kleinere Probleme, verbessere und optimiere etwas.
Januar:
Mitte Januar. Ein Brief kommt an, dass die Liste fertig ist und schließlich an die ersten Tester gesendet wird. Es kommen zwei ziemlich detaillierte Überprüfungen, die die Anwendung im Allgemeinen positiv bewerten, und ich korrigiere sofort unkritische Kommentare. Aber etwas stimmte nicht - Beschwerden begannen, dass andere Benutzer sich nicht mit ihren Benutzernamen und Passwörtern anmelden konnten. Ohne nachzudenken, gehen wir davon aus, dass sich das Problem irgendwo auf der Test-Backend-Seite des Kunden befindet, und höchstwahrscheinlich stimmen die Daten nicht mit der Tatsache überein, dass dies auf dem Hauptserver innerhalb weniger Wochen durch einfaches erneutes Laden der Daten von Produkt zu Test geklärt und behoben wird.
Ich befestige die Zahlungsfunktionalität an Google Play, obwohl die Implementierung noch nicht im Backend erfolgt. Ich mache die Interaktion analog zu dem, was in der iOS-Anwendung für Apple Store enthalten ist. Ich schreibe einen Backend-Emulator für diese Funktionalität, den ich teste.
Aktion 2: inkrementell.
Schauspieler: Ich, Freund C, Manager CEO2, Tester T, Regisseur D.Februar:
Ich möchte Sie daran erinnern, dass der Februar bereits begonnen hat. Aber was ist mit dem Timing? Warum hatte ich es eilig? Okay, die Bühne ist vorbei und die Anwendung ist auch mit Verzögerung auf jeden Fall besser als keine. Wir warten darauf, dass die ersten zehn erneut zum Testen aufgefordert werden, aber es erfolgt kein erneutes Versenden. Wie kommt es, dass wir überrascht sind, dass wir nach D-Unternehmen suchen? Ein paar Wochen später kommt ein Brief, dass CEO1 durch CEO2 ersetzt wird. Außer dem banalen „Dies ist eine Wende“ fällt mir nichts ein. Natürlich nicken wir mit dem Kopf und denken, dass wir die Gründe verstehen, warum CEO1 entfernt wurde, und jetzt wird wahrscheinlich alles klappen. CEO2 wird nächsten Monat seine Arbeit aufnehmen.
März:
Mitte des Monats erscheint ein neuer CEO2, der in der ersten Woche die richtigen Dinge sagt: Er bringt den T-Tester mit und sagt uns, dass wir auf keinen Fall Zeit damit verbringen sollten, entweder die Konsole zu testen oder eine andere einzurichten administrative Dinge, und der Tester T wird sich um all das kümmern. Die Hauptsache ist jetzt, dass wir eine gemeinsame JIRA für Interaktion und Koordination haben. Es ist gut und sogar exzellent, sagen wir, aber die Fristen wurden bereits so sehr verpasst, und das Projekt wurde im Wesentlichen in eine lange Box verschoben. Um es jetzt herauszunehmen, legen wir einige Fristen für beide Seiten fest + dann müssen wir es noch sechs Monate lang einhalten . Nun, sagen sie uns, betrachten wir den ersten Tag im Mai als Beginn des Garantiesupports und der Zahlung, auch wenn wir uns zu diesem Zeitpunkt noch nicht fertig machen. Es gibt keine Probleme, wir antworten, lassen Sie uns herausfinden, was für uns kritisch ist.
Nach ein oder zwei Wochen stellt sich heraus, dass es drei wichtige Dinge gibt:
1) Aus irgendeinem Grund war der Fragebogen der erste, obwohl uns zuvor mitgeteilt wurde, was für den gesamten Antrag am wenigsten wichtig ist.
2) Die Validierung der Login-E-Mail-Validierung erfolgt auf der Clientseite.
3) Zahlung, obwohl es auch erst nach der ersten Testphase sein sollte.
4) Login über Facebook, obwohl wir im Januar gebeten wurden, es zu entfernen.
Die Liste der Blocker und kritischen Probleme enthält Folgendes:
4) Das vertikale Trennzeichen zwischen Login und Passwort auf der Registrierungsseite.
5) Minimieren Sie die Tastatur auf der Seite zum Ändern des Kennworts im Benutzerkonto, wenn Sie zwischen Feldern wechseln.
Punkt 1 wird während der Woche erledigt, parallel dazu wird die Wichtigkeit von Punkt 2 etwa drei Stunden zweimal pro Woche diskutiert, da sich herausstellt, dass es Anwendungsentwicklungsstandards gibt, die allen bekannt sind (
außer mir natürlich ). Ich bestehe jedoch darauf, dass dies nicht nur nicht notwendig ist. Dies hat jedoch keine wesentlichen Auswirkungen auf das Backend. Dies erfordert nicht nur die Duplizierung derselben Logik in allen Anwendungen und auf der Site. Darüber hinaus gibt es Unternehmensbenutzer im System, die keine E-Mail-Anmeldung haben. Die andere Seite sagt, dass sie dieses Problem sehr detailliert verstehen wird. Nach anderthalb Wochen erscheint ein mehrseitiges Dokument, in dem alle Anmeldeoptionen in allen Anwendungen und auf der Website beschrieben sind (außerdem sind sie gleich), während noch nicht klar ist, wie die Elemente für verschiedene Benutzertypen koordiniert werden sollen . Ich werde die Details überspringen, ich werde nur das Ergebnis vieler Stunden sagen, die andere Seite stimmt schließlich meinem Vorschlag zu. Schließlich startet CEO-2 die Zahlungsfunktion Nr. 3 - Google Play für das Backend.
April:
Ich führe alle kritischen, Dur- und sogar Moll-Aufgaben aus (
auch solche, die meines Erachtens nicht so sind ), da es nicht sehr schwierig ist - es ist einfacher zu tun als zu diskutieren. Das Backend leistet die Zahlung, gibt jedoch in einem der Schritte nichts zurück, was für den Entwicklungsprozess im Allgemeinen normal ist.
Hier kommt der erste seltsame Anruf ins Spiel. CEO-2 bietet unerwartet an, sicherzustellen, dass die Anwendung "so schnell wie möglich" funktioniert, dass sie so schnell wie möglich ist. Ich verstehe nicht sehr gut. Der T-Tester sagt, dass im Allgemeinen alles in Ordnung ist. Kein vorheriger Benutzer hat Leistungsprobleme erwähnt. Aber ich, hier ist Naivität, sage, dass ich auf dem ältesten Telefon, das ich gefunden habe, bemerkt habe, dass das Verlassen der Suchseite, wenn alle über 300 Bücher darauf angezeigt werden, mit Verzögerung erfolgt, aber für ein relevanteres Eisen ist dieses Problem nicht so kritisch in Ich sehe nichts.
Bis zum Beginn des nächsten Monats sind noch zwei Wochen übrig. Alles, was zu diesem Zeitpunkt versprochen wurde, wurde getan (tatsächlich alles außer dem Lecken des Designs, einschließlich dessen, wozu sie nicht kommuniziert haben), und meiner Meinung nach wurden sogar noch viel mehr Stunden nutzlosen Klingelns aufrechterhalten nichts kann schon passieren. Alles, was mir in JIRA verschlossen war, aber ... die Telegrammsperren beginnen, wo wir uns unterhalten. Im Allgemeinen ist es zeitweise, aber es ist klar, dass alle Teilnehmer online erscheinen, aber sie antworten nicht und schreiben nicht nur - CEO2 und T, nach einer Woche ist endlich klar, dass hier etwas nicht stimmt, und wir suchen wieder nach D.
Dritter Akt: Endgültig
Eine Woche später sind wir eingeladen anzurufen. Es wird etwas völlig Neues geäußert, das die Anwendung minimieren sollte, da ihr Backend angeblich Leistungsprobleme aufweist, der Grund irgendwie zweifelhaft erscheint, ich immer noch sage, dass ich keine Probleme mit dem Backend beobachtet habe und die Anwendung alles zwischenspeichert und es kann ihn auch nicht beeinflussen. Es wird uns jedoch angeboten, nur einen Teil der Arbeit zu bezahlen, obwohl sich herausstellt, dass der Antrag bereits an einen Firmenkunden gerichtet wurde. Ich gebe nicht zu, warum um alles in der Welt ich dem Teil zustimmen sollte, in dem wir alles getan haben, was wir versprochen hatten, und im Gegensatz zu ... niemals irgendwelche Fristen überschritten haben. Dies wäre im Januar geschehen, und dies wird einige Tage vor dem geplanten Tag vorgeschlagen Zahlung. Zu dem CEO-2 unerwartet erklärt, dass die Anwendung auch Leistungsprobleme aufweist (was ein bequemer und universeller Grund ist), obwohl dies vor zwei Wochen während des Tests nicht einmal angekündigt wurde. Aber das ist noch nicht alles. Sie machen uns sofort dafür verantwortlich, dass sich die meisten Benutzer beim Testen im Januar überhaupt nicht bei der Anwendung anmelden konnten. Ich erinnere mich sicherlich an den Grund, warum dies der Fall war, aber irgendwie wird dies nicht wirklich berücksichtigt. D bietet an, die Details der Implementierung zu verstehen, bittet jedoch darum, nicht auf technische Details einzugehen. Es ist nicht sehr klar, wie dies ohne technische Details geschehen kann. Ich erstelle jedoch einen detaillierten Bericht mit der Tatsache, dass die Implementierung zu bestimmten Zeitpunkten durchgeführt wird. Außerdem nehme ich Videos auf als Die Anwendung funktioniert und ich demonstriere alle Funktionen. Das Video wird vom Anwendungsprotokoll begleitet, sodass Anforderungen und Antworten vom Backend sichtbar sind.
Nach anderthalb Wochen erhielten wir unseren CEO-2-Bericht, der meine Haare ein wenig bewegte, und dann sank auch meine Stimmung - aufgrund der Tatsache, dass es überhaupt passiert. Ich stelle fest, dass dies kein Missverständnis oder, wie es lächerlich ist, die technische Naivität der anderen Seite ist. Vor ein paar Wochen haben wir eine Sprache gesprochen, die für einander verständlich war.
Ich werde die wichtigsten Punkte auflisten:
- Das Facebook-Login gibt an, dass es notwendig ist, das Test-Token für diesen Benutzer zu aktivieren, über das ich in JIRA geschrieben habe. Die Schlussfolgerung der anderen Seite ist, dass es keine Facebook-Anmeldefunktion gibt.
- Registrierung über fb, es ist nicht klar, was es überhaupt ist, wir versuchen es herauszufinden, und selbst T stimmt zu, dass es keine solche Funktionalität in der Anwendung gibt, es gibt keine Funktionalität, aber aus irgendeinem Grund gibt es einen Punkt. Urteil - nicht umgesetzt, aber es ist nicht sehr klar, was genau.
- Leistung: Aus irgendeinem Grund erscheint in beiden Fällen erneut ein Nexus 5x-Telefon mit Android 8.0.0 (auf w3bsit3-dns.com und android-central gibt es viele Themen dazu), und es wird gezeigt, was ich selbst am Telefon gesagt habe - es kommt und geht oft Aus der Suche geht hervor, dass die Anwendung regelmäßig den weißen Bildschirm beleuchtet, der in RN sichtbar ist, wenn der Speicher in Schwierigkeiten ist, was ich selbst bei 1 GB Speicher nicht beobachtet habe.
Aber im Allgemeinen sind dies alles kleine Dinge, die man diskutieren könnte, aber vor dem Hintergrund des Folgenden macht dies keinen Sinn:
- Es wird eine alte Version des Antrags verwendet , die aufgrund der Verfügbarkeit eines Abonnements fälschlicherweise einen Registrierungsvorschlag herausgegeben hat, auf die Schaltfläche "Favoriten" klickt, die Meldung "Bitte registrieren" erscheint, es wird geschlossen: Es gibt keine Favoritenfunktion. Dasselbe passiert auf den Schaltflächen "Als gelesen markieren" und "Erinnerung", und diese Nachricht wächst auf fünf Punkte (von insgesamt ~ 20), von denen einige ganz global aufgerufen werden, nicht nur als "Bereitstellung von Inhalten durch die Anwendung".
- Es gibt überhaupt keine Erwähnung von ziemlich vielen Funktionen, die Audio abspielen, aber das Lustige ist, dass es keine Tests für das Material gibt, zu dem wir in der letzten Woche aufgefordert wurden.
- Bezahlung: Mit Google Play geht es gut und geht zum Backend, aber als Antwort gibt das Backend aus, dass es kein Abonnement gibt. Die andere Seite gibt vor, nicht zu verstehen, was ihr Backend überhaupt ist , sondern erklärt lediglich, dass die Funktionalität als Ergebnis ihrer Tests als nicht realisiert erkannt wird und der Rest nicht ihre Probleme sind. Es ist seltsam, warum es einfach war, das Backend nicht wegzulassen und nicht zu sagen, dass die Anwendung nichts anderes als einen „Verbindungsfehler“ erzeugt.
Und der Höhepunkt:
- Einige Zahlungspunkte gelten als nicht implementiert, da die Einkaufsliste keine Abonnements für 6, 9 und 12 enthält und einige weitere Monate von Google Play übernommen wurden. Sie haben sie dort einfach nicht eingegeben , obwohl sie sagten, dass sie sich mit der Konsole befassen würden dich selbst.
Die Punkte werden auf seltsame Weise multipliziert. Ich habe versucht, dies auf unterschiedliche Weise zu tun, aber ich habe kein solches Ergebnis erzielt. Wir kommen zu dem Schluss, dass wir uns freuen sollten, wenn sie 40% für die Arbeit bezahlen. Wie reagiert D, der es auf sich genommen zu haben scheint, auf solche Argumente zu antworten? - auf keinen Fall - gab vor, ein Fisch zu sein.
Nun, und das Finale, nachdem klar wurde, dass es nichts mehr herauszufinden und zu beweisen gab, wurde uns direkt zum Ausdruck gebracht, dass das, worauf wir uns zuvor geeinigt hatten, ausschließlich unsere Probleme waren, sondern das, was wir in JIRA und geschrieben haben Sie kümmern sich nicht wirklich um Status, da die Anwendungsentwicklung minimiert wird.
Ich gestehe, als ich zum ersten Mal auf eine ähnliche Unhöflichkeit in der IT stoße. Ich war bereit, meinen Fall zu beweisen und sogar zuzugeben, dass ich falsch lag, wenn ich darauf hinwies, aber was ich definitiv nicht von einem Unternehmen erwartet hatte, das sich als Produkt für professionelle Manager positioniert und sogar einen Blog auf einem Hub hatte - eine einfache Dummheit.
Nachwort
Es war eine anständige Zeit, ich habe beschlossen, das Backend zu fragen, ob sie über ihre Leistungsprobleme Bescheid wissen. Es stellte sich heraus, dass es so etwas nicht gab. Ich habe mich entschlossen, diejenigen zu fragen, die an der iOS-Anwendung beteiligt sind, und hier scheint es einen ähnlichen Abfluss zu geben, aber die Anwendung funktioniert bereits: Alles, was sie derzeit tun, ist, die Farben der Schatten und die Länge des Mindestkennworts von 6 auf 8 Zeichen zu ändern und umgekehrt Sie sagten, dass es ein Zahlungsproblem gab, das eine dringende Freigabe erfordert. Die Benutzer kochen davon, die Bewertung der App fliegt eine Schaufel hinunter, aber es sieht so aus, als würde CEO-2 keine Korrekturen veröffentlichen. Natürlich teilte ich ihnen meine Schwierigkeiten mit, und sie erzählten mir, dass die aktuelle Situation keine Überraschung verursachte, und erzählten eine Geschichte, von der sie von einem ehemaligen Mitarbeiter wussten:
Vor langer Zeit erschien ein Mitarbeiter im Unternehmen, der nichts mit Entwicklung zu tun hatte. Aber nach ein wenig Arbeit entschied er, dass die Site (da es damals nichts anderes gab) erneuert werden sollte, wie es ihm richtig erscheint (
anscheinend, damit alles "so schnell wie möglich" war ), aber am Ende schien es, dass er nicht fertig werden konnte, was er begonnen hatte, und er wurde gefragt zum Ausgang. Nach einigen Jahren, die wir bereits Zeugen sind, trat er nach dem Wechsel der Direktoren erneut im Unternehmen auf und versucht weiterhin aktiv, seine eigene, noch unvollendete Site zu implementieren. Und da die Site anscheinend nicht einmal über eine primitive API für die Arbeit mit Anwendungen verfügt und die Nudeln ihrer Bereitschaft bereits an die Ohren der neuen Führung gehängt wurden, stören diese Anwendungen auch den Implementierungsplan, und wir brauchen eine Entschuldigung, um sie loszuwerden und wiederholen Sie es bereits unter der neuen Site.
Im Allgemeinen hat sich das Mosaik entwickelt, eines ist nicht klar - und hier ist meine Zahlung. Zur Abwechslung habe ich mich entschlossen, diesen Vorfall zu beschreiben. Vielleicht wird jemand einfach Spaß haben, aber jemandem wird geholfen, wachsamer zu sein (
neue zukünftige Entwickler der Anwendung für Android wahrscheinlich :) ), und wahrscheinlich wollte ich nur sprechen und dieser Geschichte ein Ende setzen.
PS:Wenn ich zusammenkomme, werde ich auch versuchen, einen technischen Artikel über React-Native zu schreiben, da ich aus dieser Arbeit nicht wirklich eine solche Gelbfärbung herausholen möchte.