Master of Management et Freelancer. L'histoire en trois parties

Pour ceux qui font simplement défiler la page, un bref résumé: «google: un pigiste signe un contrat» merci de votre attention.

Une description un peu plus complète: Comment j'ai découvert de nouveaux sommets de gestion grâce à un client lors d'un travail sur un projet freelance conjoint.

Les deux premiers actes sont essentiellement introductifs, le point culminant de l'action et l'apparition du squelette dans le placard se produit dans le troisième acte. Ceux qui aiment regarder uniquement le film final peuvent passer directement à la troisième partie .

Première action: tolérante


Acteurs: I, connaissance C, société X, PDG1

Septembre:


- voulez-vous écrire un programme pour android pour X?
- Allez, mais nous ne sommes pas impliqués dans le développement de la conception, ni les tests, ni la partie administrative, au fait, écrivons sur React-Native.

Octobre:


Après avoir discuté avec le PDG1, nous avons fixé le délai - ~ 3 mois, convenu de la façon dont l'application sera publiée - initialement, nous donnerons à un nombre limité d'utilisateurs, si tout va bien - nous le donnerons à un grand nombre, puis nous terminerons les paiements, peignerons la conception et la publication, après la publication, nous terminerons certains, pas très important , questionnaire (tests utilisateurs par matériel). Il se termine par six mois de soutien. Nous avons un peu discuté de la technologie React-Native - CEO1 avait peur que la technologie soit nouvelle, mais nous avons assuré qu'en cas de problème critique, nous nous en tiendrions responsables, ce qui pourrait bien sûr affecter les termes. Les craintes ont été vaines, React-Native + Redux a fait ses preuves. L'idée que vous pouvez remplacer l'application iOS par une autre a également plu à l'autre, bien que cette tâche dépasse le cadre de l'accord.

Dès que cela a été convenu, dans quelques semaines, nous avons publié un prototype et un document répertoriant les principales fonctionnalités, après quoi le client souhaitait de manière inattendue commencer les tests dès décembre pour venir à la nouvelle année avec la sortie. nous étions un peu surpris que nous n'ayons pas encore vraiment commencé, et les délais étaient déjà épuisés pour nous, mais en tout cas nous n'allions pas le retarder et avons dit que nous allions essayer.

Novembre:


Je remplis l'application de fonctionnalités, sans oublier la belle animation, je prends même quelques jours de repos au travail principal pour être à l'heure, je vis les fils pour que plus tard le design puisse être changé rapidement et facilement. Sur React-Native, tout est créé assez facilement et simplement. À un moment donné, il y avait encore des problèmes avec Redux, mais, après un jour et demi d'essai, je suis arrivé à la conclusion que je l'avais mal préparé - vous ne pouvez pas faire "une page avec redux <=> beaucoup de composants", mais vous avez besoin d'une "page <=> de nombreux composants avec redux », tout commence à bien fonctionner, mais depuis lors, je commence à lancer périodiquement l'application sur Redmi-2 avec 1 Go de mémoire pour éviter de tels cas. Le résultat de novembre - quelques jours avant début décembre, tout ce qui est promis est prêt, l'application est assez fonctionnelle et peut être envoyée au premier tour de tests.

Décembre:


Environ trois semaines, l'autre partie tente de dresser une liste de 10 personnes à qui la demande peut être envoyée, après quoi elle disparaît complètement, en général, il est possible de comprendre - la nouvelle année arrive bientôt. Je corrige des problèmes mineurs, améliore et optimise quelque chose.

Janvier:


Mi-janvier. Une lettre arrive que la liste est prête et finalement envoyée aux premiers testeurs. Deux revues assez détaillées viennent, qui en général évaluent positivement la candidature, et je corrige immédiatement les commentaires non critiques. Mais quelque chose n'allait pas - des plaintes ont commencé selon lesquelles d'autres utilisateurs ne pouvaient pas se connecter en utilisant leurs noms d'utilisateur et mots de passe. Sans même y penser, nous supposons que le problème se situe quelque part du côté du backend de test du client, et très probablement les données sur celui-ci ne coïncident pas avec le fait que sur le serveur principal, en quelques semaines, cela est clarifié et corrigé en rechargeant simplement les données de prod à tester.

J'attache la fonctionnalité de paiement à google-play, bien que son implémentation ne soit pas encore sur le backend, je fais l'interaction par analogie avec ce qui est dans l'application iOS pour apple-store, j'écris un émulateur backend pour cette fonctionnalité, je teste.

Action 2: incrémentale.


Acteurs: I, ami C, manager CEO2, testeur T, réalisateur D.

Février:


Permettez-moi de vous rappeler que février a déjà commencé. Mais qu'en est-il du timing?, Pourquoi étais-je pressé? Bon, d'accord, l'étape est finie, et l'application, même avec un retard, est en tout cas mieux que rien. Nous attendons que les dix premiers soient invités à tester à nouveau, mais le réexpédition ne se produit pas, comment se fait-il que nous soyons surpris, nous recherchons des sociétés D. Quelques semaines plus tard, une lettre arrive que CEO1 est remplacé par CEO2, rien ne me vient à l'esprit sauf pour le banal "c'est un tour". Bien sûr, nous hochons la tête, pensant comprendre les raisons pour lesquelles le PDG1 a été supprimé, et maintenant tout ira probablement. CEO2 commencera ses travaux le mois prochain.

Mars:


Au milieu du mois, un nouveau PDG2 apparaît, qui, la première semaine, dit les bonnes choses: il apporte le testeur T, nous dit qu'en aucun cas ne devrions-nous passer du temps soit à tester la console, soit à en configurer une autre les tâches administratives et le testeur T s’occupera de tout cela. L’essentiel est maintenant que nous ayons un JIRA commun pour l’interaction et la coordination. C'est bon et même excellent, disons-nous, mais les délais ont déjà été tellement manqués, et le projet a été essentiellement poussé dans une longue boîte, alors maintenant, pour le sortir de là, fixons des délais pour les deux côtés + alors nous devons encore le maintenir pendant six mois . Eh bien, nous disent-ils, considérons le premier jour de mai comme le début de l'assistance et du paiement sous garantie, même si nous ne nous préparons pas à ce moment-là. Il n'y a pas de problèmes, répondons-nous, déterminons ce qui est essentiel pour nous.

Après une semaine ou deux, il s'avère qu'il y a trois principaux éléments critiques:

1) Pour une raison quelconque, le questionnaire était le premier, bien qu'avant cela, on nous ait dit ce qui était le moins important de l'ensemble de la demande.
2) La validation de la validation de la connexion par e-mail est du côté client.
3) Paiement, bien qu'il ne devrait être effectué qu'après la première étape des tests.
4) Connectez-vous via Facebook, bien qu'en janvier on nous ait demandé de le supprimer.

La liste des bloqueurs et des problèmes critiques comprend des éléments tels que:

4) Le séparateur vertical entre l'identifiant et le mot de passe sur la page d'inscription.
5) Réduisez le clavier sur la page de changement de mot de passe dans le compte utilisateur lors du basculement entre les champs.

Le point # 1 se fait pendant la semaine, en parallèle, l'importance du point # 2 est discutée environ trois heures deux fois par semaine, car il s'avère qu'il existe des standards de développement d'applications connus de tous ( sauf moi, bien sûr ), j'insiste néanmoins sur le fait que ce n'est pas seulement non nécessaire, mais cela n'affecte pas de manière significative le backend, non seulement cela nécessite la duplication de la même logique sur toutes les applications et le site, de plus, il y a des utilisateurs d'entreprise dans le système qui n'ont pas de connexion par e-mail. L'autre côté dit qu'il comprendra ce problème en détail, après une semaine et demie, un document de plusieurs pages apparaît qui décrit toutes les options de connexion dans toutes les applications et sur le site (en outre, elles sont les mêmes), alors qu'il n'est toujours pas clair comment coordonner les éléments pour différents types d'utilisateurs . Je vais sauter les détails, je vais juste dire le résultat de plusieurs heures, l'autre côté accepte finalement ma proposition. Enfin, CEO-2 lance la fonctionnalité de paiement n ° 3 - google-play pour le backend.

Avril:


Je réalise toutes les critiques, majeures et même mineures ( même celles qui à mon sens ne sont pas comme ça ), car ce n'est pas très difficile - c'est plus facile à faire qu'à discuter. Le backend effectue le paiement, mais il ne retourne rien à l'une des étapes, ce qui est généralement normal pour le processus de développement.

C'est là que le premier appel étrange entre en jeu, le PDG-2 propose de manière inattendue de s'assurer que l'application fonctionne "aussi vite que possible", qu'elle soit aussi rapide que possible, je ne comprends pas très bien, le testeur T dit qu'en général tout va bien, aucun utilisateur précédent n'a mentionné de problèmes de performances, mais moi, ici la naïveté, je dis que sur le téléphone le plus ancien que j'ai trouvé, j'ai remarqué que la sortie de la page de recherche lorsque tous les 300+ livres y sont affichés se produit avec un retard, mais pour un fer plus pertinent, ce problème n'est pas si critique dans Je ne vois rien.

Il reste deux semaines avant le début du mois prochain, tout ce qui a été promis à ce stade a été fait (en fait, tout, à l'exception du design licking, y compris ce qu'ils n'ont pas communiqué pour faire), et même, à mon avis, bien plus encore - des heures de sonnerie inutile ont été maintenues, comme rien ne peut déjà arriver. Tout ce qui m'était fermé dans JIRA, mais ... les verrous des télégrammes commencent, où nous avons une conversation commune. En général, c'est intermittent, mais il est clair que tous les participants apparaissent en ligne, mais ils ne répondent pas et n'écrivent pas seulement - CEO2 et T, après une semaine, il est finalement clair que quelque chose ne va pas ici, et nous recherchons à nouveau D.

Acte trois: Final


Une semaine plus tard, nous sommes invités à téléphoner. Quelque chose de complètement nouveau dit que l'application a été décidée à s'effondrer, car leur backend aurait des problèmes de performances, la raison semble quelque peu douteuse, je dis toujours que je n'ai observé aucun problème avec le backend, et l'application met tout en cache , et cela ne peut pas non plus l'influencer. Mais on nous propose de ne payer qu'une partie du travail, même s'il s'avère également que la candidature a déjà été remise à une entreprise cliente. Je n'admets pas pourquoi diable je devrais accepter la partie quand nous avons fait tout ce que nous avons promis, sans jamais casser les délais, contrairement à ..., et cela serait arrivé en janvier, et cela est proposé quelques jours avant la date prévue paiement. Pour lequel CEO-2 déclare de manière inattendue que l'application a également des problèmes de performances (ce qui est une raison pratique et universelle), bien qu'il y ait deux semaines lors des tests, cela n'ait pas été annoncé une seule fois. Mais ce n'est pas tout, ils nous accusent immédiatement du fait que lors des tests en janvier, la plupart des utilisateurs ne pouvaient pas du tout se connecter à l'application, je rappelle certainement la raison pour laquelle c'était le cas, mais d'une manière ou d'une autre cela ne tient pas vraiment compte. D propose de comprendre les détails de ce qui est mis en œuvre, mais demande de ne pas entrer dans les détails techniques, il n'est pas très clair comment cela peut être fait sans entrer dans les détails techniques, mais je fais un rapport détaillé avec le fait qu'il est mis en œuvre sur des points avec le temps passé, en plus, j'enregistre une vidéo comme l'application fonctionne et je démontre toutes les fonctionnalités, la vidéo est accompagnée du journal d'application afin que les demandes et les réponses du backend soient visibles.

Après une semaine et demie, nous avons obtenu notre rapport CEO-2, qui a fait bouger un peu mes cheveux, puis mon humeur a également chuté - du fait que cela se produise du tout. Je note que ce n'est pas une sorte de malentendu ou, c'est ridicule de penser, la naïveté technique de l'autre côté, il y a quelques semaines, nous parlions tout à fait un langage compréhensible les uns pour les autres.

Je vais énumérer les principaux points:

  • La connexion Facebook indique qu'il est nécessaire d'activer le jeton de test pour cet utilisateur, dont j'ai parlé dans JIRA. La conclusion de l'autre côté est qu'il n'y a pas de fonctionnalité de connexion à Facebook.
  • Enregistrement via fb, ce n'est pas clair du tout, nous essayons de le savoir, et même T convient qu'il n'y a pas une telle fonctionnalité dans l'application, il n'y a pas de fonctionnalité, mais pour une raison quelconque, il y a un point. Verdict - pas mis en œuvre, mais ce n'est pas très clair quoi exactement.
  • Performances: pour une raison quelconque, deux points à nouveau, dans les deux cas, un téléphone Nexus 5x avec Android 8.0.0 apparaît (sur w3bsit3-dns.com et Android-Central, il y a beaucoup de sujets à ce sujet), et il est montré ce que j'ai dit au téléphone moi-même - il entre et sort plusieurs fois de la recherche, on peut voir que l'application illumine périodiquement l'écran blanc, qui est visible en RN si la mémoire est en difficulté, ce que je n'ai pas observé même sur 1 Go de mémoire.

Mais en général, ce sont toutes de petites choses que l'on pourrait essayer de discuter, mais dans le contexte de ce qui suit, cela n'a pas de sens:

  • Une ancienne version de l'application est prise, qui a émis par erreur une proposition d'enregistrement sur la base de la disponibilité d'un abonnement, clique sur le bouton "Favoris", le message "veuillez vous inscrire" apparaît, il est conclu: il n'y a pas de fonctionnalité de favoris. La même chose se produit sur le bouton «marquer comme lu» et «rappel», et ce message passe à cinq points (sur ~ 20 au total), dont certains sont appelés de manière assez globale, pas seulement comme «livraison de contenu par l'application».
  • Il n'y a aucune mention de beaucoup de fonctionnalités de lecture audio, mais ce qui est drôle, c'est qu'il n'y a pas de tests sur le matériel qui nous a été demandé de le faire la semaine dernière.
  • Paiement: avec google-play ça se passe bien et va au backend, mais en réponse, le backend indique qu'il n'y a pas d'abonnement. L'autre côté prétend qu'il ne comprend pas du tout ce qu'est leur backend , mais déclare simplement que la fonctionnalité, à la suite de leurs tests, est reconnue comme non réalisée, et le reste n'est pas leurs problèmes. C'est étrange pourquoi il ne s'agissait tout simplement pas d'omettre le backend et de ne pas dire que l'application ne produit rien d'autre qu'une «erreur de connexion».

Et le point culminant:

  • Plusieurs points de paiement sont considérés comme non mis en œuvre en raison du fait qu'il n'y a pas d'abonnement pour 6, 9 et 12 dans la liste d'achats et que quelques mois supplémentaires sont extraits de google-play, ils n'y ont tout simplement pas entré , bien qu'ils aient dit qu'ils traiteraient avec la console vous.

Les points sont multipliés d'une manière étrange, j'ai essayé de le faire de différentes manières, mais je n'ai pas obtenu un tel résultat, et nous concluons que nous devrions être heureux s'ils paient 40% pour le travail. Comment D répond-il, qui semble l'avoir pris sur lui-même, pour répondre à de tels arguments? - pas du tout - fait semblant d'être un poisson.

Eh bien, et la finale, après qu'il soit devenu clair qu'il n'y avait plus rien à découvrir et à prouver, on nous avait déjà dit explicitement que ce que nous avions convenu auparavant était exclusivement nos problèmes, mais ce que nous avons écrit dans JIRA et ils ne se soucient pas vraiment des statuts, car le développement d'applications est minimisé.

J'avoue la première fois que je rencontre une grossièreté similaire en informatique. J'étais prêt à prouver mon cas et même à admettre que j'avais tort si je le montrais, mais ce que je n'attendais certainement pas d'une entreprise qui se positionne comme un produit pour les managers professionnels et avait même un blog sur un hub - un simple tromperie.

Épilogue


C'était une période décente, j'ai décidé de demander au backend s'ils connaissaient leurs problèmes de performances, il s'avère qu'il n'y avait rien de tel. J'ai décidé de demander à ceux qui sont impliqués dans l'application iOS, et ici, il semble, un drain similaire se produit, mais l'application fonctionne déjà: tout ce qu'ils font actuellement est de changer les couleurs des ombres et la longueur du mot de passe minimum de 6 à 8 caractères et vice versa, tandis que Ils ont dit qu'il y avait un problème de paiement qui nécessite une publication urgente, les utilisateurs en bouillent, la note de l'application descend d'une pelle, mais il semble que le PDG-2 ne va pas publier de corrections. Bien sûr, je leur ai fait part de mes difficultés, auxquelles ils m'ont dit que la situation actuelle ne provoquait aucune surprise, et ont raconté une histoire qu'ils connaissaient d'un ancien employé:

Il y a longtemps, un employé est apparu dans l'entreprise qui n'était pas lié au développement. Mais, après un peu de travail, il a décidé que le site (puisqu'il n'y avait plus rien d'autre) devait être refait car il lui semble être correct ( apparemment pour que tout soit "le plus vite possible" ), mais, au final, il semble qu'il ne pouvait pas achever ce qu'il avait commencé et on lui a demandé à la sortie. Cependant, après plusieurs années, dont nous sommes déjà témoins, après le changement de directeur, il est de nouveau apparu dans l'entreprise et continue à essayer activement de mettre en place son propre site, encore inachevé. Et puisque le site, apparemment, n'a même pas d'API primitive pour travailler avec les applications, et que les nouilles de sa disponibilité ont déjà été suspendues aux oreilles du nouveau leadership, ces applications interfèrent également avec le plan de mise en œuvre, et nous avons besoin d'une excuse pour nous en débarrasser. et refaire déjà sous le nouveau site.

En général, la mosaïque s'est développée, une chose n'est pas claire - et voici mon paiement. Donc pour le changement, j'ai décidé de décrire cet incident. Peut-être que quelqu'un s'amusera, mais quelqu'un sera aidé à être plus vigilant (les nouveaux futurs développeurs de l'application pour Android probablement :) ), et, probablement, je voulais juste parler et mettre fin à cette histoire.

PS:
Si je me rassemble, j'essaierai également d'écrire un article technique sur React-Native, car je ne veux pas vraiment retirer le jaunissement de ce travail.

Source: https://habr.com/ru/post/fr412785/


All Articles