Eu trabalho em uma empresa de médio porte, mas com uma força de TI muito pequena.
No ano passado (2011), escrevi um aplicativo muito popular entre um grande grupo de usuários finais. Atingimos um prazo no final do ano passado e algumas funcionalidades (chamarei de funcA a partir de agora) não foram adicionadas ao aplicativo desejado no final. Portanto, esse aplicativo está em execução ao vivo / produção desde o final de 2011, devo acrescentar sem problemas.
Ontem, um grupo inteiro de usuários finais começou a reclamar que a função que nunca estava no aplicativo não está mais funcionando. Nossa prioridade nesta empresa é que, se um aplicativo for quebrado, ele deve ser corrigido primeiro antes dos projetos priorizados.
Comparei código e consultas e não há diferença desde 2011, o que é proofA. Consegui, então, convencer um dos usuários finais a admitir que nunca funcionou com o proofB, mas desde então o usuário final voltou e disse que estava trabalhando anteriormente ... Acredito que a horda de usuários finais tenha assimilado dela. Também revi minhas notas para este projeto, que possui requisitos e atualizações diárias sobre o projeto que afirma especificamente "a função não foi alcançada devido a restrições de tempo", proofC.
Conversei com muitos deles e posso ver onde eles podem ser confundidos, pois estão muito distantes do contexto da programação, mas também sei que eles são inteligentes o suficiente para atuar em um grupo, a fim de ignorar as ordens de priorização do projeto, a fim de obter funcionalidade que eles desejam para facilitar seu trabalho.
A pior parte é que agora o pensamento do grupo está se estabelecendo e meu chefe e o chefe de TI estão realmente começando a acreditar neles, mesmo que não haja alterações no código ou na consulta. No que diz respeito à revisão do estado da lógica, ela é muito cortada e seca ao ponto de se 1 = 1, funcA não funcionará.
Portanto, este é o fim da descrição do meu cenário, mas estou tentando não me atrapalhar com as métricas de desempenho devido a isso, que essencialmente me levou a corrigir um problema de produção que não existe que provavelmente assumirá o controle 1 mês.
fonte
Respostas:
Disputas sobre fatos facilmente observáveis são realmente fáceis de resolver: basta observar os fatos. Se eu disser "há uma árvore com madeira púrpura do lado de fora da minha casa", qualquer pessoa que possa vir à minha casa poderá verificar a verdade ou a falsidade da minha afirmação por si mesma.
Se eles estão reclamando que o FuncA costumava estar no produto e costumava funcionar em uma versão anterior e agora não está funcionando, e você acha que nunca esteve no produto, peça a eles que o provem. (Ou, em palavras mais gentis, diga algo como "estamos tendo problemas para reproduzir o problema. Você poderia nos ajudar aqui?")
Dê a eles uma cópia da versão anterior, se ainda não tiverem, e obtenha-os no LiveMeeting, e mostre como eles costumavam usar o FuncA. Se eles não puderem fazer isso, então (esperançosamente) eles perceberão que não estava lá depois e sairão do seu caso a respeito, ou pelo menos tentarão uma tática diferente para implementá-lo. (E certifique-se de incluir alguém da gerência ou da PM no LiveMeeting.)
fonte
Esta não é uma questão que possa ser tratada com fatos - se você tentar, perderá credibilidade.
Primeiro, aceite que o software está "quebrado" - pois não faz o que os usuários desejam. Agora, aceite que os usuários têm o direito de fazer com que o software faça o que eles querem - é o que o software é, portanto. Então, o que temos é um software defeituoso e um engenheiro se recusando a corrigi-lo ...
Como resultado, se o sistema que você executa para definir prioridades, esses usuários não conseguem consertar seu software através dos canais normais, eles estão usando canais secundários e escalando meias verdades mais altas na cadeia alimentar para tentar manobrar o sistema. nesse meio tempo, fazendo com que seus KPIs pareçam ruins (sua principal preocupação deve ser os clientes, não os KPIs) - Seus KPIs são considerados "danos colaterais" se eles gostam de você, ou um efeito colateral benéfico se não o fizerem. No entanto, eles têm algum controle sobre o quanto acontece - melhor eles gostam de você.
Então, o que está acontecendo é que o sistema está quebrado e todo mundo está tentando manipular as coisas para conseguir o que deseja. Eles querem um recurso e você deseja manter seus KPIs impecáveis.
A menos que você possa consertar o sistema ou aprender a jogar com a política do escritório rapidamente, o jogo acaba: você perde.
Nota: Nenhuma dessas discussões envolve deadlines, discussões sobre bug versus recurso, quem está pagando etc. Esses são fatos - e fatos não importam (bem, eles meio que importam, mas podem ser manipulados de várias maneiras .... ) na política do escritório.
fonte
Organizacionalmente, sinto um problema.
Existe uma hierarquia que inclui o chefe de TI e seu chefe. Se sua organização é tradicional (não parece Agile), você é um recurso e eles são gerenciadores de recursos. Você tem um emprego em período integral chamado desenvolvimento de software. Se os usuários finais estão solicitando recursos diretamente, definindo suas prioridades e tentando gerenciar seu tempo, seus gerentes são redundantes. Eles podem ser responsáveis perante os usuários finais, mas se eles estão fazendo o trabalho deles, você é responsável perante eles e eles precisam protegê-lo de sair do modo de desenvolvedor focado para o modo de desenvolvedor defensivo .
Alguns pontos para definir o contexto da minha resposta:
Você será capaz de fazer um trabalho de qualidade muito melhor e com mais motivação se for apreciado em vez de ser o bode em um processo que o chefe de TI deve possuir. É o caminho justo e o caminho produtivo. Espero que você seja gerenciado dessa maneira e, em algum momento no futuro, espero que você gerencie os outros dessa maneira.
fonte
Em caso de falha da realidade como essa, a melhor coisa é seguir em frente. Em vez de discutir sobre o passado, fale sobre como fazê-lo funcionar e quão fácil ou difícil será. Realmente não importa se o problema está corrigindo ou implementando pela primeira vez. Se a gerência deseja que A seja feito antes de B, faça isso.
fonte
Você é o único desenvolvedor a ter trabalhado neste projeto? Parece que você respondeu a alguém enquanto fazia o projeto. Onde está essa pessoa em tudo isso? Onde está a documentação do projeto dizendo o que foi entregue?
Deve haver uma trilha de papel de documento. Um documento de treinamento mostrando como usar o aplicativo. Uma especificação funcional descrevendo o que foi desenvolvido. Se um recurso não foi incluído, também deve haver documentação. Alguém deveria ter tido que assinar dizendo que aceita isso.
Não deve ser a sua palavra contra a deles, deve estar toda na documentação.
Se você não possui esta documentação ... então, temo que você precise morder esta. Considere isso uma lição de vida. No final do dia, seus usuários são seus clientes e, como diz o ditado: o cliente está sempre certo. Elabore como adicionar esse recurso e quanto tempo levará. Faça uma reunião e diga algo como 'Nossos registros mostram que esse recurso nunca foi implementado, mas podemos obter vida útil em x semanas. Devemos ir à cabeça?
E pelo amor de tudo o que é sagrado ... obtenha a documentação necessária para mostrar que foi aprovada.
fonte