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.
fonte
Respostas:
Deixe-me bancar o advogado do diabo por um momento:
O desenvolvedor líder gosta de prototipar porque as especificações são escassas. Provavelmente isso é uma coisa boa; é assim que as lojas iterativas funcionam.
Isso não funcionará em uma loja iterativa. A própria natureza do desenvolvimento iterativo é que os requisitos geralmente são incompletos. As iterações são o que é necessário para detalhar os requisitos.
Isso também não vai funcionar; você precisa entender a tecnologia antes de poder evangelizá-la. Além disso, em uma loja iterativa com requisitos escassos, o TDD pode estar sobrecarregado demais. É melhor incentivar a cobertura adequada dos testes de unidade.
Isso pode ser apropriado em uma pequena loja iterativa.
Parece que sua loja tem algumas restrições de tempo bastante apertadas; goste ou não, você está vinculado por essas restrições.
Também parece que você veio de uma parte da indústria de software que valoriza fazer as coisas "da maneira certa" em vez de colocar as coisas no mercado primeiro. Não há nada de errado nisso (é admirável, de fato), exceto que o primeiro a comercializar com um software de buggy geralmente é o vencedor. Não é justo, mas é assim que é.
fonte
Vou focar na prototipagem aqui
O principal problema dos protótipos é que eles são feitos como prova de conceito
no entanto, se você não puder desenvolver mais o protótipo e precisar reconstruir o produto final a partir do zero, poderá não ter construído o protótipo e gastou seu tempo construindo-o
meu conselho para sua equipe é obter alguma qualidade e flexibilidade nesses protótipos. Sei que não é possível criar coisas perfeitas pela primeira vez, mas tente permanecer extensível para requisitos futuros
fonte
Essas são boas respostas. Só posso acrescentar que "tentar se comunicar" é, na melhor das hipóteses, uma proposição duvidosa. As mudanças na maneira como uma organização trabalha não ocorrem rapidamente. Quando isso acontece, geralmente é como uma maré, onde o momento se desenvolve a partir de baixo e de cima. Portanto, você ficará mais feliz se manter as expectativas baixas e aguardar a chance de dizer como as coisas serão feitas ou esperar trabalhar com outra organização.
fonte
Você identificou alguém na empresa que "entende"? Se assim for, prenda-se a esse cara e aprenda o máximo possível com ele. Caso contrário, espere um pouco, comece a aprender e a crescer por conta própria (participe de um projeto de código aberto ou inicie seu próprio projeto) e procure um lugar que possa promover seu crescimento.
A pior coisa que pode acontecer é que você fique lá e aprenda a fazer as coisas da maneira errada. Sim, deve haver algum pragmatismo, mas uma equipe verdadeiramente qualificada pode fazer as coisas da maneira certa e ainda estar no prazo com um produto de qualidade. Parece que sua equipe atual não tem o que é preciso e você deve começar a procurar uma nova.
fonte