Desenvolvimento colaborativo de software para melhorar a entrega
Ágil

Desenvolvimento colaborativo de software para melhorar a entrega

O desenvolvimento de software é um trabalho de equipe.

Até mesmo os desenvolvedores mais brilhantes tecnicamente podem falhar se não houver colaboração e comunicação eficazes. Essa constatação levou muitas empresas de software a adotar práticas de desenvolvimento de software colaborativo, reconhecendo que o verdadeiro sucesso está na sinergia do trabalho em equipe.

O desenvolvimento colaborativo de software é uma metodologia que enfatiza o trabalho em equipe e a responsabilidade compartilhada em todo o processo de desenvolvimento de software. É uma abordagem que combina os conhecimentos técnicos e as capacidades de resolução de problemas de cada membro da equipe, garantindo a entrega de códigos de alta qualidade.

Em sua essência, o desenvolvimento colaborativo de software cultiva uma cultura de compartilhamento de conhecimento, permitindo que os membros da equipe (especialmente os novatos) aprendam com as experiências e os conhecimentos de cada um. Ele também ajuda a reduzir erros e detectar bugs antecipadamente com loops de feedback contínuos, melhorando assim a qualidade geral do código.

Ele incorpora programação em pares, revisões de código, controle de versão e gerenciamento ágil de projetos para incentivar a colaboração e permitir que os desenvolvedores de software trabalhem efetivamente em equipe.

O conceito de desenvolvimento colaborativo

As práticas de desenvolvimento colaborativo de software têm sido uma tendência mudança de jogo para as equipes de software e empresas de SaaS, pois permitem que as equipes resolvam desafios complexos e enviem produtos mais rapidamente.

Uma equipe de desenvolvimento de software encontra inúmeros desafios técnicos diariamente - identificar e corrigir bugs, lidar com dívidas técnicas e garantir a escalabilidade de novos códigos. Além disso, desafios como a redução do escopo, o cumprimento de prazos e o atendimento às correções dos clientes sem comprometer a estabilidade do código aumentam a complexidade.

Lidar com tudo isso sozinho pode facilmente levar ao estresse e ao esgotamento. Entretanto, o desenvolvimento colaborativo de software (que envolve a liderança e os gerentes seniores) pode ajudar as equipes a agilizar a solução de problemas e distribuir a carga de trabalho. Isso garante que nenhum indivíduo carregue uma carga insustentável e dá aos executivos da liderança uma visão clara do que está acontecendo na linha de frente.

Você pode usar o gerenciamento de projetos e colaboração em equipe software como o ClickUp para gerenciar a carga de trabalho da sua equipe e aumentar a colaboração simultaneamente. Por exemplo, você pode aproveitar os recursos facilmente personalizáveis do Modelo de desenvolvimento de software do ClickUp que oferece um espaço centralizado para todas as suas necessidades de colaboração.

Colabore sem esforço com as equipes de produto, design e engenharia com o modelo de desenvolvimento de software do ClickUp

Desde a elaboração meticulosa e a manutenção de um roteiro de produto coeso até o fornecimento de recursos avançados e a rápida resolução de bugs, este modelo equipa suas equipes com as ferramentas para prosperar dentro das metodologias ágeis Scrum ou Kanban.

Você também pode criar um projeto com Tarefas do ClickUp o ClickUp permite que sua equipe faça uma lista de tarefas, divida-as em subtarefas e adicione descrições de tarefas e responsáveis para garantir a transparência. Isso também ajuda os gerentes a saber em que a equipe está trabalhando para que possam atribuir tarefas com base na carga de trabalho da equipe.

Tarefas do ClickUp

Crie projetos com tarefas hierárquicas, subtarefas e listas de verificação para acompanhar o progresso do projeto e monitorar a carga de trabalho da equipe por meio do ClickUp Tasks

Ao mesmo tempo, os desenvolvedores de software podem deixar comentários em suas tarefas para fornecer atualizações de status ou marcar um líder de equipe para obter ajuda se estiverem enfrentando um gargalo.

O ClickUp também oferece ferramentas de colaboração em tempo real como, por exemplo Quadro branco do ClickUp e Mapas mentais do ClickUp para ajudar as equipes a fazer brainstorming de soluções e visualizar a interface do usuário do produto.

Quadro branco ClickUp

Adicione texto, notas, imagens e muito mais para fazer um brainstorming de seus projetos, roteiros e outros ativos com o ClickUp Whiteboard

Você pode adicionar formas, anotações e até mesmo vincular tarefas ao seu Whiteboard para garantir um trabalho contínuo colaboração da equipe .

Controle de versão no desenvolvimento colaborativo de software

O controle de versão - um aspecto central do desenvolvimento colaborativo de software - refere-se ao gerenciamento das alterações feitas no código-fonte ao longo do tempo. Ele aumenta a produtividade ao possibilitar o desenvolvimento paralelo, permitindo que os membros da equipe trabalhem em diferentes recursos ou correções simultaneamente, sem interferir no trabalho uns dos outros.

O controle de versão também promove a qualidade e a estabilidade do código ao facilitar as revisões de código, garantindo que as alterações sejam avaliadas minuciosamente antes de serem mescladas à base de código principal. Além disso, você pode executar outras ações, como reverter para uma versão anterior, armazenar a documentação de cada versão e muito mais, para simplificar os fluxos de trabalho de DevOps.

Aqui estão algumas maneiras comuns de utilizar o controle de versão:

  • Gerenciamento de código: Os sistemas de controle de versão (VCS), como Git, Subversion ou Mercurial, são usados principalmente para gerenciar alterações de código
  • Ramificação e mesclagem: O VCS permite que os desenvolvedores criem ramificações separadas para novos recursos, correções de bugs ou alterações experimentais. Esse isolamento permite o desenvolvimento e o teste paralelos antes de mesclar as alterações de volta à base de código principal
  • Revisões de código: O controle de versão facilita as revisões de código, em que os membros da equipe podem revisar e fornecer feedback sobre as alterações propostas antes de serem mescladas à base de código principal
  • Gerenciamento de versões: Ao marcar commits específicos ou criar ramificações de versões, o controle de versão ajuda a gerenciar versões de software
  • Integração e implementação contínuas: Os sistemas de controle de versão se integram perfeitamente aos pipelines de CI/CD, permitindo compilações, testes e implementações automatizadas com base nas alterações de código
  • Colaboração e desenvolvimento distribuído: O VCS permite que vários desenvolvedores trabalhem na mesma base de código simultaneamente, mesmo que estejam geograficamente distribuídos
  • Histórico e auditoria: Os sistemas de controle de versão mantêm um histórico detalhado de todas as alterações de código, incluindo quem fez as alterações, quando elas foram feitas e por quê
  • Rastreamento de problemas e rastreabilidade: Muitos sistemas de controle de versão se integram a ferramentas de rastreamento de problemas, permitindo que os desenvolvedores associem as alterações de código a relatórios de bugs específicos, solicitações de recursos ou tarefas de projeto, melhorando a rastreabilidade e o gerenciamento de projetos
  • Documentação e compartilhamento de conhecimento: Além do código, os sistemas de controle de versão podem ser usados para gerenciar e rastrear alterações na documentação, nos arquivos de configuração e em outros artefatos do projeto, promovendo o compartilhamento de conhecimento e a consistência da documentação
  • Backup e recuperação: Os sistemas de controle de versão são um backup da base de código, permitindo a recuperação de versões anteriores em caso de exclusões acidentais, corrupção ou falhas no sistema

Ao aproveitar os sistemas de controle de versão e seguir as práticas recomendadas, o desenvolvimento de software

podem melhorar a colaboração, a qualidade do código, a rastreabilidade e a eficiência geral do gerenciamento de projetos.

Apache Subversion e desenvolvimento colaborativo de software

O Apache Subversion (SVN) é um sistema de controle de versão centralizado para gerenciar e rastrear alterações em arquivos e diretórios. Ele permite que vários usuários colaborem em projetos, fornecendo um repositório centralizado onde todos os arquivos do projeto são armazenados e gerenciados.

Os sistemas de controle de versão centralizados, como o Apache Subversion, podem ser uma ótima alternativa ao Git (e a outros sistemas de controle de versão distribuídos), especialmente para equipes menores ou para aquelas com protocolos regulamentares e de conformidade rigorosos.

Como o SVN oferece um repositório centralizado para o seu código, ele facilita a configuração e a otimização dos fluxos de trabalho, evita a clonagem de bancos de dados e reduz a complexidade geral dos processos de DevOps. O SVN também fornece um histórico detalhado de todas as alterações de código, o que pode ser especialmente útil durante as auditorias.

Outro benefício do Apache Subversion são os recursos integrados de checkout parcial, que permitem baixar apenas os arquivos ou diretórios de que você precisa, de forma seletiva. Esse recurso beneficia grandes projetos, reduzindo o tempo de download e o uso de espaço em disco, simplificando o desenvolvimento e melhorando a produtividade.

Garantindo a qualidade do software no desenvolvimento colaborativo

Embora o desenvolvimento colaborativo de software ofereça vários benefícios, inclusive ciclos de desenvolvimento mais rápidos e melhor colaboração entre as equipes, ele também apresenta alguns desafios, especialmente em relação à qualidade do código enviado.

Ao implementar medidas robustas de garantia de qualidade, as equipes de desenvolvimento podem navegar pelas complexidades do trabalho conjunto de forma eficaz e, ao mesmo tempo, fornecer software que atenda aos mais altos padrões de desempenho, segurança e satisfação do usuário.

Veja como você pode fazer isso:

  • Teste estático de segurança de aplicativos (SAST): É um método de teste de segurança que examina o código em busca de vulnerabilidades sem executar o programa. Ele identifica problemas como vulnerabilidades de injeção ou práticas de codificação inseguras por meio da análise de padrões conhecidos e ajuda a evitar violações de segurança
  • CSCW (Computer-Supported Cooperative Work): As ferramentas de CSCW oferecem espaços de trabalho compartilhados, plataformas de comunicação e outras estruturas e ferramentas de colaboração para permitir uma coordenação perfeita entre os membros da equipe e podem ajudar especialmente as equipes distribuídas
  • DevOps com Entrega Contínua (CD): Outra estrutura excelente, o DevOps com CD enfatiza a colaboração e a automação. Ele automatiza o processo de entrega de software, permitindo implantações frequentes e confiáveis por meio de tarefas automatizadas de criação, teste e implantação

Lidando com bugs no desenvolvimento contínuo de software

Outro desafio inevitável do desenvolvimento contínuo é como a sua equipe lida com as correções de bugs, e isso pode ser complicado, especialmente se você não eliminar esses bugs no início do ciclo de desenvolvimento.

Aqui estão duas estratégias que podem ajudar: programação em pares e integração contínua (CI).

A primeira envolve dois desenvolvedores trabalhando de forma colaborativa na mesma tarefa, sendo que um escreve o código enquanto o outro o revisa em tempo real. Essa prática melhora a qualidade do código, incentivando a revisão por pares e facilitando a detecção precoce de bugs.

A integração contínua, por outro lado, é a revisão automatizada do código. As alterações de código são integradas automaticamente em um repositório compartilhado várias vezes ao dia, e os sistemas de CI (como o Jenkins ou o Travis CI) executam testes automatizados, permitindo ciclos de feedback rápidos.

Encontrar bugs é apenas metade do trabalho. Você também deve rastrear os bugs, designar um desenvolvedor para corrigi-los e muito mais. É aqui que ferramentas como Plataforma de gerenciamento de projetos da equipe do ClickUp Software entrar. Você pode capturar solicitações de bugs e problemas por meio de formulários de entrada, adicioná-los como tarefas rastreáveis, definir níveis de prioridade e permitir que os líderes de equipe os atribuam a um desenvolvedor com base na carga de trabalho da equipe.

Recursos de gerenciamento de projetos de equipes de software do ClickUp

Adicione relatórios de bugs e permita que as equipes rastreiem problemas, priorizem e agendem correções e muito mais com os recursos de gerenciamento de projetos de equipes de software do ClickUp

Além disso, o ClickUp também oferece um serviço gratuito de Modelo de rastreamento de erros e problemas do ClickUp com prioridades, status e muito mais. Ele também vem com um documento que elabora seus protocolos de rastreamento e correção de bugs, para que você possa compartilhá-lo com novos membros da equipe e garantir que todos saibam como relatar, revisar e corrigir bugs.

Configure seu rastreador de bugs em minutos usando o modelo de rastreamento de bugs e problemas do ClickUp

O modelo fornece uma seção para rastrear "Limitações e soluções alternativas", para que você possa acompanhá-las e corrigi-las quando tiver tempo.

Liderança no desenvolvimento colaborativo de software

A comunicação e a colaboração eficazes dentro de uma equipe podem ser prejudicadas se a liderança não estiver engajada. Sem o envolvimento ativo da liderança, até mesmo a equipe mais competente terá dificuldades para obter colaboração e produtividade.

Aqui estão algumas maneiras pelas quais a liderança pode incentivar a colaboração da equipe:

  • Estabeleça expectativas claras: Comunique as expectativas em relação aos comportamentos e práticas de colaboração dentro da equipe. Isso envolve definir normas e expectativas de comunicação e enfatizar a importância da colaboração
  • Investir em ferramentas de colaboração: Fornecer às equipes acesso a ferramentas de colaboração, como software de gerenciamento de projetos, sistemas de controle de versão e plataformas de comunicação, para facilitar a colaboração e o compartilhamento de informações
  • Liderar pelo exemplo: Facilite um ambiente de confiança, comunicação aberta e respeito mútuo, incentivando os membros da equipe a compartilhar ideias, colaborar de forma eficaz e trabalhar em prol de objetivos comuns
  • Incentivar revisões de código e programação em pares: Incentive os membros da equipe a realizar revisões completas de código, fornecer feedback construtivo e trabalhar em tarefas complexas em conjunto
  • Estabeleça sistemas eficazes de controle de bugs: Implemente sistemas robustos de rastreamento de bugs e peça à sua equipe que use formatos padronizados de relatório de bugs para garantir que seja fácil de entender por todos os membros da equipe
  • Promover metodologias ágeis: Incentive a adoção de estruturas ágeis, como Scrum e Kanban, para permitir uma cultura de colaboração regular da equipe com reuniões diárias e retrospectivas

Desenvolvimento ágil de software e colaboração

Se há uma estrutura de gerenciamento de projetos que complementa melhor o desenvolvimento colaborativo de software, é a metodologia ágil. Ela opera por meio de uma abordagem iterativa, dividindo os projetos em sprints menores para uma entrega rápida. As equipes trabalham de forma colaborativa em ciclos curtos (normalmente seis semanas), entregando software "funcional" ao final de cada ciclo.

Ao adotar uma abordagem iterativa, as metodologias ágeis permitem que as equipes se adaptem rapidamente às mudanças de requisitos e inovem continuamente. Elas podem explorar novas ideias, experimentar diferentes abordagens e agregar valor de forma incremental. Além disso, o ciclo de feedback contínuo garante correções imediatas e melhora a qualidade das versões futuras.

Além disso, as estruturas ágeis, como Scrum e Kanban, podem ajudá-lo a priorizar a comunicação aberta e a tomada de decisões compartilhada, criando assim uma cultura de confiança, transparência e colaboração.

Plataforma de gerenciamento de projetos ágeis da ClickUp

Gerencie suas estruturas ágeis, como sprints, quadros Kanban e atualizações do Scrum em um só lugar com a Plataforma de Gerenciamento de Projetos Ágeis da ClickUp Software de gerenciamento de projetos ágeis do ClickUp pode ser especialmente útil para criar e gerenciar seus processos e fluxos de trabalho ágeis . Por exemplo, você pode criar um projeto para cada sprint, adicionar pontos de sprint, acompanhar o progresso das metas e gerenciar marcos com gráficos de Gantt.

Além disso, você pode usar Integrações do ClickUp para integração com seu sistema de controle de versão para automatizar atualizações de status e rastrear bugs.

Visualizações do ClickUp

Monitore a carga de trabalho de sua equipe e distribua as tarefas com base em sua programação com o ClickUp Views

O ClickUp também ajuda a gerenciar a carga de trabalho da sua equipe. Permita que gerentes de produtos, designers e outros membros de equipes multifuncionais adicionem suas solicitações a um "backlog" usando os formulários do ClickUp. Em seguida, verifique a carga de trabalho da sua equipe usando Visualizações do ClickUp e atribuir tarefas a membros individuais da equipe com base em sua capacidade.

Desenvolvimento colaborativo de software e trabalho remoto

Cada vez mais empresas estão adotando o trabalho totalmente remoto ou lançando políticas de trabalho híbrido para oferecer mais liberdade e flexibilidade aos funcionários. E, embora o trabalho remoto seja benéfico, ele pode dificultar a colaboração.

As equipes remotas precisam ser mais intencionais sobre como abordam a colaboração em equipe. Elas também podem ter que confiar mais em documentação pesada e ferramentas de colaboração assíncronas, como gerenciamento de projetos e ferramentas de colaboração de documentos, software de controle de versão e, é claro, e-mail.

Aqui estão algumas dicas para organizações remotas que desejam incentivar a colaboração:

  • Estabeleça diretrizes de comunicação: Estabeleça diretrizes claras que enfatizem os métodos de comunicação assíncrona, como mensagens escritas e documentação
  • Comunique-se com contexto: Incentive os membros da equipe a fornecer contexto, deixando comentários na ferramenta de documentação, no software de gerenciamento de projetos ou no sistema de controle de versão, em vez de esperar pela comunicação em tempo real
  • Enfatize a documentação: Cultive uma cultura de documentação em que decisões, discussões e atualizações importantes sejam documentadas e compartilhadas de forma transparente

As equipes remotas podem aproveitar colaboração no espaço de trabalho ferramentas como e-mail e Google Workspace para colaborar em diferentes fusos horários, de modo que os colegas de equipe possam se comunicar de forma assíncrona e em seu próprio tempo, sem estarem limitados por restrições de horário.

Se você estiver procurando uma ferramenta completa para ajudá-lo com seus projetos, documentos e comunicação com a equipe, o ClickUp pode ser uma ótima opção. Além disso, ao contrário da maioria das outras ferramentas, o ClickUp tem um recurso de gravação de vídeo Clipes do ClickUp -que torna a colaboração assíncrona muito mais interativa e envolvente.

Clipes do ClickUp

Torne a comunicação assíncrona menos monótona e mais interativa com videoclipes compartilháveis por meio do ClickUp Clips

Você pode gravar sua tela e sua voz e compartilhá-las com o restante da equipe por meio de mensagens diretas ou, melhor ainda, adicionar o clipe às atualizações de tarefas para obter um feedback mais rápido.

Desenvolvimento colaborativo de software e grandes organizações

Assim como as empresas remotas, as grandes organizações e empresas enfrentam desafios únicos com o desenvolvimento colaborativo de software. Quando você adiciona equipes distribuídas, projetos terceirizados e muito mais participantes à mistura, a situação fica mais complexa.

Podem surgir falhas de comunicação devido a variações de fuso horário, o que leva a atrasos na tomada de decisões. Além disso, fazer com que centenas, se não milhares, de funcionários sigam seus processos e fluxos de trabalho também pode ser um desafio.

Um estudo de caso bem-sucedido de desenvolvimento colaborativo de software é o da Amazon Web Services. Embora a AWS tenha trabalhado inicialmente como uma única equipe, à medida que a empresa (e seus serviços) crescia, ela se "decompôs", criando equipes individuais de ponta a ponta para cada produto ou serviço. Isso garante que cada equipe - seja a Amazon Prime ou a Amazon Music - tenha autonomia e controle total sobre o formato do serviço.

Ao mesmo tempo, a Amazon também é muito rigorosa com seus princípios e diretrizes abrangentes. Por exemplo, antes de iniciar qualquer novo projeto, os desenvolvedores de software precisam criar um "modelo de ameaça" que é revisado por um engenheiro de segurança. Só então eles podem prosseguir com o desenvolvimento do produto.

Além disso, também ajuda o fato de a Amazon ser uma grande fã da incorporação de IA para aumentar a produtividade de seus desenvolvedores de software . Isso inclui ferramentas internas de IA, como o CodeWhisperer (um companheiro de codificação de IA) que tem ajudaram os desenvolvedores a concluir tarefas quase 57% mais rápido do que faziam anteriormente.

Esses são apenas alguns exemplos, e há muito mais que as equipes em crescimento podem aprender com a Amazon ao ampliar suas práticas de desenvolvimento de software colaborativo.

A psicologia do desenvolvimento colaborativo de software

Sabemos que implementar as práticas recomendadas de desenvolvimento colaborativo de software é mais difícil do que parece. Um dos poucos motivos para isso são os vieses cognitivos que influenciam a tomada de decisões e as habilidades de resolução de problemas da sua equipe.

Normalmente, há seis vieses comuns que sua equipe pode encontrar ao desenvolver software de forma colaborativa:

  • Viés de confirmação: As equipes geralmente escolhem ideias que apoiam suas noções preconcebidas. Você pode evitar isso incentivando perspectivas diversas e incorporando estruturas de tomada de decisão como o The Devil's Advocate (O Advogado do Diabo)
  • Pensamento de grupo: Isso ocorre quando o desejo de harmonia em um grupo se sobrepõe ao pensamento crítico e suprime pontos de vista opostos. Para evitar o pensamento de grupo, incentive os membros da equipe a fornecer feedback construtivo e a manter a mente aberta durante as conversas
  • Viés de recência: Essa é a tendência de priorizar informações recentes ao tomar decisões, ignorando os dados históricos. Você pode analisar regularmente seu desempenho passado e seus dados históricos para garantir que eles permaneçam frescos na memória da sua equipe e que eles entendam sua influência
  • Efeito de ancoragem: Isso ocorre quando os membros da equipe confiam demais nas informações iniciais ou "âncoras" ao tomar decisões, mesmo quando essas informações são irrelevantes ou enganosas. Estruturas estruturadas, como árvores de decisão e planejamento de cenários, podem ajudar a evitar isso, pois fazem com que a equipe de software também analise decisões alternativas
  • Viés de autoridade: Isso ocorre quando os membros da equipe obedecem a indivíduos em posições de autoridade (como gerentes e líderes de equipe) sem questionar suas decisões ou sugestões. Incentive os líderes a buscar feedback de sua equipe e a obter suas opiniões antes de tomar decisões importantes
  • Preguiça social: Alguns indivíduos podem se esforçar menos quando trabalham em um grupo do que quando trabalham sozinhos, confiando nos outros para carregar a carga de trabalho. Isso pode ser evitado promovendo a prestação de contas e definindo funções e responsabilidades claras para cada membro da equipe

Ao evitar esses vieses cognitivos, você pode garantir uma melhor tomada de decisão, melhorar a dinâmica da equipe e estimular a criatividade e a inovação em suas equipes de software.

A consciência cognitiva é fundamental no desenvolvimento de software, sustentando a solução eficaz de problemas, a tomada de decisões e a atenção aos detalhes. Com uma maior consciência cognitiva, os desenvolvedores podem compreender bases de código complexas, projetar arquiteturas robustas e adquirir novos conhecimentos com mais eficiência.

Esse alerta cognitivo facilita a colaboração e a comunicação clara da equipe, permitindo um entendimento compartilhado de perspectivas e requisitos. Além disso, a consciência cognitiva é essencial para a garantia de qualidade e os testes, pois permite que os desenvolvedores prevejam possíveis cenários e criem casos de teste abrangentes.

Ao promover o pensamento reflexivo e o autoaperfeiçoamento contínuo, a consciência cognitiva permite que os desenvolvedores analisem seus processos de pensamento, identifiquem áreas de crescimento e refinem consistentemente suas habilidades e práticas.

Em última análise, facilitar a consciência cognitiva por meio de revisões de código, programação em pares e sessões de compartilhamento de conhecimento pode melhorar significativamente o desempenho, a produtividade e a capacidade dos desenvolvedores de fornecer soluções de software de alta qualidade.

ClickUp para desenvolvimento colaborativo de software

Se você está procurando um espaço de trabalho e uma plataforma de produtividade tudo em um para dar suporte ao seu desenvolvedores de software diariamente suas soluções integradas de gerenciamento de projetos, colaboração de documentos e comunicação em equipe fazem dele uma das ferramentas de gerenciamento de espaço de trabalho mais versáteis.

Ao centralizar a comunicação, simplificar os fluxos de trabalho e fornecer informações sobre o andamento do projeto, o ClickUp permite que as equipes de software trabalhem juntas com mais eficiência e forneçam produtos de software de alta qualidade com eficiência.

Sua integração com sistemas de controle de versão, como o GitHub e o GitLab, permite que os desenvolvedores vinculem as tarefas diretamente aos repositórios de código, simplificando os fluxos de trabalho do DevOps e garantindo o alinhamento com os objetivos do projeto.

Então, vá em frente.. registre-se no ClickUp gratuitamente hoje mesmo e dê à sua equipe de software todas as ferramentas necessárias para colaborar e enviar códigos com o dobro da eficiência de antes.