Em projetos pessoais (ou trabalho), se alguém ficar preso em um problema ou esperar para descobrir uma solução para o problema, se você pular para outra seção do seu código, não acha que será um bom motivo para sua aplicação será de buggy ou pior, mas nunca será concluído?
Supondo que você não esteja usando git e codifique cada recurso para uma ramificação específica, as coisas podem ficar fora de controle, pois você tem três recursos diferentes nos quais está trabalhando e possui problemas não resolvidos em cada um.
Então, quando você termina o trabalho, fica estressado porque tem esses problemas pendentes e um código incompleto.
Qual é a melhor maneira de evitar esse problema? (se você tiver isso)
Suponho que usar algo como git e criar um ramo por recurso é a maneira mais segura de evitar esse mau hábito.
Alguma outra sugestão?
fonte
Respostas:
Isto não é um problema. Afastar-se temporariamente de um problema desconcertante é uma das melhores maneiras de descobrir esse problema (mais tarde, quando você está pensando sobre isso ou na próxima vez em que se senta com uma nova perspectiva / mente).
Sempre certifique-se de utilizar a ramificação do controle de origem corretamente e não precisará se preocupar com as meias soluções no código. Algumas pessoas nunca cometem intervalos, mas isso é apenas uma escolha pessoal. Você nunca deve realmente fazer pausas para compartilhar com outras pessoas.
fonte
Como o smp7d mencionou , pular por aí pode lhe dar uma boa pausa mental do problema em questão. No entanto, é importante não esquecer que o código em que você estava trabalhando ainda está incompleto. Certifique-se de saber de onde parou.
Como o smp7d mencionou, controle de origem e ramificação é uma ótima maneira de dividir seu novo código de recurso e ver como ele difere da base de código principal.
Uma sugestão que tenho é que, se você estiver trabalhando em um método específico, verifique se há um teste de unidade bem nomeado em torno desse método. Dessa forma, ao trabalhar com esse código no dia / semana / mês / ano seguinte, você poderá dizer claramente o que o método deve fazer, mesmo que atualmente não passe no teste.
fonte
Isso é um problema? Não quando lhe ocorre 10% dos recursos que você está tentando implementar. Às vezes, você fica mais claro quando faz algo diferente primeiro.
Obviamente, é um problema quando você fica paralisado por 90% dos recursos que tenta implementar - então você precisa da ajuda de outras pessoas ou de um ligeiro chute do seu chefe para concluir o que você criou (é claro, o último será ser contraproducente se você ficou preso devido a problemas técnicos reais).
A melhor opção para esse caso geralmente é tentar dividir o recurso em que você está trabalhando em sub-recursos menores ou "trechos de recursos", que podem ser implementados, testados e depurados um a um. Para mim, ajuda escrever essas fatias de recursos, questões em aberto, partes a serem feitas em uma lista, dar-lhes prioridades (A, B, C é suficiente) e trabalhar as coisas com maior prioridade primeiro.
fonte
Tem sido minha experiência que "pular por aí", ou mais claramente "Pular aleatoriamente" é um sintoma de um problema mais urgente, um dos objetivos mal definidos.
Se você tiver uma ideia muito clara, por escrito, se post-its no lado do monitor ou em especificações formais anexadas ao rastreador de problemas de sua escolha, você quase sempre sabe exatamente em que trabalhar a seguir . Se você estiver sempre trabalhando em uma dessas próximas coisas, terá uma boa chance de ter sucesso no projeto.
Se, por outro lado, sua idéia do que é a próxima coisa mais importante é obscura, é muito mais difícil encontrar algo para trabalhar que realmente resolva o problema que seu projeto pretende resolver ou, mais especificamente, é muito menos e seco ao decidir que essa alteração específica está completa e resolve um problema específico.
Se você tem um objetivo como "tornar a interface do usuário mais fácil de usar", bem, é quase impossível dizer qual será a próxima correção ou quando você terminar de "corrigir a interface do usuário" e poderá passar para outra coisa. Se, por outro lado, você tiver um objetivo como "combinar esses menus suspensos em um campo de pesquisa com preenchimento automático" e "'foo' 'for concluído automaticamente como' Fooly Brand Baring '", é totalmente óbvio quando você corrigiu Esse problema.
Não escreva nenhum código até ter uma ideia muito clara de quando parar e, se não tiver uma ideia clara, trabalhe para obter um desses em vez de iniciar outro ramo para algum recurso geral.
Se você tem uma especificação de trabalho tão boa (mesmo para projetos pessoais), então "pular" é totalmente bom, seguro e útil.
fonte
Embora fugir de um problema possa ajudá-lo a resolvê-lo, lembre-se de que há um custo para alternar contextos. Você deve tentar fazer isso apenas quando estiver realmente preso ou quando uma tarefa crítica surgir (por exemplo, um cliente está inoperante).
Se você estiver alternando constantemente entre as tarefas, poderá acabar com vários recursos pela metade e muito tempo perdido. É por isso que práticas como o kan-ban o incentivam a definir um limite de trabalho em andamento. Dessa forma, você pode se concentrar em concluir, no máximo, apenas algumas tarefas por vez, aumentando assim a taxa de transferência.
fonte
Às vezes, pode ser útil limitar o número de recursos implementados em paralelo. Recuse-se a começar a implementar um recurso extra se esse limite for excedido até que outro recurso seja concluído. Essa abordagem é chamada Kanban
fonte