Desenvolvimento Ágil de Software | OutSystems

Por: Agno Silveira – Desenvolvedor OutSystems e Marco Peres – Desenvolvedor OutSystems na add

O que é desenvolvimento ágil de software?

O Agile se originou com o “Manifesto Agile”, um conjunto de valores e princípios estabelecidos por um grupo de líderes de desenvolvimento de software em 2001. Esses valores e princípios tiveram um impacto profundo na forma como as equipes de desenvolvimento de software e, cada vez mais, organizações inteiras, trabalham juntos para agregar valor aos clientes.

Mas qual a diferença entre ser Ágil e ter Agilidade?

Bueno!

Ágil: substantivo, exemplifica o que se movimenta rápido, com rapidez.

Agilidade: adjetivo, exemplifica a capacidade de executar movimentos rápidos e ligeiros, como mudanças nas direções ou destreza para fazer algo de forma veloz.

Entre os agilistas surge sempre a máxima de que ter agilidade não é necessariamente o mesmo que ser mais rápido. “Ser ágil não é ser mais rápido! Scrum não quer dizer velocidade!”.

Em 2014, Jeff Sutherland, cocriador do Scrum lançou o livro SCRUM: “A arte de fazer o dobro do trabalho na metade do tempo”.
 
Daí surgem as polêmicas! 

Com certeza, brigar nunca foi solução, mas proporcionar a conversação e a discussão positiva sempre foi o motor do entendimento e do esforço evolucionário, a estranheza e a avaliação dos fatos proporcionam esta evolução.

Também não é isso! A partir do momento que você se permite ouvir outra opinião, poderá reforçar seu ponto de vista ou mesmo revisar suas crenças.

Será que foi uma mancada “braba” do Jeff Sutherland ou dos agilistas atuais?

Sendo objetivo: Se a equipe não está sendo rápida, ela também não está sendo ágil. Simples assim, significa também que a equipe não está aplicando o mindset ágil da forma correta. Ser ágil significa ser cada vez mais rápido à medida que amadurecemos e melhoramos nossos processos, métodos, cultura, habilidades, estratégias e ferramentas. Assim a rapidez é uma consequência natural e esperada da agilidade.

Não é assim com um violinista?

Ele vai se acostumando a uma determinada escala musical e com o tempo e prática este violinista começa a ter fluidez nesta escala e, a partir dela começa a descobrir outras.

 Já diz o ditado: “Na prática a teoria é outra!”

Se fosse fácil, automático e espontâneo, não teria um método a ser seguido, não é mesmo?

Então, apesar de não significarem a mesma coisa, ágil e agilidade, demonstram SIM, o nível de aderência e de experiência da sua equipe quanto ao mindset ágil.

Há algum tempo vi uma analogia entre o trem bala e o guepardo, que era mais ou menos assim. O trem bala é rápido e eficiente na transposição de “A” para “B”, já o guepardo possui agilidade, pois pode mudar de direção sem perder o foco em “B”. Em comum ambos possuem o mesmo objetivo, esta entrega de valor é pertinente aos dois, mas fica difícil analisar quem é o melhor fora de um contexto.

Ser flexível demais ou inflexível, considerando apenas a entrega.

O Manifesto Agile

O Manifesto Ágil fornece um conjunto de quatro valores e doze princípios com o seguinte objetivo:

Desde sua criação em 2001, o número de seguidores do Manifesto Ágil cresceu e é cada vez mais usado como uma abordagem e filosofia de gestão.

Os quatro Valores Agile que orientam a maneira como trabalhamos são:

  • Indivíduos e interações sobre processos e ferramentas
  • Software de trabalho com documentação abrangente
  • Colaboração do cliente na negociação do contrato
  • Respondendo à mudança seguindo um plano

 

Agile na OutSystems

OutSystems desenvolveu sua própria metodologia ágil, que usa uma variedade de técnicas descritas neste artigo. A abordagem da OutSystems evoluiu ao longo de muitos anos e, embora seja baseada no Scrum, não é Scrum puro. A Metodologia OutSystems é projetada especificamente para atender às necessidades específicas das equipes de desenvolvimento que trabalham com low code, a fim de maximizar os benefícios da plataforma.

Para ver como o low code está ajudando as empresas a melhorar sua adoção ágil, pegue sua cópia do The State of Application Development 2019 .

Se você quiser aprender mais sobre low code e ágil, convido você a conferir estas postagens no blog:

Como você começa?

Quer você seja um veterano ágil e de low code ou esteja apenas começando, você está envolvido em uma prática empolgante. Reconheça que você precisará trabalhar de forma diferente e adaptar seu sabor atual de agile para acompanhar a velocidade de desenvolvimento acelerada.

Comece examinando atentamente o seu backlog e como você o gerencia.

Certifique-se de possuir forte propriedade do produto, relacionamentos sólidos com as partes interessadas e uma cultura que toma decisões rápidas. Incentive e exija colaboração entre todas as partes interessadas, especialmente sua equipe de projeto. Antecipe, identifique e resolva ativamente as dependências potenciais, especialmente com equipes que trabalham em plataformas de desenvolvimento tradicionais. Por fim, desafie sua equipe a aumentar a eficiência e eficácia das cerimônias ágeis para atingir o desempenho máximo com low code.

Build apps com OutSystems e metodologia ágil

Durante o processo de construção de softwares com a plataforma, a metodologia mais próxima a ser seguida é o Scrum, conforme apresentado anteriormente.

O que devemos considerar como uma premissa importante para a construção de software de forma ágil, é um conceito abordado pela OutSystems onde o usuário é a chave para alcançar o sucesso, isso porque as pessoas têm se aproximado da tecnologia ao ponto onde o cidadão normal se tornou um consumidor experiente do que precisa utilizar e de como um aplicativo deve estar funcionando.

Para alcançarmos estes valores exigidos pelos usuários, devemos estar atento aos feedbacks adquiridos com eles durante o processo de desenvolvimento, e iterativamente ir construindo uma solução ideal a cada feedback e Sprint, tornando a equipe de desenvolvimento uma “máquina” de responder a mudanças e entregar módulos e funcionalidades de valor.

A capacidade de responder rapidamente ao negócio e as mudanças solicitadas definirá nosso caminho para o sucesso:

Como entregar valor de forma contínua?

A solução é simples, devemos planejar nossas features de forma a agregar valor ao produto final, tendo em mente que os processos são essenciais para a qualidade de cada entrega, ter a disposição ambientes que proporcionam atestar essa qualidade é fundamental. Um ambiente de homologação estável, onde o próprio usuário final ou mesmo os stakeholders possam interagir e atestar é um ótimo passo para se obter confiança ou mesmo feedback do cliente, stakeholders ou usuário, quanto ao trabalho da equipe. Desta forma, mesmo melhorias podem ser identificadas, planejadas e executadas com a máxima transparência possível.

Outro valor que nunca deve ser esquecido é o de mínimo produto funcional. Isso quer dizer que o planejamento de cada feature deve agregar valor ao produto e, isso significa simplesmente que a entrega deve ser funcional. Nada mais frustrante do que investir tempo, esforço e obviamente dinheiro em algo que não traz benefício, não é mesmo?

Um produto entregue sem testes, homologação ou verificação de cumprimento dos requisitos, dificilmente atenderá aos valores solicitados pelos stakeholders, causando retrabalho e frustração a todos os envolvidos. Uma entrega contínua e satisfatória pode ser vista por exemplo, através da utilização de Design Thinking.

Vejamos como deve ser a visão do usuário a cada iteração ágil (Sprint/teste):

Agora que entendemos como é importante estar constantemente entregando valor para os usuários, e não um produto “pronto” no final de um período, vamos ver como deve ser organizado de uma forma geral as features durante o Timebox do projeto.

Antes de ser iniciado o desenvolvimento do produto, logo no início do projeto, deve ser realizado uma análise macro das funcionalidades de maior e menor valor junto aos usuários, neste momento ainda não será criado as histórias de usuários, o objetivo é definir as features que vão atender o projeto, organizar a prioridade em que cada uma será desenvolvida, e atender primeiramente os de maior relevância alcançando o mínimo produto funcional.

Os usuários e analistas responsáveis devem considerar como critério de priorização das features: 

  • Recursos que fornecem o maior valor comercial;
  • Recursos principais primeiro, outros recursos depois;
  • Dependências entre recursos (Se um recurso de baixa prioridade tiver dependência com outro de alta prioridade, ambos devem ser priorizados).

Como sabemos que acontece em vários projetos, a mudança de escopo após feedbacks acaba afetando na priorização de features a serem construídas. Para tal caso, os itens adquiridos durante feedbacks devem ser tratados da seguinte forma:

  • Pequenas mudanças são abordadas na próxima iteração/Sprint;
  • Novas features são adicionadas ao backlog (ou não) de acordo com a prioridade;
  • Features com menos valor são movidas para a próxima versão.

Durante a entrega das primeiras versões, é importante manter o contato tanto quanto possível com o usuário final, para que ele tenha de imediato a visão de que as necessidades solicitadas estão sendo atendidas. Desta forma o engajamento e parceria deste Key User ajudaram no sucesso de todos.

 

PRECISA DE AJUDA?

FALE COM UM DE NOSSOS ESPECIALISTAS!

  • Todos
  • Blog
raddar novembro

raddar add raddar add O ano está terminando, e queremos compartilhar alguns destaques de notícias e momentos da add no…

Compartilhando ideias.

Transformando pessoas.

Desenvolvendo negócios.

São Paulo

Rio de Janeiro

Miami

© 2023 todos os direitos reservados a .add

V080323

PRECISA DE AJUDA?

FALE COM UM DE NOSSOS ESPECIALISTAS!