Que coisas tendem a atrasar um desenvolvedor?
Tente não publicar respostas que:
- são lentos agora, mas úteis no recurso. (TDD, refatoração, ...)
- listar uma distração .
Que coisas tendem a atrasar um desenvolvedor?
Tente não publicar respostas que:
Respostas:
Oh, este é fácil:
StackOverflow, programmers.stackexchange.com, etc. :)
Qualquer tentativa de seguir um processo que não seja adequado à tarefa em questão.
Isso pode ser todo tipo de coisa, mas as mais comuns que eu vejo incluem:
Todas essas coisas podem valer imensamente em alguns projetos ou em algumas situações, mas algumas organizações tentam fazer tudo de uma maneira e isso leva a um ajuste inadequado em outros projetos, que geralmente é a morte da produtividade.
Política
por exemplo: Quando mais de uma pessoa possui os requisitos (ou pior, dois interesses adquiridos diferentes), e eles fazem mudanças concorrentes e conflitantes nos requisitos enquanto o desenvolvimento está em andamento.
Muitas respostas falam sobre alternância de contexto e sair da zona, e o ruído, especialmente a conversa, é uma daquelas coisas que me levam a isso.
No meu mundo de cubos, estou cercado por barulho e conversa por todos os lados. Uma linha acima, a equipe de mainframe realiza reuniões de planejamento constantes na linha do cubo. Às vezes, eles se encontram com consultores em um escritório ao longo da parede, e isso tende a fazer barulho alto, gritar e rir e eu tenho que ir até lá e pedir que eles fechem as portas.
Por outro lado, a mesa de conferência da equipe da web fica do outro lado da parede do cubo oeste, então faço parte de todas as reuniões, gostemos ou não. Há também uma impressora do outro lado da parede do cubo sul, e isso sempre é bom para bate-papo com pessoas que ficam esperando suas impressões.
A resposta imediata e óbvia de " Você não pode simplesmente obter fones de ouvido com cancelamento de ruído" não ajuda quando o que você quer é silêncio.
Às vezes, para revisões de código, levo minha pilha de papéis para o refeitório (em horários que não são do almoço, é claro), mas há uma TV lá que geralmente é alta. Vou desligar se ninguém estiver assistindo. Caso contrário, vou encontrar um cubo vazio em outro departamento em outra parte do edifício.
Se você deseja que seus programadores façam o trabalho que precisam, que é predominantemente pensando, ponderando e considerando, eles precisam de um ambiente onde possam fazê-lo.
Escrevendo muitas linhas de código sem testes adequados.
Falta de café de alta qualidade.
ter que fazer estimativas perfeitas que não devem ser desviadas desde o início do desenvolvimento, é um cenário de ovo de galinha na minha opinião
Corrigindo a compilação quebrada de outra pessoa
Reuniões sem agenda.
Uma máquina lenta.
Falta de um segundo monitor.
Um rato velho que tem uma bola em vez dos bons novos.
Falta de acesso à Internet na máquina, tornando a consulta ao MSDN / stackoverflow / etc um pouco trabalhosa.
Evite tudo o que você tira da "zona". Isso significa sua caixa de entrada de email, seu aplicativo pop-up do twitter, seu bate-papo corporativo etc.
Ter uma condição de trabalho silenciosa significa também evitar esse ruído na área de trabalho .
Qualquer solicitação de mudança que seria mais fácil de implementar se você soubesse disso antes.
O que mais atrasa você é um bom post para isso.
...
Muitos projetos repetem os principais recursos no nível da infraestrutura repetidamente, diminuindo a velocidade dos negócios ao fornecer recursos que diferenciam os negócios dos concorrentes.
...
É inevitável que produtos e inovações ajudem a reduzir o tempo que os desenvolvedores gastam em tarefas não diferenciadoras. A questão é de que forma esses serviços e ferramentas assumirão.
...
Bem, ultimamente, a maior desaceleração ocorre porque estamos desenvolvendo várias coisas simultaneamente que deveriam ter sido feitas em uma ordem específica. Então, eu estou esperando até que (os nomes mudem para proteger os inocentes) John termine o componente que eu preciso para o meu pacote SSIS e Harry fique lento, esperando que eu importe registros, porque ele precisa de alguns dados para testar sua exportação (tente sempre) para escrever um relatório de exportação complexo quando não há dados em nenhuma das tabelas?) e todo mundo fica mais lento porque o design não foi concluído e as tabelas de banco de dados que precisamos executar nossas tarefas ainda não foram criadas e podem nem terminar sendo o que eles disseram que seriam, etc.
Mesmo que você tenha pedido para não listar as distrações, elas podem ser um grande fator. Observe o ambiente de trabalho e verifique se estão sendo interrompidos com frequência ou se é solicitado que façam outras coisas que não estão relacionadas ao projeto.
Às vezes, um desenvolvedor pode ficar parado porque está fazendo algo que nunca havia feito antes e não sabe onde procurar ajuda. Se for uma equipe ou indivíduo pequeno, pode ser ainda mais difícil. Nós tendemos a ser um pouco orgulhosos e não gostamos de admitir quando não sabemos como fazer as coisas. Além disso, não gostamos de pedir ajuda aos outros. Não há uma maneira fácil de conseguir que um desenvolvedor admita isso, exceto talvez perguntar se eles podem cumprir o prazo, ou o que eles precisam para cumprir o prazo, e depois esperar que sejam honestos. Você pode precisar oferecer outra ajuda ou encontrar alguém que possa ajudá-los.
Falta de requisitos claramente definidos, o que os leva a ter que descobrir as coisas ou tomar decisões.
Eu poderia continuar, mas é sexta-feira e quero esquecer o trabalho.
Muitas pessoas no projeto.
Visto várias vezes em que o gerenciamento decide, com base em dados reais, que eles precisam adicionar mais pessoas ao projeto. Isso acaba nas pessoas que sabem o que está acontecendo, precisando parar tudo para segurar as mãos de pessoas que sabem pouco sobre o que está acontecendo. Eu já vi mais de um projeto crescer em tamanho e depois ir ao banheiro rapidamente de lá, enquanto antes ele estava indo bem, embora talvez um pouco lento.
Então você deixa de estar um mês atrasado por causa da velocidade insuficiente / muito a fazer para não entregar, porque gasta totalmente o orçamento em todas essas pessoas extras.
Além das coisas mencionadas por outros, o longo caminho entre decidir compilar e executar seu código e obter um resultado positivo / negativo . Idealmente, esse RTT seria apenas um segundo, mas vi um exemplo de horas. BTW, o teste de unidade tenta lidar com esse problema.
Outro aspecto relacionado é a latência geral do seu ambiente de trabalho. Imagine que você precisaria trabalhar em uma conexão de área de trabalho remota com o computador do outro lado do mundo, em uma conexão assustadora. Eu estive lá. Eu odiei isso.
Papelada em excesso
Ter uma dependência de alguém que nunca está por perto (como seu chefe - se você precisar fazer uma pergunta, mas ele sempre está em reuniões)
Ferramentas e equipamentos inadequados.
Pessoas empurrando o remo sem motivo (qualquer alteração visível na interface do usuário está sujeita a isso) ou apenas discutindo sobre coisas triviais.
Máquina de café quebrada
Sendo atribuído as tarefas erradas
Essa é uma opinião altamente pessoal e talvez controversa, mas planejar e pensar muito em criar antecipadamente ou escrever código de "qualidade" o tempo todo. Há um ditado que diz que "semanas de codificação podem economizar horas de planejamento", o que pode ser verdade em alguns casos.
No entanto, muitas vezes vejo programadores tentando esboçar um bom design antes de iniciar a codificação. Acho que é mais fácil "continuar", enquanto você programa, você aprenderá mais sobre seu problema e solução, o que permitirá refatorar sua solução rapidamente para um bom design. A maioria dos problemas que surgem é praticamente desconhecida no início da codificação (pelo menos para minha mente fraca), portanto, perder muito tempo projetando antecipadamente é apenas uma perda de tempo.
É também por isso que eu não gosto de TDD, você perde muito tempo escrevendo testes, o que torna menos provável a refatoração ou leva muito tempo para reescrever os testes. Os testes de unidade são ótimos para alguns casos e algumas etapas de um projeto, mas o início de um não é um deles IMHO :)
Faça algo funcionar rapidamente e melhore.