ENGENHARIA DE SOFTWARE, PROCESSOS E MÉTODOS ÁGEIS

Vamos falar sobre o Scrum!

Pedro Jesus Elisa

1/18/20224 min read

Desde 1960 a engenharia de software tem garantido diversas técnicas e ferramentas para o sucesso dos projectos de software. Mas, somente oito anos depois, os equipamentos de TI, passaram a estar a um nível mais avançado de construção, permitindo que os computadores fossem capazes de executar tarefas e tornando a fabricação mais barata. Embora, essa evolução não foi aplicada a nível de software, na medida em que, ficava muito mais caro e o tempo de execução para a entrega do produto, mais atrasado. Por esta razão, foi necessário a adopção de novos métodos para controlar a complexidade da sua produção.Actualmente, a preocupação com a qualidade deixou de ser diferencial competitivo, e passou a ser um requisito básico para a participação no mercado (ZANATTA 2004).Para isso, a engenharia de software dedica esforço na tentativa de melhorar o processo de desenvolvimento de software, permitindo que Sommerville em 2014 definisse o processo de software como o conjunto de actividades, cujo objectivo é o desenvolvimento ou a evolução de um software. Houve um grande progresso desde esta época mas ainda assim, existem problemas para entregar os projectos nos prazos e manter os custos inicialmente acordados.As empresas adoptam uma postura mais dinâmica, onde as mudanças no código, não representam tantos problemas para adaptação a um cliente específico. Mas isso só é possível com a criação e aplicação de métodos ágeis, cujo o foco é nas pessoas e não nos processos estáticos e burocráticos de desenvolvimento.

METODOLOGIA

Este artigo basea-se numa pesquisa exploratória desenvolvida aquando da elaboração do primeiro livro Engenharia de software processos e métodos ágeis lançado em 2020, que permitiu discutir os conceitos de processos, metodologias, métodos ágeis e o posicionamento competitivo, com funcionários especializados em desenvolvimento de software, analistas de sistemas e gerentes de qualidade de várias instituições em Angola.

ENGENHARIA DE SOFTWARE

Segundo Fritz Bauer (16 July 1903 – 1 July 1968), a engenharia de software consiste na aplicabilidade de conceitos de engenharia, obtendo abaixo custo um software que funcione de forma eficiente. Neste contexto, trouxe três elementos fundamentais que ajudam o gerente de software a oferecer uma construção de alta qualidade, nomeadamente:Os métodos que definem a aplicabilidade dos conceitos preconizados para a execução das actividades que foram especificadas;As ferramentas que prestam o apoio directo aos métodos;Os procedimentos intermédios entre os processos e as ferramentas, possibilitando o desenvolvimento racional do software. A engenharia de software tomou destaque em 1968 na busca de soluções para atender os problemas que predominavam na época, designadamente, a crise de software. Tendo se destacado nas melhores técnicas e ferramentas, proporcionando novas metodologias para o controlo das dificuldades apresentadas, nos vários sistemas de software. Estas metodologias, ajudaram a quebrar vários paradigmas empíricos na construção de software, estando actualmente classificados como parte essencial da engenharia de software.No contexto actual, é possível notar a utilização activa dessas técnicas, principalmente por parte dos desenvolvedores de software. Porém, isso não os torna numa lei universal. Todavia, ainda temos verificado, dificuldades na construção de software complexos, que correspondam com a necessidade dos utilizadores e que sejam entregues nos prazos e orçamentos acordados (PRESSMAN,1997).

PROCESSO DE SOFTWARE

O Processo de Software combina em um conjunto de actividades que visam uniformizar resultados, com intuito de produzir um software de alta qualidade e económico. Normalmente, destacam-se quatro actividades fundamentais nos processos de software, designadamente:Especificação do software: É a actividade responsável pela definição das funcionalidades e estabelecimento de limites e requisitos para a funcionalidade de software.Desenvolvimento do software: É nesta etapa onde os programadores visam garantir o cumprimento estabelecido nas especificações do produto de software e a sua aplicabilidade.Validação do software: É aplicada a fase de monitorização e controlo. Garantindo que todos os requisitos foram cumpridos e que o software funcione de acordo com o estabelecido no início. E por último , a Evolução do software, onde é garantido o desenvolvimento constante, para suprir as necessidades apresentadas pelo cliente.Todas as actividades referidas acima, são utilizadas em diferentes processos mesmo tratando-se de situações e níveis de diferentes particularidades. Estas diferenças permitem que os prazos das actividades também variam, proporcionalmente ao resultado de cada actividade. Porém, a diferença na utilização dos processos não deve influenciar para a padronização do tipo do produto.Associando a estas atividades e permitindo que a equipa de desenvolvimento possa atingir as suas metas, foram desenvolvidas outros modelos de representações desses processos como, modelo cascata, modelo incremental e modelo espiral, apresentados pelo SOMMERVILLE em 2011.

METODOLOGIA ÁGIL

As Metodologias ágeis de software, nascem como opção em relação as metodologias tradicionais anteriormente conhecidas, no intuito de evitar ao máximo as burocracias e a demora na entrega das fases de desenvolvimento de software.Com o passar do tempo, muitos foram assumindo esta metodologia como um padrão nas suas organizações, para que os produtos fossem entregues de formas rápida e interactiva. Assim, podemos dizer que, as metodologias ágeis, comparadas com as metodologias tradicionais, não produzem documentos em excesso, produzindo somente aquilo que se acha útil para o projecto de desenvolvimento.

MANIFESTO ÁGIL

O Manifesto ágil, surgiu em Fevereiro de 2001, quando um grupo de pessoas marcava o surgimento da ideia de aplicação de desenvolvimento de software ágeis. Embora na época, ainda desconhecido como tal e, que viria ser chamado de Manifesto ágil. Resultado de um encontro composto por 17 pessoas que discutiram sobre as melhores práticas a serem utilizadas, com o objectivo de aplica-las quotidianamente e incentivar ou ajudar outras pessoas, nomeadamente:1.A valorização das Pessoas e interacção entre eles, é mais importante que os processos e ferramentas;2.Possuir um Software em funcionamento, é mais importante do que ter documentação abrangente;3.A Colaboração permanente com o cliente, é mais importante que a negociação de contratos;4.Responder a mudanças atempadamente, é mais importantes que seguir um plano. Isso não parou por ai, ao longo dos anos surgiram diversas metodologias de desenvolvimento ágil, como, Crystal Clear, Adaptive Software Development (ASD), Feature Driven Development (FDD), Dynamic Systems Development Method (DSDM), e Extreme Programming (XP) que é o mais difundido de todos (PAULA FILHO, 2009).