Agile Approach
Agile approach ou abordagem agile é uma abordagem iterativa e incremental de desenvolvimento de produtos e serviços. O âmbito é vagamente definido no início da iniciativa para manter a flexibilidade e maximizar a probabilidade de sucesso. O trabalho é realizado em ciclos curtos. Cada ciclo ou iteração pode melhorar ou adicionar componentes à versão anterior do produto. Dessa forma, pode focar-se na melhoria contínua para desenvolver os produtos e serviços.
Adicionalmente, a abordagem Agile enfatiza os princípios e valores da colaboração, adaptabilidade à mudança, e auto-organização das equipas. Dessa forma, a colaboração entre a equipa e os stakeholders permite considerar o feedback do cliente ao longo do desenvolvimento do produto.
Adicionalmente, o Agile encoraja o recurso a equipas multifuncionais ou cross-functional teams. Esta equipa multidisciplinar inclui todas as funções necessárias para desenvolver o produto ou serviço. Dessa forma, a equipa pode ajustar rapidamente de acordo com o feedback do cliente.
Existem várias abordagens agile, tais como Scrum, XP, Kanban, Crystal entre outras. Contudo, cada uma destas abordagens tem as suas características específicas. Desse modo, quando se escolhe a framework a usar deve-se considerar o contexto específico do projecto.
No fundo, a Agile approach ou abordagem agile é uma framework de convenções, técnicas e procedimentos. Uma equipa multidisciplinar desenvolve colaborativamente um produto, ou resolve um problema, de forma iterativa e incremental. Cada projecto pode ser gerido com uma diferente combinação de técnicas, convenções e procedimentos.
Tipos de agile approach
Como referimos, existem várias abordagens ágeis de desenvolvimento de produtos e serviços.
Scrum
Scrum é a framework ágil mais usada no mundo. Isto deve-se muito provavelmente pelo facto de ser muito simples de usar e implementar. Especificamente, o Scrum usa uma estratégia flexível e progressiva de solução de problemas ou desenvolvimento de produtos e serviços. Isto traduz-se num desenvolvimento iterativo e incremental com base em sprints curtos de duração fixa. Além disso, o Scrum usa equipas que se auto-organizam. Ou seja, com autonomia para tomar todas as decisões necessárias para desenvolver o produto. Do mesmo modo, encoraja uma comunicação clara e constante. Isto é, os elementos da equipa Scrum colaboram diariamente para sincronizar o seu trabalho e inspecionar o seu progresso. Em muitas ocasiões não é possível usar scrum na totalidade. Contudo, muitos dos eventos, artefatos, regras e papéis do Scrum são usados mesmo que de forma independente.
Lean Thinking
O pensamento Lean é um conjunto de práticas que procuram reduzir o desperdício. Ao mesmo tempo, procuram maximizar a entrega de valor ao cliente. Por outras palavras, à medida que o projecto avança é feita uma análise aos processos usados numa perspectiva de melhoria contínua. Dessa forma, é eliminado o trabalho que não adiciona valor.
Kanban
A framework Kanban partilha algumas similaridades com o Scrum e com o Lean. Com o Scrum, o Kanban partilha a ênfase na colaboração. Por outro lado, o Kanban partilha com o Lean o foco na eficiência. O Kanban é uma framework de fluxo-contínuo. Dessa forma, o Kanban procura eliminar, ou minimizar, os bottlenecks no processo de desenvolvimento do produto.
Agile Approach versus Waterfall Approch
As metodologias waterfall são também conhecidas por metodologias tradicionais ou plan-driven. Estas abordagens devem o seu nome à forma linear ou top-down como são geridas. Os objetivos de âmbito, prazo e custo são estabelecidos de forma detalhada no início do projeto. Por outro lado, o produto é entregue de uma só vez no final do projeto. Consequentemente, o projeto é desenvolvido por fases. Cada fase só começa depois da anterior estar terminada.
A metodologia waterfall adapta-se melhor a ambientes conhecidos e estáveis. Como consequência, a abordagem convencional é frequentemente usada para desenvolver produtos tangíveis familiares, como por exemplo na construção civil.
O sucesso de um projecto desenvolvido com uma abordagem waterfall depende muito da capacidade para definir um âmbito adequado no início do projecto. Porquanto para poder estimar com maior precisão é preciso ter informação mais detalhada do que seria necessário num projecto ágil em que se estima ao longo do projecto.
O esforço de planeamento antecipado, e a sequência linear de fases, resulta em rigidez. As alterações são, desse modo, tipicamente detectadas numa fase avançada do projecto. Por outro lado, as alterações têm geralmente um impacto significativo pois influenciam o trabalho realizado ao longo de diferentes fases. Assim, os projetos desenvolvidos com waterfall têm pouca flexibilidade para incorporar alterações. Dessa forma, são pouco adequados a contextos dinâmicos e incertos, em que as alterações são essenciais para se ajustarem para entregar produtos com valor. Pelo contrário, os projectos desenvolvidos com agile são bastantes flexíveis. Assim, permitem adaptações constantes ao longo do seu ciclo de vida.
Em seguida sugerimos que leia o artigo sobre Agile Project Management.
Vantagens da Agile Approach
Nos 12 principios do Agile Manifesto descrevem-se, dessa forma, de melhor maneira as vantagens da agile approach:
- Garantir a satisfação do cliente, através da entrega rápida e contínua de produtos;
- As mudanças ao âmbito do projecto são bem-vindas;
- Produtos funcionais são entregues com frequência;
- Deve haver uma cooperação constante entre as pessoas que entendem do ‘negócio’ e a equipa;
- Os projectos devem ser criados em torno de indivíduos motivados. Ou seja, as pessoas têm o ambiente e o apoio e a confiança que necessitam.
- O método mais eficiente e eficaz de comunicar é, desse modo, conversar cara-a-cara;
- Ter um produto a funcionar é a principal medida de progresso do projecto;
- Os processos ágeis promovem o desenvolvimento sustentável. Ou seja, a equipa devee ser capaz de manter um ritmo constante indefinidamente;
- A atenção contínua à excelência técnica e ao bom desenho aumenta, dessa maneira, a agilidade;
- Maximizar a quantidade de trabalho não feito
- As melhores arquiteturas, requisitos e projetos emergem, desse modo, de equipas que se auto-organizam;
- A equipa analisa e ajusta regularmente o seu comportamento.
Desvantagens da Agile Approach
As abordagens ágeis têm muitas vantagens mas em algumas situações não são a abordagem ideal. Algumas desvantagens das abordagens ágeis são, por exemplo:
- A flexibilidade das abordagens agile pode significar menor previsibilidade. Em outras palavras, é mais difícil prever o tempo e o custo que um projecto irá demorar ou custar. Em algumas situações, esta imprevisibilidade pode gerar, dessa forma, ansiedade e más decisões.
- A comunicação e a colaboração constante consome, dessa maneira, mais tempo aos membros da equipa e aos restantes stakeholders do projecto.
- O compromisso exigido de todas as partes envolvidas num projecto ágil é significativo. Dessa forma, isso implica que a falta de disponibilidade das pessoas tem um impacto negativo no projecto.
- Realizam-se muitas atividades dos projetos ágeis segundo o desenvolvimento just in time. Ou seja, realizadas apenas quando são necessárias. Assim, a documentação tende a ser menor que num projeto convencional. Por conseguinte, em alguns casos, poderão existir desentendimentos e dificuldades no longo prazo.
- Os projectos ágeis têm planos menos estruturados. Por conseguinte, pode ser mais difícil gerir as expectativas dos stakeholders.
Algumas desvantagens das abordagens ágeis são, por exemplo:
Conclusão - Agile Approach
As organizações precisam cada vez mais de se adaptar facilmente às mudanças que, dessa forma, ocorrem todos os dias. Para além disso, os ciclos são cada vez mais curtos e por isso é preciso maior flexibilidade de todos os envolvidos. As abordagens ágeis são, sem dúvida, a solução para o desenvolvimento de produtos e serviços num contexto de incerteza. Mesmo projetos que adotem metodologias waterfall, podem, desse modo, beneficiar do recurso a práticas ágeis.