Agile: Perguntas em Entrevistas Técnicas
Objetivo
O intuíto desse artigo é expor algumas perguntas técnicas que eu já fiz em entrevistas técnicas ou perguntas que me foram feitas.
Essa parte tratará exclusivamente sobre agile em geral ok ;D ? Outras publicações serão escritas com mais conteúdo específico.
As respostas são apenas a minha visão sobre o assunto, por tanto, de forma alguma são verdade absoluta, e inclusive pode ser que haja espaço para melhorias, correções e até visões diferentes das apresentadas aqui, fique a vontade, use os comentários e enriqueça a discussão.
Agile
O que é XP ?
TL;DR: XP é uma metodologia ágil de desenvolvimento de software que enfatiza a comunicação, simplicidade, feedback e coragem. As práticas específicas de XP ajudam a alcançar esses valores e a entregar software de alta qualidade de forma rápida e eficiente.
XP (Extreme Programming) é uma metodologia ágil de desenvolvimento de software que tem como objetivo entregar software de alta qualidade de forma rápida e eficiente. A metodologia foi criada por Kent Beck e se concentra em quatro valores principais: comunicação, simplicidade, feedback e coragem.
XP tem práticas específicas que ajudam a alcançar esses valores, incluindo:
Desenvolvimento em pares: os desenvolvedores trabalham em conjunto em um código para compartilhar conhecimentos e verificar erros.
Integração contínua: o código é integrado e testado regularmente para detectar problemas rapidamente.
Testes automatizados: testes automatizados são escritos para garantir que o software funcione corretamente e para detectar problemas rapidamente.
Refatoração: o código é regularmente refatorado para manter a qualidade e facilitar a manutenção.
Desenvolvimento orientado a objetos: o código é projetado com base em objetos que representam entidades no mundo real.
Entrega contínua: o software é entregue regularmente para garantir que os clientes recebam valor rapidamente.
XP é conhecido por sua abordagem colaborativa e flexível para o desenvolvimento de software. Os desenvolvedores são incentivados a trabalhar em conjunto, compartilhar conhecimentos e tomar decisões em conjunto. A metodologia também enfatiza a importância do feedback regular dos clientes e do time, para que os ajustes possam ser feitos rapidamente e de forma eficiente.
O que é SCRUM ?
TL;DR: SCRUM é uma metodologia ágil de gerenciamento de projetos que se concentra em entregas incrementais e iterativas, com foco na transparência, colaboração e comunicação constante entre a equipe e o cliente. A metodologia é amplamente utilizada em projetos de desenvolvimento de software, mas também pode ser aplicada em outras áreas de negócio.
SCRUM é uma metodologia ágil de gerenciamento de projetos que tem como objetivo aumentar a produtividade e a qualidade do desenvolvimento de software. A metodologia foi criada para ajudar as equipes de desenvolvimento a lidar com projetos complexos e em constante mudança, através de uma abordagem iterativa e incremental.
A metodologia SCRUM é composta por três principais papéis: o Product Owner, o Scrum Master e a equipe de desenvolvimento. O Product Owner é responsável por definir as funcionalidades e requisitos do projeto, o Scrum Master é responsável por garantir que a equipe esteja seguindo a metodologia e a equipe de desenvolvimento é responsável por desenvolver e entregar o produto.
O processo SCRUM é dividido em sprints, que são ciclos curtos de trabalho que duram de uma a quatro semanas. Cada sprint começa com uma reunião de planejamento, onde o Product Owner e a equipe de desenvolvimento definem as funcionalidades que serão desenvolvidas durante o sprint. Durante o sprint, a equipe trabalha em um conjunto de funcionalidades, que são revisadas e testadas no final do sprint em uma reunião de revisão.
Além disso, há também reuniões diárias de scrum, onde a equipe se reúne rapidamente para discutir o progresso e as dificuldades enfrentadas. Ao final de cada sprint, há uma reunião de retrospectiva, onde a equipe discute o que funcionou bem e o que pode ser melhorado no próximo sprint.
O SCRUM enfatiza a transparência, a colaboração e a comunicação constante entre os membros da equipe, bem como a entrega de valor para o cliente de forma rápida e eficiente. A metodologia é amplamente utilizada em projetos de desenvolvimento de software, mas também pode ser aplicada em outras áreas de negócio.
O que é KANBAN ?
TL;DR: KANBAN é uma metodologia de gestão de produção que se concentra na visualização do processo de produção em tempo real, na limitação do trabalho em progresso e na melhoria contínua. O sistema de cartões utilizado pelo KANBAN permite que a equipe de produção acompanhe o fluxo do processo e identifique oportunidades de melhoria.
KANBAN é uma metodologia de gestão de produção que tem como objetivo otimizar a eficiência e reduzir o tempo de espera em processos de produção. A metodologia foi desenvolvida pela Toyota na década de 1940 e, desde então, tem sido amplamente utilizada em diversos setores.
O KANBAN utiliza um sistema de cartões para controlar o fluxo de trabalho em um processo de produção. Cada cartão representa uma tarefa ou uma peça que precisa ser produzida. O cartão é movido entre as etapas do processo de produção, do início ao fim, permitindo que a equipe de produção visualize o andamento do processo em tempo real.
O sistema KANBAN também se concentra em limitar o trabalho em progresso (WIP) para evitar o excesso de trabalho em uma única etapa do processo. Isso ajuda a evitar gargalos e a garantir que o processo de produção flua de maneira suave e eficiente.
Além disso, a metodologia KANBAN incentiva a melhoria contínua, através de revisões regulares do processo de produção. A equipe de produção é incentivada a identificar oportunidades de melhoria e a implementar mudanças para otimizar o processo.
O KANBAN é frequentemente utilizado em conjunto com outras metodologias ágeis, como o SCRUM, para melhorar ainda mais a eficiência e a qualidade do processo de produção.