Questão ENADE
Questão 12 – Enade 2021.
Uma fábrica de software está realizando entrevistas para contratação de um profissional que esteja alinhado às exigências do atual mundo corporativo. Sabe-se que processos ágeis de desenvolvimento têm se tornado essenciais para empresas que desejam realizar entregas rápidas e frequentes de produtos e/ou serviços de software. Essa empresa possui uma equipe de desenvolvimento que faz uso de processos ágeis como o Scrum e eXtreme Programming (XP) e o acompanhamento por meio do quadro Kanban. Sendo assim, um conjunto de características deve ser verificado durante a entrevista para garantir que o candidato a ser contratado possua conhecimentos necessários para atuar juntamente a esta equipe. Com base no texto e nos processos ágeis de desenvolvimento de software, avalie as afirmativas.
I. Métodos ágeis são baseados em ciclos iterativo e incremental que se concentram no desenvolvimento rápido e na flexibilidade às mudanças, com a participação do cliente no processo de software.
II. Uma forte característica da XP é a garantia da qualidade do código produzido e, para isso, os desenvolvedores produzem testes automatizados antes mesmo de codificar uma funcionalidade.
III. O planejamento no Scrum é baseado na elaboração dos itens do product backlog, que é uma lista de funcionalidades desejadas pelo cliente, sendo o Scrum Master o responsável por gerenciá-lo.
IV. O quadro Kanban permite monitorar a evolução das tarefas necessárias durante o processo ágil de desenvolvimento de software, possibilitando um acompanhamento de forma visual das atividades em construção.
É correto apenas o que se afirma em
A. II.
B. I e III.
C. I, II e IV.
D. I, III e IV.
E. II, III e IV.
1. Introdução teórica
A questão testa conhecimentos a respeito de métodos ágeis. Em especial, precisamos conhecer os métodos Scrum, eXtreme Programming e Kanban. Estudaremos esses tópicos na sequência.
1.1. Métodos ágeis
Um processo de desenvolvimento de software define um conjunto de passos, tarefas, eventos e práticas que devem ser seguidos por desenvolvedores na elaboração de um sistema. A adoção de um processo específico é particularmente importante em projetos atuais, pois os sistemas de software modernos são, majoritariamente, muito complexos para serem desenvolvidos por um único programador. Nesse caso, a equipe de desenvolvimento precisa seguir diretrizes para produzir softwares com qualidade e com produtividade. Essas diretrizes são estabelecidas pelo processo de desenvolvimento adotado.
Os primeiros processos de desenvolvimento de software, propostos na década de 1970, eram estritamente sequenciais, seguindo o modelo em cascata. Os projetos eram iniciados com a especificação de requisitos e avançavam até chegar às fases de implementação, de testes e de manutenção. A figura 1 ilustra um processo de desenvolvimento de software seguindo modelo cascata, no qual o sistema é implementado e testado apenas nas etapas finais.
Figura 1. Desenvolvimento de software usando um processo baseado
em modelo cascata.
VALENTE, [s.d.] M. T. Engenharia de software moderna. Disponível em https://engsoftmoderna.info/. Acesso em 15 dez. 2023.
Com o passar dos anos, profissionais da indústria de software propuseram alternativas aos processos em modelo em cascata. Eles afirmaram que um produto de software é diferente de produtos tradicionais de engenharia e, por isso, os softwares demandam um processo de desenvolvimento diferente.
Os requisitos de um software mudam com frequência, mais do que os requisitos de um computador ou de uma ponte, por exemplo. Adicionalmente, os clientes, muitas vezes, não têm uma ideia precisa do que querem, ou não conseguem expressar seus anseios adequadamente. Com isso, há o risco de se projetar por um longo tempo um produto de
software que, depois de pronto, não será mais necessário, ou porque o mundo mudou, ou porque as necessidades dos clientes mudaram.
Nesse cenário, uma das alternativas propostas pelos profissionais da indústria foi um novo modelo de processo de software, que são os métodos ágeis. Os métodos ágeis são processos de desenvolvimento de software baseados em ciclos iterativos e incrementais de trabalho, nos quais são incentivadas a colaboração e a comunicação entre todas as pessoas envolvidas no projeto. Desse modo, um sistema de software pode ser implementado de maneira gradativa, começando pelas partes mais urgentes para o cliente.
De forma geral, podemos imaginar que, inicialmente, a equipe implementa uma primeira versão do sistema, contendo as funcionalidades prioritárias. Em sequência, essa versão é validada pelo cliente e, caso seja aprovada, um novo ciclo de implementação se inicia. A segunda versão do sistema, portanto, engloba mais funcionalidades do que a primeira e também deve ser validada pelo cliente. O processo continua iterativamente, de forma incremental, até o cliente atestar que todos os requisitos foram atendidos. Etapas do processo podem ser realizadas em paralelo, e os processos ágeis costumam ser bem flexíveis em relação às suas etapas do processo de desenvolvimento.
A figura 2 ilustra um processo de desenvolvimento de software seguindo um método ágil, no qual o sistema é implementado, testado e validado em etapas incrementais. Na figura, cada iteração é representada por um retângulo e os incrementos no sistema são representados por S++. Observe que, a cada iteração, a equipe de desenvolvimento gera um incremento no sistema, que pode ser validado e testado pelos clientes antes da próxima iteração. Na prática, incrementos distintos podem ser desenvolvidos em paralelo, dependendo do tipo de projeto.
Figura 2. Desenvolvimento de software usando um método
ágil.
VALENTE, [s.d.] M. T. Engenharia de software moderna. Disponível em https://engsoftmoderna.info/. Acesso em 15 dez. 2025.
Três dos principais processos de desenvolvimento de software que seguem a metodologia ágil são: Scrum, eXtreme Programming e Kanban. Estudaremos brevemente cada um deles, a seguir.
1.2. Scrum
O método Scrum, entre os métodos ágeis, é o mais conhecido e utilizado. Trata-se de um método para gerenciamento de projetos que, comumente, é aplicado a desenvolvimento de software, mas que não se restringe a essa aplicação. Como esse método pode ser aplicado a projetos em geral, o método não propõe qualquer prática de programação específica.
Na definição do Scrum, são estabelecidos papéis, eventos e artefatos. Veremos alguns detalhes a respeito desses três itens, a seguir.
Os papéis referem-se à especificação das pessoas envolvidas no projeto, com suas respectivas responsabilidades. São estabelecidos três papéis principais, elencados a seguir.
- Product Owner: tem o papel de representar os clientes. Para isso, o Product Owner deve entender do domínio do sistema que será construído, além de ser responsável por escrever os documentos que descrevem os requisitos do software, em linguagem natural.
- Scrum Master: é o especialista em Scrum do time, que é responsável por garantir que as regras do método estejam sendo seguidas.
- Desenvolvedores: trata-se de um grupo multifuncional, cujo número de integrantes varia entre 3 e 9. Os desenvolvedores são responsáveis por fazer a análise, a implementação, os testes e outras atividades pertinentes ao projeto.
Os eventos referem-se às atividades planejadas com o intuito de criar uma rotina de acompanhamento e de desenvolvimento do projeto. Os dois principais eventos são elencados a seguir.
- Sprints: assim como em todo método ágil, Scrum é um método iterativo. No Scrum, o nome dado para cada iteração é sprint. O método estabelece que cada sprint deve durar até um mês.
- Planejamento de sprints: é uma reunião na qual todo o time se reúne para decidir as histórias que serão implementadas no sprint que vai se iniciar. As histórias constituem uma descrição resumida das funcionalidades que devem ser implementadas no projeto, ou seja, estabelecem os requisitos dos usuários.
Os artefatos dizem respeito aos documentos que os membros do projeto criam e utilizam ao longo do seu desenvolvimento. Há dois artefatos oficiais, elencados a seguir.
- Product backlog: trata-se de uma lista de histórias e de outros itens de trabalho relevantes, ordenada por prioridades. Conforme já abordamos, as histórias são uma descrição resumida das funcionalidades que devem ser implementadas no projeto. O product backlog é escrito pelo Product Owner.
- Sprint backlog: é o documento gerado ao final do evento de planejamento de sprint. Ele é constituído por uma lista de tarefas do sprint seguinte, com suas respectivas durações. Basicamente, o sprint backlog é uma lista de itens selecionados do product backlog, que devem ser implementados na próxima sprint.
1.3. eXtreme Programming
O método eXtreme Programming (XP) é um método ágil destinado ao desenvolvimento de softwares cujos requisitos sejam imprecisos ou estejam sujeitos a mudanças. Portanto, esse método, diferentemente do Scrum, é destinado especificamente para projetos de software.
O método envolve um conjunto de regras e práticas em suas iterações, que envolvem quatro atividades: planejamento, projeto, codificação e testes.
No planejamento, o representante do cliente cria as histórias de usuários, que descrevem o resultado, as características e a funcionalidade solicitados para o software. Cada história é colocada em uma ficha, e o cliente deve atribuir uma prioridade a cada uma delas. Os membros da equipe XP avaliam cada história e atribuem um custo (medido em semanas de desenvolvimento) a ela. A qualquer momento, podem ser escritas novas histórias.
O projeto XP estimula o uso de cartões CRC (classe-responsabilidade-colaborador) como uma ferramenta para pensar o software em um padrão orientado a objetos. Os cartões CRC identificam e organizam as classes relevantes para o incremento do software corrente. Os cartões CRC são, comumente, o único artefato de projeto produzido.
Após criar as histórias e elaborar o projeto, o time passará para a etapa de codificação. A equipe deve, primeiramente, desenvolver uma série de testes de unidades, que exercitarão as histórias que serão incluídas na versão atual do software. Uma vez criado o teste, os desenvolvedores podem se concentrar melhor no que deve ser implementado para que o software seja aprovado. Assim, com o código da versão atual do software completo, ele poderá ser testado imediatamente.
Na etapa de testes, a equipe precisa executar os testes de unidades, para corrigir eventuais falhas. Os testes de unidades devem ser implementados de forma automatizada pois, assim, poderão ser executados diversas vezes.
De acordo com o método XP, o desenvolvimento de projetos de software deve ser norteado por três valores principais, elencados a seguir.
- Comunicação: uma boa comunicação entre as partes envolvidas é importante em qualquer projeto, tanto para evitar que erros aconteçam quanto para aprender com os erros cometidos.
- Simplicidade: em todo sistema complexo, existem subsistemas mais simples, que devem ser considerados.
- Feedback: estar aberto ao feedback das partes envolvidas no projeto permite que correções de rota sejam implementadas o quanto antes, controlando os riscos aos quais o projeto está exposto.
Além dos valores, o XP é definido por um conjunto de princípios e de práticas de desenvolvimento, cujo extenso conteúdo não será abordado neste material.
1.4. Kanban
O método Kanban consiste em um processo visual, que utiliza cartões para descrever as histórias de usuário e os passos do processo de desenvolvimento do projeto. Quando comparamos o Kanban com o Scrum, percebemos que esse é um método mais simples, que não tem eventos, papéis pré-definidos ou diversos artefatos. O único artefato Kanban é o quadro de tarefas, que é chamado de Quadro Kanban. Esse quadro inclui, também, o product backlog.
O Quadro Kanban é dividido em colunas. A primeira coluna representa o próprio product backlog, com as histórias de usuários. As demais colunas são os passos que devem ser seguidos para transformar uma história em uma funcionalidade. Por exemplo, podemos criar as colunas Análise, Desenvolvimento e Testes. Além disso, cada coluna pode ser dividida em duas subcolunas: “tarefas em execução” e “tarefas concluídas”. Por exemplo, a coluna Desenvolvimento pode ter duas subcolunas: “tarefas em desenvolvimento” e “tarefas desenvolvidas”.
Portanto, a ideia do Kanban é que as histórias sejam processadas passo a passo, da esquerda para a direita, como em uma linha de montagem. Esse processo visual ajuda o time a identificar gargalos e a melhorar a eficiência do desenvolvimento do projeto. Podemos ver um exemplo de Quadro Kanban na figura 3, no qual duas colunas (Análise e Desenvolvimento) foram subdivididas.
Figura 3. Exemplo de Quadro Kanban.
PRESSMAN e MAXIM, 2021.
2. Análise das afirmativas
I – Afirmativa correta.
JUSTIFICATIVA. Os métodos ágeis, como Scrum, XP e Kanban, são conhecidos por seu enfoque em ciclos iterativos e incrementais, buscando entregas rápidas e flexibilidade às mudanças. A participação do cliente é valorizada ao longo do processo.
II – Afirmativa correta.
JUSTIFICATIVA. O método XP incentiva a criação dos testes automatizados antes mesmo da codificação do software em si. Isso faz com que o desenvolvimento seja orientado a testes e garante a qualidade do código.
III – Afirmativa incorreta.
JUSTIFICATIVA. No método Scrum, o Product Owner é a pessoa responsável pela elaboração e pelo gerenciamento do product backlog, não o Scrum Master.
IV – Afirmativa correta.
JUSTIFICATIVA. O Quadro Kanban é uma ferramenta que permite o acompanhamento visual das tarefas de um projeto, ajudando a identificar gargalos e a melhorar a eficiência do desenvolvimento do projeto.
Alternativa correta: C.
3. Indicações bibliográficas
- PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. Porto Alegre: AMGH, 2021.
- SOMMERVILLE, I. Engenharia de software. São Paulo: Pearson Education do Brasil, 2018.
- VALENTE, M. T. Engenharia de software moderna. Disponível em https://engsoftmoderna.info/. Acesso em 15 dez. 2025.