Desenvolvimento Ágil de Software – Guia Prático

Capa do livro Desenvolvimento Ágil de Software – Guia Prático
Título
Desenvolvimento Ágil de Software – Guia Prático
Autor(es)
Editora
FCA – Editora de Informática, Lda.
Páginas
256
ISBN
978-972-722-824-9

Motivados pela elevada taxa de insucesso de projetos de desenvolvimento de software, há cerca de cinquenta anos, engenheiros e desenvolvedores de software aperceberam-se da necessidade de definir e seguir um processo de desenvolvimento. Depois desse processo inicial (waterfall) muitos outros se seguiram, melhorando os processos anteriores em diversos aspetos e, com isso, melhorando a qualidade do produto de software produzido. Ainda assim, a taxa de insucesso continuava elevada. O virar do século trouxe-nos os princípios de desenvolvimento ágil, e com eles um foco no cliente, e uma exigência do seu envolvimento na equipa, a um ponto que este não estava acostumado a suportar. Este envolvimento do cliente, e a entrega frequente a este de software funcional para obter o seu feedback, trouxe muitas melhorias ao nível do alinhamento do produto final de software com os requisitos do cliente e utilizadores, no final do projeto (não necessariamente os requisitos no início do projeto!).

As metodologias de desenvolvimento ágil trouxeram muitos benefícios, como a flexibilidade do processo de desenvolvimento e a aceitação e reordenação de requisitos em qualquer ponto do processo, ou a mudança de paradigma para um foco no tempo e orçamento, produzindo as features mais importante para o cliente dentro dessas restrições, ao invés de um foco nos requisitos, os quais mudam constantemente, tornando impossível cumprir tempo e orçamento fixos. Porém, na cauda desses benefícios vieram também muitos problemas, nomeadamente a deficiente produção de documentação, útil no apoio à posterior manutenção do software; a dependência dos melhores profissionais, que são também os que mais facilmente mudam de emprego, por oposição a uma dependência de um processo bem definido, entre outros.

Este livro aborda todos estes problemas e, talvez pela experiência e certificação do autor na implementação do processo de desenvolvimento RUP – considerado como um modelo de processo híbrido tradicional/ágil, pois baseia-se num processo bem definido, mas adota uma práxis alinhada com os princípios de desenvolvimento ágil, nomeadamente a sua natureza iterativa e incremental –, apresenta diversas práticas de desenvolvimento ágil de software num enquadramento de processo baseado em três fases principais: Concepção, Construção e Transição.

Após um capítulo zero inicial, onde é feita uma visão geral da engenharia de software e da sua saga na busca de processos com sucesso, o livro está organizado em cinco capítulos.

O capítulo 1 apresenta a metodologia ágil seguida no livro, baseada no RUP e em algumas práticas de outros métodos ágeis, não escarnecendo boas práticas do PMBoK.

Os três capítulos seguintes apresentam as fases de Concepção, Construção e Transição como fase integrante do projeto de desenvolvimento. O segundo capítulo foca atividades da fase de Concepção, a qual é apresentada fazendo uso de alguma formalidade. São apresentados alguns dos artefactos que, segundo o autor, devem ser produzidos nesta fase, os quais constituem documentação útil para o projeto, apesar de esquecida por muitas das metodologias ágeis mais mainstream. Artefactos produzidos nesta fase, e explicados neste capítulo, incluem um documento de visão do negócio e documento de enquadramento do âmbito do projeto. A abordagem é guiada por casos de uso, sendo estes a unidade para estimação de esforço, em pontos relativos ou em horas. Outros aspetos, como estimação de custos, análise de riscos e oportunidades e qualidade do produto, são também tratados neste capítulo.

O capítulo 3 apresenta a fase de Construção, onde de forma iterativa e incremental é desenvolvido o produto de software. Aspetos como planeamento de iterações, com seleção de casos de uso a implementar em cada iteração, forma como devem ser detalhados os casos de uso, integração contínua de código, definição de casos de teste, aspetos de gestão de alterações ao âmbito, e reuniões diárias de ponto de situação, são alguns dos assuntos tratados neste capítulo.

O capítulo 4 aborda a fase da transição, tratando de assuntos como o manual de Release e o deployment do software em ambiente de produção. Este capítulo fala ainda das atividades de suporte e manutenção do software, que estendem o ciclo de vida deste para lá do final do projeto de desenvolvimento, e do importante subprocesso de Lessons Learned, onde a equipa de desenvolvimento partilha e documenta soluções de problemas recorrentes, repetíveis em projetos futuros.

O último capítulo apresenta medidas úteis para prevenir o fracasso dos projetos.

Em conclusão, este é um bom livro para gestores de projeto que pretendem implementar metodologias ágeis na gestão dos seus projetos, e para membros de equipa ou developers que trabalhem em ambiente de projeto usando metodologias ágeis. Trata-se ainda de uma obra capaz de suportar uma unidade curricular de Gestão Ágil de Projetos, ao nível de curso superior.

Publicado na edição 54 (PDF) da Revista PROGRAMAR.