Como minha vida se transformou em um livro de Kafka

Esta é uma história longa e triste sobre o relacionamento na equipe de TI, a cultura corporativa e o desenvolvimento conjunto. Espero que ela ajude alguém a não cometer nossos erros e a construir melhores relacionamentos com os colegas.

Entrada


No final de março de 2018, comecei a trabalhar, como me pareceu, em uma empresa sueca confiável e atraente, com um grande departamento de TI de 200 pessoas. Eu sonhava em participar muito no desenvolvimento de novos aplicativos Java, conhecendo melhor as estruturas Spring, aprendendo novas tecnologias (antes disso, acidentalmente, entrei em uma empresa onde o SVN ainda era usado), participando de discussões interessantes, obtendo e deixando comentários adequados na Revisão de Código (e não se preocupe apenas com espaços e recuos) - em uma palavra, faça parte de uma comunidade profissional e seja capaz de se desenvolver como especialista. A notória cultura corporativa sueca e a heterogênea equipe internacional me incentivaram e reforçaram minhas esperanças de nossa cooperação frutífera com a empresa.

Nos primeiros meses, eu realmente poderia dizer que encontrei tudo o que estava procurando. Eu rapidamente mergulhei no desenvolvimento, participei do lançamento do MVP, aprendi muito e até aprendi o Kotlin, o que me permitiu dar uma contribuição viável para outros projetos.

Mas minha felicidade não durou muito ...

Recrutamento


No início de setembro, um novo funcionário apareceu em nossa equipe, por simplicidade, chamarei-o de Gianni (descendente de italianos que se mudou para o Brasil). O líder da nossa equipe, Kira, e os idosos que o entrevistaram não expressaram nenhum entusiasmo específico, mas, por algum motivo, ele conquistou o coração do chefe de Kim's Kirin (apresento muitos nomes fictícios agora).

Ao contrário de todos os nossos desenvolvedores relaxados (que quase entraram em greve quando foram convidados a não usar as Bermudas no verão para trabalhar), Gianni parecia exatamente tão brilhante: em qualquer +35 em calças, camisa de mangas compridas e botas pretas polidas. No limiar, ele pediu um salário melhor do que o de nossos idosos e afirmou que tinha “cinco mais” ofertas de emprego por telefone. Aparentemente, sob a pressão de todos esses argumentos inegáveis, Kim decidiu atender a todos os pedidos de um jovem ambicioso, apesar dos protestos de Kira. Nosso período de teste dura seis meses, por isso decidimos levá-lo e experimentá-lo.

É interessante que Gianni se posicionou como um Java-Spring Senior, embora, como aprendi mais tarde, na realidade trabalhei com PHP por vários anos e antes de chegarmos a nós - com apenas um projeto Java.

Primeiros passos


Desde que eu entrei para um novo colega, passei bastante tempo com ele nos seus primeiros dias. Tudo parecia normal em geral, exceto pelo fato de ele muitas vezes continuar olhando para o telefone mesmo durante nossa conversa com ele, e às vezes ele ignorava tudo o que eu dizia.

A primeira tarefa de trabalho de Gianni foi o estabelecimento de nosso Kibana. Um novo lançamento aconteceria em duas semanas, e todos decidiram que seria melhor fazer uma revisão detalhada de nosso aplicativo posteriormente. E para Kibana, um período de duas semanas foi perfeito (a empresa já havia estabelecido toda a infraestrutura para isso, era necessário apenas fixá-la em nosso aplicativo).

Um mês depois - após o lançamento, o longo sofrimento de como é difícil configurar o logback e algumas brigas nos devops (que, naturalmente, não querem funcionar) - o Kibana terminou. E, apesar de estarmos passando por um período de correção ativa de bugs de vários tamanhos em um aplicativo grande e em dois microsserviços (você pode encontrar algo do seu agrado), Gianni começou a configurar o Grafana.

A grafana levou um total de dois meses. As primeiras semanas e meia foram gastas escrevendo uma linha com a coleção de métricas sob cada execução lançada e colocando isso no código de revisão. Quase imediatamente após a publicação, deixei um comentário dizendo que o componente AOP é adequado para coletar métricas e, na segunda semana e meia, Gianni leu sobre AOP em geral, sobre AOP na primavera em particular, para decidir se minha ideia é razoável. Somente depois que outros desenvolvedores entraram na revisão, ele começou a implementá-la.

Lembro-me do dia em que realmente trabalhei muito: nosso senor Karl saiu de férias, tive que apresentar a nova desenvolvedora Sarah, e o número de ingressos não me deixou esquecer meus deveres básicos. Gianni veio até mim, dizendo que estava tentando mergulhar no AOP e que, para finalmente entender o que eu queria ver lá, ele precisava de uma sessão de programação em pares ou de um trecho de ideia (o que quer que fosse).

Pareceu-me então que estragar os aspectos da aplicação na mola consiste em cerca de três componentes:

  • adicionar dependência;
  • projeto de componentes;
  • criando classes com as anotações necessárias.

Um usuário avançado de Java não deveria ter causado dificuldades técnicas, de acordo com minhas estimativas, não uma delas, mas a organização das classes pode levar bastante tempo. Em geral, para não me distrair dos meus bugs e não impor meu próprio gosto a uma pessoa, preferi preparar um trecho de código com todos os tipos de variações no tópico sobre o que a AOP abre para economizar tempo e tempo.

A implementação se arrastou por mais duas semanas. O Java não foi compilado e as métricas não foram adicionadas. Não houve perguntas para mim ou para outros desenvolvedores, todo o sofrimento foi suportado sozinho.

Paralelamente, alguns outros eventos estranhos começaram a ocorrer. Havia alguns deles, mas eu me lembrava bem desses dois.

  1. . , , , -, - - . , , " " "", -- , .
  2. (, ): ", , - ?"
    : ", ."
    ( , , ): " ----, ."



. - ( ), . , . .

, «» (, , AOP ). , :) , , :

  • code snippet AOP ( " " );
  • , ;
  • , ( , );
  • , ;
  • .

, , — .

: AOP , , «» , . PO, , , .

— , , . . , :

  • ( , , );
  • : ( );
  • gradle- ;
  • static , Spring-.

, , . : « , - ».

: POC , . , , - , . , , . : «». .

, , , , . HR, , — , , . , , . , . .

, . . , , , .


. , .

: . , , , , . , ( 20!!!), — . , ( ) , , , Angular.

:
. .
(): ", ?"
: " , , ."
: ", , "
, , , "" "bbb". - : " - ? , - ."
: "-, , . , , , ."
: " - , , , , ."
: " ? , , ?"
: " , ."
: " ."
(): " ."
, .


, . , , , , , .

. . , . , .


: . (, , ) , — «» , . ( , , ), , , — . , . , , . , .

: ( ) , — . , . , , , .

. , , . , , . HR. , . , ?

. , . , «» , , .

- - — . . … , - .

, , .. . , , «» — . , , , ( ).

— — . , : . .


, , , , . , , - 404, - .

( ), — (, , , , ), , . : , . , , .

, , , / . , .

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


All Articles