Trabalho em uma equipe pequena, em uma empresa de médio porte, a maioria das quais não está envolvida no desenvolvimento de software. Eu sou o desenvolvedor mais novo e menos experiente e não tinha formação profissional ou acadêmica em software antes de iniciar, mas estou bastante satisfeito com o quão respeitada é minha opinião e sou grato por ter sido levado a sério em um estágio tão inicial da minha carreira.
Ainda assim, sinto que deveria estar fazendo mais com essa quantidade generosa de tempo de antena. Como equipe, parece que temos problemas para fazer as coisas. Gostaria de sugerir algo para melhorar a situação, e acho que seria ouvido se fosse uma boa ideia, mas estou sem saber o que sugerir.
Entre as coisas que posso identificar como problemas estão:
- A especificação das tarefas em questão é escassa. Isso ocorre em parte porque o gerenciamento é um gargalo e não temos dinheiro ou pessoas para nos comprometermos a elaborar requisitos detalhados, tanto quanto gostaríamos. Também é em parte porque o software que estamos desenvolvendo é investigativo e o método preciso não é claro até que seja demonstrado e usado para determinar sua eficácia.
- O Lead Dev gosta muito do que ele chama de 'prototipagem' a ponto de ultimamente começar a insistir que tudo é 'prototipado', o que para o resto de nós parece escrever código ruim e entregá-lo aos modeladores para brincar. Não está claro o que ele espera sair deste exercício em muitos casos. A implementação "real" sofre então por causa de sua insistência em que as boas práticas levam muito tempo com a criação de protótipos. Eu nem comecei a ser capaz de desvendar essa lógica distorcida e não tenho certeza se quero tentar.
- Espera-se que os modeladores nos digam tudo sobre a metodologia desejada em detalhes precisos, e é assumida a confiança absoluta de que o que eles lançam é teoricamente perfeito. Isso quase nunca é verdade, mas nenhuma ação é tomada para corrigir essa situação. Ninguém do lado da modelagem levanta preocupações de uma maneira estruturada com probabilidade de agir, nem busca orientação na aplicação das melhores práticas. Nada é feito sobre a passividade deles também.
- Eu tentei empurrar o TDD para a equipe antes, mas achei difícil, pois é novo para mim e, embora aqueles com supervisão do meu trabalho estivessem dispostos a tolerá-lo, nenhum entusiasmo foi demonstrado por mais ninguém. Como não posso justificar a quantidade de tempo que gasto em chafurdar e não terminar os recursos, a ideia foi abandonada no momento. Estou preocupado que não seja atendido novamente, porque ninguém gosta de saber como fazer seu trabalho.
- Agora, temos um servidor de integração contínua, mas é usado principalmente para executar testes de regressão de várias horas. Foi deixado em aberto que ele deveria estar executando testes de unidade e cobertura de cobertura total também, mas no momento ninguém os escreve.
- Toda vez que levanto a questão da qualidade com o desenvolvedor líder, recebo uma resposta para o efeito de 'O recurso de teste A é direto, o recurso B é muito mais importante para o usuário, mas é muito difícil de testar, portanto, não devemos testar o recurso UMA'. Mais uma vez, não fiz progressos na tentativa de desvendar essa lógica.
.... ufa. Quando eu digo assim, parece muito pior do que eu pensava. Suponho que, ao que parece, este é um pedido de ajuda.