Uma cartilha de solução de problemas para desenvolvedores de software

Nota: O seguinte artigo irá ajudá-lo com: Uma cartilha de solução de problemas para desenvolvedores de software

Os melhores desenvolvedores de software não apenas escrevem código – eles também o depuram. Se você escreveu sua base de código atual ou a herdou, esta cartilha fornece uma estrutura para as melhores práticas.

O mito do software zero bug

Todo software tem bugs. Este é um fato que qualquer pessoa que tenha atuado no ramo de desenvolvimento de software sabe. Seria incrivelmente caro tentar eliminar todos os pequenos defeitos em um aplicativo de qualquer complexidade. Não importa que o teste de software, em última análise, apenas prove a existência de problemas, não sua ausência. Dito isto, existem certos tipos de defeitos ou bugs de software que precisam ser corrigidos.

VEJO: Kit de contratação: desenvolvedor back-end (TechRepublic Premium)

Os suspeitos habituais

Há uma série de fatores que contribuem para erros de software. Abaixo estão alguns dos mais comuns:

  • Ambiguidade no comportamento esperado
  • Subsistemas ou componentes externos
  • Testes e prazos insuficientes
  • Erros de programação

Independentemente do culpado, em algum momento de sua carreira ou você decidirá, ou alguém decidirá por você, que um defeito deve ser corrigido. A forma como essa determinação é feita varia, mas geralmente é uma combinação de comportamento do cliente, ações, tolerância a perdas e minimização. A maioria dos desenvolvedores de software competentes pode corrigir um problema assim que a causa for descoberta. O processo de descobrir a causa é conhecido como solução de problemas ou depuração.

Solução de problemas x depuração

Em termos mais simples, a depuração é um subconjunto da solução de problemas. Você pode solucionar problemas sem depurar, mas não pode depurar sem solucionar problemas. Se isso parece confuso, é porque é.

A solução de problemas tende a ocorrer em um nível mais alto de abstração do que a depuração e se aplica a muitos componentes do sistema. É o processo de analisar o componente ou componentes de um sistema que estão causando problemas. A solução de problemas pode ser aplicada a qualquer sistema e não implica que o problema seja corrigido, mas o foco está em encontrar e entender a causa raiz.

A depuração, por outro lado, é específica do código de computador. Como desenvolvedor, se você for encarregado de depurar algum módulo de software, será solicitado que você encontre as instruções que causam o comportamento indesejado e corrija-o, tudo como parte da mesma sessão, quando possível.

Documentando bugs

A primeira etapa na solução de problemas e na depuração de comportamentos indesejados no software é certificar-se de que o problema está devidamente documentado. Isso garantirá que todas as partes envolvidas tenham o mesmo entendimento e ajudará a informar as etapas posteriores do processo. No mínimo, um bug devidamente documentado abrange o seguinte:

  • Descrição
  • Passos para reproduzir
  • Taxa de reprodução
  • Resultados esperados
  • Resultados reais
  • Ambiente e versão

Estimando correções de bugs

Como desenvolvedor, muitas vezes você será solicitado a estimar quanto tempo levará para encontrar e corrigir um bug. Infelizmente não há uma boa resposta. Uma prática recomendada é definir o tempo de seus esforços iniciais para 4 horas ou meio dia. Durante esta sessão inicial, você deve se concentrar em descobrir algumas informações importantes.

  • Você pode reproduzir o problema?
  • Você conhece a causa raiz?
  • Você o reduziu a uma área ou componente?

Se você conseguir encontrar e corrigir o problema dentro do prazo inicial, parabéns. Se não, provavelmente é apropriado ir em frente e fornecer algum tipo de estimativa de tamanho de camiseta com base em seu esforço inicial de depuração para as partes interessadas. Abaixo estão algumas orientações gerais, mas esteja avisado que sua milhagem pode variar:

  • Pequeno: Requer 4-8 horas para resolver.
  • Médio: Requer 2-3 dias para resolver.
  • Grande: pode exigir uma semana ou mais para resolver.
  • X-Large: exigirá membros adicionais da equipe e/ou planejamento para resolver.

Neste ponto, você pode estar se perguntando por que fornecer qualquer tipo de estimativa se estimar correções de bugs é uma ciência tão inexata. A verdade é que se trata de fornecer transparência tanto para ajudar a gerenciar as expectativas das partes interessadas quanto para fornecer opções aos proprietários de produtos quando ou se ficar aparente que não fazer nada até que a correção esteja disponível não é uma opção. Albert Einstein é creditado por ter dito uma vez: “Não podemos resolver nossos problemas com o mesmo nível de pensamento que os criou”.

Técnicas de depuração testadas e comprovadas

Todo IDE moderno tem uma infinidade de opções de depuração. Eles geralmente são específicos para seu ambiente de programação e visam facilitar sua vida como desenvolvedor. Dito isto, não negligencie o básico.

Imprimir coisas: muitas coisas

O registro ainda é uma das maneiras mais eficazes de solucionar um problema. Você ficaria surpreso com quantas vezes o registro revela que o código que você está solucionando nem está sendo chamado.

Leia a mensagem de erro

Pesquisar um erro no Google é uma ótima maneira de ver como aqueles que vieram antes de você podem ter resolvido algo, mas certifique-se de ter tempo para realmente ler a mensagem de erro primeiro. A maioria das linguagens e frameworks modernos lhe dará uma boa ideia de qual é o erro, e muitos sugerem correções específicas para sua situação no exato momento em que o erro foi encontrado.

Comece com um código que já funciona

Os desenvolvedores usam o controle de origem por um motivo. Sempre que você puder reverter para uma versão de trabalho e, em seguida, diferenciar as bases de código, poderá restringir a seção de código incorreta muito mais rapidamente. Mesmo que o erro tenha sido descoberto recentemente, muitas vezes você pode retroceder várias versões e aplicar as atualizações uma de cada vez até que o comportamento indesejado retorne para obter algumas informações sobre o problema.

Execute seu código sempre que fizer uma alteração

Parece doloroso, mas sério, executar o código e verificar as alterações de comportamento com a maior frequência possível pode evitar que você tenha que voltar atrás nas etapas de solução de problemas.

Dividir e conquistar

Muitas vezes esquecido, simplesmente comentar o código até que o problema desapareça pode ser uma maneira rápida e suja de descobrir as instruções ofensivas.

Depuração do pato de borracha

Às vezes, a solução de problemas de software se torna um esporte de equipe e exige um pensamento fora da caixa. Uma dessas técnicas é conhecida como “depuração do pato de borracha”. Baseia-se na premissa de que, às vezes, ao solucionar problemas de software, precisamos desacelerar para ir mais rápido. As etapas para a depuração do pato de borracha são descritas abaixo.

VEJO: Kit de contratação: desenvolvedor Python (TechRepublic Premium)

  1. Implorar, pedir emprestado, roubar, comprar, fabricar ou obter um pato de borracha (variedade de banheira).
  2. Coloque o pato de borracha em sua mesa e informe-o que você só vai repassar algum código com ele – se estiver tudo bem.
  3. Diga ao pato o que seu código deve fazer e, em seguida, entre em detalhes e explique seu código linha por linha.
  4. Em algum momento você estará explicando ao pato o que seu código está fazendo e perceberá que não é de fato o que seu código está fazendo. O pato vai olhar para você presunçoso.
  5. Agradeça ao pato por seu tempo e corrija o código!

Não entrar em pânico. Como a maioria das coisas que fazemos na vida, a solução de problemas de software fica mais fácil com a experiência e a prática. A chave é ser transparente com as partes interessadas durante todo o processo, manter sua abordagem organizada e metódica e não ter medo de pedir ajuda a seus colegas programadores.

Aumente seu conjunto de habilidades de TI e domine a codificação com estes recursos da TechRepublic Academy:

Table of Contents