Entrevistas – Desenvolvedor Java – Agile #2

O manifesto ágil está muito presente em várias organizações, principalmente, quando falamos em transformação digital e a engenharia de software atual. Nesse post, vou responder com as minhas palavras algumas perguntas que costumo fazer em entrevistas, dar alguns caminhos para você estudar mais sobre o assunto e contar as minhas motivações para fazer essas perguntas sobre “Agile” mencionadas no post #0 da série.

Motivação

É um fato que a tecnologia está presente e se tornando cada vez mais um requisito para empresas continuarem competitivas em suas áreas de atuação, as metodologias agile, baseadas no manifesto ágil de 2001, fazem parte da “nova” engenharia de software que substitue a tradicional, conhecida como cascata. Conhecer métodos ágeis pode te ajudar a se ambientar e a falar a mesma língua dos seus colegas de trabalho, trabalhando no mesmo ritmo e com os mesmos rituais que eles.

Cada questão pode ter uma motivação diferente, então vou comentar antes da minha resposta de cada pergunta.

Perguntas

  • O que é metodologia ágil para você?

Motivação: saber o quanto você conhece dos métodos atuais de trabalho em engenharia de software e se já sabe falar na mesma linguagem técnica dos demais membros de um time ágil.

Resposta: É qualquer metodologia de trabalho criada com base no manifesto ágil, que valoriza indivíduos e interações mais do que processos e ferramentas, software funcionando mais do que documentação abrangente, colaboração com o cliente mais do que negociação de contratos e resposta a mudanças mais do que seguir um plano.

  • Tem experiência com Scrum, Kanban e XP? Qual é a diferença entre eles?

Motivação: a partir do manifesto, diversas metodologias de trabalho foram criadas e as empresas estão se adaptando e utilizando uma ou mais delas, misturando e inovando todos os dias. Então, a motivação para essa pergunta é: quanto você já está maduro em métodos ágeis e consegue contribuir?

Resposta: Sim, trabalho com métodos ágeis desde 2012.
O Scrum é um framework completo com diversas recomendações e cerimônias para emponderar times e contruir relações de confiança, valoriza a evolução constante e trabalha a partir de inícios e enceramentos de ciclos de entrega e feedback contínuos, também é bastante comum utilizar o quadro Kanban para trabalhar de forma mais visual durante as Sprints.
Com relação ao método Kanban, ele prevê um fluxo de tarefas a serem desenvolvidas, contribui de forma visual na identificação dos pontos de gargalo no fluxo do time e introduz o WIP para manter a fluidez nas etapas de trabalho. Diferente do Scrum, que espera que um Product Owner empurre tarefas para o time de desenvolvimento, o Kanban espera que qualquer membro do mesmo time possa “puxar” as próprias tarefas e acompanhá-las do início ao fim, o PO tem o papel de deixar a tarefa pronta para qualquer desenvolvedor iniciar.
Na minha visão, o grande diferencial do método XP em relação aos anteriores é a introdução do pair programming e a ideia de testes, integração e entrega contínua automatizada.

  • Qual é a cerimônia mais importante do Scrum na sua opinião?

Motivação: saber se você conhece as cerimônias do Scrum e ter uma ideia do que você valoriza e por quê.

Resposta: Acredito que todas tem o seu valor, mas a mais importante na minha visão é a Retrospectiva porque ela trata da evolução contínua e tem o papel de mostrar para o time o que deve ser mantido, eliminado e como poderá evoluir nas próximas iterações.

  • O que é débito técnico? Como você lida com débitos técnicos?

Motivação: entender como você lida com prazos, seu comprometimento com a entrega de valor e qualidade do que desenvolve.

Resposta: É uma dívida técnica que impacta negativamente a qualidade do software e foi gerada para atender ao prazo de uma entrega importante, geralmente inegociável por um grande impacto nos custos diretos e/ou indiretos. Débitos técnicos também podem surgir com o avanço da tecnologia e não ter relação direta com o negócio da empresa.
Para lidar com débitos técnicos, procuro isolar eles em um backlog, depois planejar o seu desenvolvimento em conjunto com novas features relacionadas ao contexto e negociar um prazo um pouco maior para realizá-las, desta forma acredito que consigo reparar uma dívida e gerar valor dentro do mesmo contexto.
Uma outra forma que conheço é priorizá-los de forma isolada para a iteração seguinte, mas em minha experiência, a satisfação de quem representa o cliente nestes casos é ruim e por isso valorizo mais a primeira abordagem do que esta. Quando um débito foi gerado para atender a um prazo, também considero válido levá-lo para a retrospectiva, entender o que falhou no planejamento para a existência daquele débito e buscar uma forma de evitar situações similares no futuro.

Estudar métodos ágeis pode te ajudar a responder essas perguntas, mas experimentá-los na prática do dia a dia também tem grande valor, porque a implementação dificilmente é “by the book”, cada empresa se adapta e utiliza os métodos da própria maneira no dia a dia e estudá-los poderá te ajudar a contribuir com seu futuro time.

Para saber mais

Gostou? Foi útil? Concorda ou discorda de algum ponto? Comenta ai e vamos aprender mais juntos.

Espero que te ajude 😉

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s