Ao iniciar um novo projeto, meu chefe sempre evita tomar decisões fixas. Ele costuma dizer: ok, comece a escrever algo e seja o mais genérico possível. Quando você termina, olhamos como continuamos. Seu argumento é basicamente que você nunca sabe e "desenvolvimento ágil".
Para manter a pergunta o mais genérica possível: o que você faz se seu chefe não gosta de tomar decisões?
Basta cumpri-lo e escrever um código que possa sofrer refatoração pesada e reescrita parcial algumas semanas depois? Ou continue discutindo até que o chefe tome pelo menos algumas decisões? Esta é mais ou menos a minha estratégia atual. Porque é como uma lei da física, em algum momento algo precisa ser entregue. Ou porque o chefe do chefe quer ver resultados ou porque as coisas estão se tornando ridículas em algum momento.
Também observo que meu chefe está criticando quase tudo. Até sugestões baseadas em seus próprios ...
Respostas:
Construa protótipos
Basta começar a desenhar telas que não fazem nada a princípio (presumivelmente você tem o suficiente para fazer isso?)
Você deve torná-lo parcialmente funcional lentamente e, eventualmente, refatorar parte do código incorreto quando ficar mais claro o que você está tentando fazer.
É um problema comum que eles não saibam o que querem até ver algo e perceberem que não é isso que querem. Descobri que quando alguém quer que você comece a criar 'uma estrutura' ou algo 'genérico' como o que ele está dizendo, você só terá problemas se tentar. As estruturas já estão escritas, você não precisa fazer isso.
fonte
Reuni vários problemas com a sua mensagem: 0-Não é seu trabalho gerenciar o projeto e não é seu trabalho reunir os requisitos do usuário final. 1-O chefe não conhece os requisitos exatos 2-O chefe não fala com os usuários finais sobre os requisitos 3-O chefe está lançando uma terminologia que ele realmente não entende ágil 4-Você está trabalhando em uma solução que escrito várias vezes e você não está feliz com isso
Quanto aos pontos 1,2 e 3, pouco se pode fazer a respeito, se você não for idoso. No entanto, o seguinte pode ser feito:
A - Peça a ele para compartilhar com você o plano do projeto. Ele pode ter um ou criará um mostrando as tarefas e os prazos. Um deles deve ser sobre análise e coleta de requisitos. Se não sugerir.
B - Prepare algumas referências sobre a importância dos requisitos para o sucesso do projeto de software
C - Prepare para ele uma página do que o Agile é e não é.
D - Prepare uma lista de entradas típicas para o estágio de design e convença-o do valor de cada uma.
E - Sugira a adição de um analista de negócios e / ou modelador de dados à equipe. Essas funções terão que ser sentidas com o usuário final e você obterá as informações necessárias ou pelo menos uma boa parte delas.
F - Veja como outros desenvolvedores cooperaram com esse cara.
Quanto ao item 4, você pode sugerir que ele use uma abordagem de prototipagem ou um gerador de código que o ajude, você e o usuário a se decidirem sobre os aspectos funcionais do aplicativo. A maioria das ferramentas não gera GUI perfeita, mas pelo menos você pode capturar a funcionalidade necessária.
Em todos os casos, certifique-se de documentar claramente cada uma das iterações e enviar a ele um email sobre quais contribuições você recebeu, o que fez (em alguns detalhes) e qual é o resultado. Certifique-se de atribuir os resultados à causa apropriada, como (falta de requisitos etc.).
Infelizmente, algumas pessoas não aceitam conselhos. Portanto, tenha cuidado como você se comunica com ele.
Isso não está indo bem!
Boa sorte.
fonte
Eu costumava ter um chefe assim - na verdade, brincaria que seu lema era "indecisão é a chave da flexibilidade".
Qualquer que seja o trabalho de desenvolvimento que você realiza, provavelmente você está em uma posição melhor para resolver o problema do cliente do que seu chefe. Se você não sabe qual é o problema que o cliente está tentando resolver (o que não é a mesma coisa que uma especificação), alguém não está cumprindo corretamente os requisitos.
Esboce alguns layouts de página ou crie um protótipo não / semi-funcional. Mas faça alguma coisa. Não está claro em sua postagem se você está criando um software para cliente completo ou aplicativos da web, mas a beleza desse último é que você pode lançar cedo, com freqüência. Comece com o esqueleto e trabalhe a partir daí. Um início falso não faz mal se houver algum diálogo fluindo e algumas decisões tomadas.
Temos um ditado em torno de $ WORK (aplicativos da Web internos) para nossos clientes: "Vou lhe dar uma coisa para que você possa me dizer o que deseja". Esteja preparado para jogar fora o primeiro rascunho, mas você pode se surpreender com a raridade que precisa.
fonte
Saliente para ele que os livros do Agile sugerem o adiamento de decisões, contanto que você possa, mas não mais do que isso . Toda decisão tem um ponto em que deve ser tomada, e talvez você esteja lá agora.
Por outro lado, também se questione. Você realmente precisa decidir qual camada de persistência você usará para este aplicativo? Ou você pode começar a gravá-lo em um CSV e mantê-lo abstrato o suficiente para tomar essa decisão posteriormente?
fonte
Escreva seu próprio documento de especificações e faça uma revisão onde você o explique e ele assine. Então você se tornará chefe, e seu chefe passará a mais questões de gerenciamento interpessoal do que a questões técnicas.
fonte
Participe de conversas de 'gerenciamento ascendente' com seu chefe e clientes, descubra algumas soluções, escolha a melhor para sua equipe implementar, encontre falhas nas outras e 'gerencie' seu gerente para tomar a decisão 'certa'.
E, claro, verifique se ele acha que foi tudo idéia dele / dela. (especialmente quando tudo dá errado!)
fonte
Você precisa projetar e implementar algo. Como seu chefe não toma decisões, faça você mesmo. Reserve um tempo extra para documentar suas decisões e suposições antes de implementá-las. Envie para quem quiser, incluindo seu chefe. Felizmente, essa lista inclui mais do que o seu chefe, pois isso o pressionará para tomar algumas decisões, pois ele sabe que os outros sabem que você está pronto para prosseguir. Você ficará surpreso com a rapidez com que obtém feedback quando toma decisões por escrito, especialmente se tomar decisões com as quais outras pessoas não concordam. Enquanto isso, continuarei com as decisões que você tomou até que seja informado o contrário.
Se você acabou de perder tempo implementando o que seu chefe não queria, é por ele e não por você, pois ele sabia o caminho que você seguiria.
Além disso, algumas pessoas têm dificuldade em começar, mas depois que veem algo tangível, a mente entra em ação. Talvez o seu chefe seja assim e você esteja dizendo a ele o que você planeja fazer por escrito fará com que a mente dele funcione.
fonte
Faça você mesmo as decisões e comece a codificar. É claro que desenvolver de maneira flexível ajudará (leia Padrões, princípios e práticas ágeis de Robert C Martin, se você ainda não o fez), mas toda a flexibilidade do mundo não ajudará se nenhuma decisão for tomada. Você pode achar que precisa apenas desenvolver o que pensaé necessário e modifique-o conforme necessário. Frequentemente, os clientes / chefes não sabem o que querem até vê-lo ou até verem algo que não querem. Isso provavelmente o levará para fora do escopo de ser um desenvolvedor, mas é a vida. Costumo descobrir que eu e meus colegas estamos efetivamente tomando decisões comerciais. Às vezes, isso não é questionado, e as decisões que tomei começam a conduzir os negócios, simplesmente porque ninguém mais tomaria a decisão. Certifique-se de listar TODAS as suas suposições e decisões (sem exceções) e apresentá-las ao seu chefe.
fonte