Mestre em Gestão e Freelancer. A história em três partes

Para quem simplesmente rola mais longe, um breve resumo: “google: freelance assine um contrato”, obrigado pela atenção.

Uma descrição um pouco mais completa: como descobri novos níveis de gerenciamento graças a um cliente ao trabalhar em um projeto freelancer conjunto.

Os dois primeiros atos são essencialmente introdutórios, o ponto culminante da ação e a aparência do esqueleto no armário ocorrem no terceiro ato. Quem gosta de assistir apenas ao filme final pode pular para a terceira parte .

Ação um: tolerante


Atores: I, conhecido C, Companhia X, CEO1

Setembro:


- você quer escrever um programa para android para X?
- vamos lá, mas não estamos envolvidos no desenvolvimento do projeto, nem nos testes, nem na parte administrativa, a propósito, vamos escrever no React-Native.

Outubro:


Depois de conversar com o CEO1, estabelecemos o prazo - ~ 3 meses, acordado sobre como o aplicativo será lançado - inicialmente daremos a um número limitado de usuários, se estiver tudo bem - daremos a um número grande, depois concluiremos os pagamentos, pentearemos o design e o lançamento, após o lançamento terminaremos alguns, não muito importantes , questionário (teste do usuário por material). Termina com seis meses de suporte. Discutimos um pouco a tecnologia React-Native - o CEO1 temia que a tecnologia fosse nova, mas garantimos que, em caso de problemas críticos, culparíamos a nós mesmos, o que naturalmente poderia afetar os termos. Os medos foram em vão, o React-Native + Redux provou ser bom. A ideia de que você pode substituir o aplicativo iOS por um também gostava do outro lado, embora essa tarefa fosse além do escopo do contrato.

Assim que isso foi acordado, em algumas semanas emitimos um protótipo e um documento listando a funcionalidade principal, após o que o cliente inesperadamente desejava iniciar os testes já em dezembro para chegar ao novo ano com o lançamento. Ficamos um pouco surpresos por ainda não termos começado, e os prazos já estavam se esgotando para nós, mas, de qualquer forma, não adiaríamos e dissemos que tentaríamos.

Novembro:


Encho o aplicativo com funcionalidade, sem esquecer a bela animação, até tiro alguns dias de folga no trabalho principal para chegar a tempo, aparafusei os fios para que mais tarde o design possa ser alterado de forma rápida e conveniente. No React-Native, tudo é criado com bastante facilidade e simplicidade. Em um ponto, ainda havia problemas com o Redux, mas, depois de um dia e meio do teste, cheguei à conclusão de que o preparei um pouco incorretamente - você não pode "uma página com redux <=> muitos componentes", mas precisa de uma "página <=> muitos componentes com redux ”, tudo começa a funcionar bem, mas desde então começo a lançar periodicamente o aplicativo no Redmi-2 com 1 GB de memória para evitar esses casos. O resultado de novembro - alguns dias antes do início de dezembro, tudo o que está prometido está pronto, o aplicativo é bastante funcional e pode ser enviado para a primeira rodada de testes.

Dezembro:


Por cerca de três semanas, o outro lado tenta fazer uma lista de 10 pessoas para quem o pedido pode ser enviado, depois que desaparece completamente, em geral é possível entender - o novo ano está chegando. Corrijo pequenos problemas, melhoro e otimizo alguma coisa.

Janeiro:


Meados de janeiro. Chega uma carta informando que a lista está pronta e finalmente enviada aos primeiros testadores. Duas revisões bastante detalhadas são fornecidas, que geralmente avaliam positivamente o aplicativo e eu imediatamente corrijo comentários não críticos. Mas algo estava errado - começaram as reclamações de que outros usuários não podiam fazer login usando seus nomes de usuário e senhas. Sem nem pensar, presumimos que o problema esteja em algum ponto do back-end de teste do cliente e, provavelmente, os dados nele não coincidem com o fato de que no servidor principal, em algumas semanas, isso é esclarecido e corrigido simplesmente recarregando os dados de prod para teste.

Prendo a funcionalidade de pagamento ao google-play, embora sua implementação ainda não esteja no back-end, faço a interação por analogia com o que está no aplicativo iOS da apple-store, escrevo um emulador de back-end para essa funcionalidade, estou testando.

Ação 2: incremental.


Atores: I, amigo C, gerente CEO2, testador T, diretor D.

Fevereiro:


Deixe-me lembrá-lo que fevereiro já começou. Mas e o momento? Por que eu estava com pressa? Bem, tudo bem, o estágio acabou, e a aplicação, mesmo com um atraso, é de qualquer maneira melhor do que nenhuma. Estamos aguardando que os dez primeiros sejam solicitados a testar novamente, mas a re-correspondência não ocorre; como é que estamos surpresos, estamos procurando por empresas D. Algumas semanas depois, chega uma carta informando que o CEO1 está sendo substituído pelo CEO2, nada vem à mente, exceto pelo banal "esta é uma vez". Obviamente, acenamos com a cabeça, pensando que entendemos as razões pelas quais o CEO1 foi removido e agora tudo provavelmente vai dar certo. CEO2 começará a trabalhar no próximo mês.

Março:


No meio do mês, aparece um novo CEO2, que, na primeira semana, diz as coisas certas: ele traz o testador T, nos diz que em nenhum caso devemos gastar tempo testando o console ou configurando qualquer outro administrativos, e o testador T. lidará com tudo isso.O principal é agora que temos um JIRA comum para interação e coordenação. É bom e até excelente, dizemos, mas os prazos já foram perdidos tanto, e o projeto foi essencialmente empurrado para uma caixa longa, então agora, para tirá-lo de lá, vamos definir alguns prazos para os dois lados + então ainda precisamos mantê-lo por seis meses . Bem, eles nos dizem, vamos considerar o primeiro dia de maio como o início do suporte e pagamento da garantia, mesmo que ainda não nos preparemos. Não há problemas, respondemos, vamos determinar o que é crítico para nós.

Depois de uma semana ou duas, verifica-se que existem três coisas críticas principais:

1) Por alguma razão, o questionário foi o primeiro, embora antes disso nos tivessem dito o que era menos importante em toda a aplicação.
2) A validação da validação de email de login está no lado do cliente.
3) Pagamento, embora também deva ser somente após a primeira etapa do teste.
4) faça o login via facebook, embora em janeiro tenhamos sido solicitados a removê-lo.

A lista de bloqueadores e questões críticas inclui itens como:

4) O separador vertical entre login e senha na página de registro.
5) Minimize o teclado na página de alteração de senha na conta do usuário ao alternar entre os campos.

O ponto 1 é feito durante a semana, em paralelo, a importância do ponto 2 é discutida cerca de três horas duas vezes por semana, já que existem padrões de desenvolvimento de aplicativos conhecidos por todos ( exceto eu, é claro ), mas insisto que isso não é apenas necessário, mas isso não afeta significativamente o back-end, além de exigir a duplicação da mesma lógica em todos os aplicativos e no site, além disso, há usuários corporativos no sistema que não têm um login de email. O outro lado diz que entenderá esse problema em detalhes, depois de uma semana e meia, aparece um documento de várias páginas que descreve todas as opções de login em todos os aplicativos e no site (além disso, eles são iguais), embora ainda não esteja claro como coordenar os itens para diferentes tipos de usuários . Vou pular os detalhes, vou dizer que depois de muitas horas, o outro lado finalmente concorda com a minha oferta. Por fim, o CEO-2 está lançando a funcionalidade de pagamento nº 3 - google-play para back-end.

Abril:


Realizo todas as críticas, grandes e até menores ( mesmo aquelas que, no meu entender, não são assim ), já que não é muito difícil - é mais fácil fazer do que discutir. O back-end efetua o pagamento, mas não retorna algo em uma das etapas, o que geralmente é normal para o processo de desenvolvimento.

É aqui que entra a primeira chamada estranha, o CEO-2 oferece inesperadamente para garantir que o aplicativo funcione o mais rápido possível, o mais rápido possível, não entendo muito bem, o testador T diz que, em geral, está tudo bem, nenhum usuário anterior mencionou problemas de desempenho, mas aqui, ingenuidade, digo que no telefone mais antigo que encontrei, notei que a saída da página de pesquisa, quando todos os mais de 300 livros são exibidos, ocorre com um atraso, mas, para um ferro mais relevante, esse problema não é tão crítico em Eu não vejo nada.

Faltam duas semanas para o início do próximo mês, tudo o que foi prometido nesta fase foi feito (de fato, tudo, exceto a lambida do design, incluindo o que eles não se comunicaram) e até, na minha opinião, muito mais - horas de toque inútil foram mantidas, como nada pode acontecer já. Tudo o que estava fechado para mim no JIRA, mas ... os bloqueios do telegrama começam, onde conversamos em comum. Em geral, é intermitente, mas é claro que todos os participantes aparecem on-line, mas não respondem e não escrevem apenas - CEO2 e T, depois de uma semana, finalmente fica claro que algo está errado aqui e estamos novamente procurando por D.

Ato Três: Final


Uma semana depois, somos convidados a telefonar. Algo completamente novo está sendo dito que o aplicativo foi decidido entrar em colapso, pois o back-end supostamente tem problemas de desempenho, o motivo parece um tanto duvidoso, ainda digo que não observei nenhum problema com o back-end e o aplicativo armazena em cache tudo , e também não pode influenciá-lo. Mas somos oferecidos a pagar apenas parte do trabalho, embora também ocorra que o aplicativo já foi entregue a um cliente corporativo. Não admito por que diabos devo concordar com a parte em que fizemos tudo o que prometemos, nunca quebrando prazos, ao contrário de ..., e isso teria acontecido em janeiro, e isso é proposto alguns dias antes do dia programado pagamento. Para o qual o CEO-2 afirma inesperadamente que o aplicativo também tem problemas de desempenho (que é uma razão conveniente e universal), embora duas semanas atrás durante o teste isso não tenha sido anunciado nem uma vez. Mas isso não é tudo, eles imediatamente nos culpam pelo fato de que durante os testes em janeiro, a maioria dos usuários não conseguiu acessar o aplicativo, eu certamente lembro o motivo, mas de alguma forma isso não leva em consideração. D se oferece para entender os detalhes do que é implementado, mas pede para não entrar em detalhes técnicos, não está muito claro como isso pode ser feito sem entrar em detalhes técnicos, mas faço um relatório detalhado com o fato de que ele é implementado em pontos com o tempo gasto, além disso, gravo vídeos como o aplicativo funciona e eu demonstro todas as funcionalidades, o vídeo é acompanhado pelo log do aplicativo para que as solicitações e respostas do back-end sejam visíveis.

Depois de uma semana e meia, recebemos nosso relatório do CEO-2, que fez meu cabelo se mexer um pouco e depois meu humor também caiu - pelo fato de que isso acontece. Observo que isso não é algum tipo de mal-entendido ou, é ridículo pensar, a ingenuidade técnica do outro lado, algumas semanas atrás, falávamos bastante uma língua que era compreensível entre si.

Vou listar os principais pontos:

  • O login do facebook informa que é necessário ativar o token de teste para esse usuário, sobre o qual escrevi no JIRA. A conclusão do outro lado é que não há funcionalidade de login no Facebook.
  • O registro através do fb, não está claro o que é, estamos tentando descobrir, e mesmo T concorda que não existe tal funcionalidade no aplicativo, não há funcionalidade, mas, por algum motivo, há um ponto. Veredicto - não implementado, mas não está muito claro o que exatamente.
  • Desempenho: por alguma razão, novamente dois pontos, em ambos os casos, um telefone nexus 5x com o Android 8.0.0 aparece (em w3bsit3-dns.com e android-central há muitos tópicos sobre isso), e é mostrado o que eu disse ao telefone sobre ele - ele entra e sai muitas vezes a partir da pesquisa, percebe-se que o aplicativo ilumina periodicamente a tela branca, visível no RN, se a memória estiver com problemas completos, o que eu não observei nem em 1 gb de memória.

Mas, em geral, essas são todas as pequenas coisas que se pode tentar discutir, mas no contexto a seguir, isso não faz sentido:

  • É feita uma versão antiga do aplicativo , que emitiu erroneamente uma proposta de registro com base na disponibilidade de uma assinatura, clica no botão "Favoritos", aparece a mensagem "favor registrar", conclui-se: não há funcionalidade de favoritos. O mesmo acontece no botão "marcar como lido" e "lembrete", e essa mensagem aumenta para cinco pontos (de um total de ~ 20 no total), alguns dos quais são chamados globalmente, não apenas como "entrega de conteúdo pelo aplicativo".
  • Não há nenhuma menção à funcionalidade de reproduzir áudio, mas o mais engraçado é que não há testes no material que nos pediram na semana passada.
  • Pagamento: com o google-play, tudo corre bem e vai para o back-end, mas em resposta, o back-end indica que não há assinatura. O outro lado finge que não entende qual é o back-end , mas simplesmente declara que a funcionalidade, como resultado de seus testes, é reconhecida como não realizada, e o resto não é problema deles. É estranho o motivo de simplesmente não omitir o back-end e não dizer que o aplicativo não produz nada além de um "erro de conexão".

E o clímax:

  • Considera-se que vários pontos de pagamento não foram implementados devido ao fato de não haver assinaturas para 6, 9 e 12 na lista de compras e mais alguns meses retirados do google-play, eles simplesmente não os inseriram lá , embora dissessem que iriam lidar com o console você mesmo.

Os pontos são multiplicados de uma maneira estranha, tentei fazê-lo de maneiras diferentes, mas não obtive esse resultado, e concluímos que deveríamos ser felizes se pagar 40% do trabalho. Como D responde, que parece ter assumido a responsabilidade de responder a tais argumentos? - de jeito nenhum - fingia ser um peixe.

Bem, e o final, depois que ficou claro que não havia mais nada para descobrir e provar, fomos diretamente expressos que o que tínhamos combinado antes era exclusivamente nossos problemas, mas o que escrevemos no JIRA e eles realmente não se importam com nenhum status, pois o desenvolvimento de aplicativos está sendo minimizado.

Confesso que a primeira vez que me deparei com uma grosseria semelhante em TI. Eu estava pronto para provar o meu caso e até admitir que estava errado se apontasse para ele, no entanto, que definitivamente não esperava de uma empresa que se posicionasse como um produto para gerentes profissionais e até tivesse um blog em um hub - um simples engano.

Epílogo


Foi um momento decente. Decidi perguntar ao back-end se eles sabiam sobre seus problemas de desempenho. Acontece que não havia nada disso. Decidi perguntar a quem está envolvido no aplicativo iOS e, aqui, parece, ocorre uma fuga semelhante, mas o aplicativo já está funcionando: tudo o que eles estão fazendo atualmente é mudar as cores das sombras e o comprimento da senha mínima de 6 para 8 caracteres e vice-versa, enquanto Eles disseram que havia um problema de pagamento que requer uma liberação urgente, os usuários estão fervendo com isso, a classificação do aplicativo está caindo em uma pá, mas parece que o CEO-2 não vai liberar correções. É claro que compartilhei minhas dificuldades com eles, e me disseram que a situação atual não causou nenhuma surpresa e contei uma história sobre a qual eles sabiam de um ex-funcionário:

Há muito tempo, um funcionário apareceu na empresa que não estava relacionado ao desenvolvimento. Mas, depois de um pouco de trabalho, ele decidiu que o site (já que não havia mais nada) deveria ser refeito, pois parece correto ( aparentemente para que tudo fosse "o mais rápido possível" ), mas, no final, parece que ele não conseguiu concluir o que começou e foi perguntado para a saída. No entanto, depois de vários anos, que já somos testemunhas, após a mudança de diretores, ele apareceu novamente na empresa e continua tentando ativamente implementar seu próprio site ainda inacabado. E como o site, aparentemente, nem tem uma API primitiva para trabalhar com aplicativos, e o macarrão de sua prontidão já foi pendurado nos ouvidos da nova liderança, esses aplicativos também interferem no plano de implementação, e precisamos de uma desculpa para nos livrar deles. e refaça já no novo site.

Em geral, o mosaico se desenvolveu, uma coisa não está clara - e aqui está o meu pagamento. Então, para a mudança, decidi descrever esse incidente. Talvez alguém se divirta, mas alguém será ajudado a ser mais vigilante ( novos futuros desenvolvedores do aplicativo para android provavelmente :) ) e, provavelmente, eu só queria falar e pôr um fim a essa história.

PS:
Se eu me reunir, também tentarei escrever um artigo técnico sobre o React-Native, pois não quero realmente tirar esse amarelecimento desse trabalho.

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


All Articles