A programação de software teve seu início há aproximadamente meio século atrás, e por muito tempo vem sendo realizada de forma desorganizada, sem estrutura ou planejamento, acarretando em softwares de baixa qualidade, entregas fora do prazo e, principalmente, a insatisfação do cliente e o desperdício de tempo e trabalho dos desenvolvedores. Durante a década de 70, todos esses fatores se acentuaram devido ao crescimento na complexidade dos softwares, criando um momento de insatisfação geral que ficou conhecido como a Crise do Software.
Para tentar resolver essa crise, o processo de desenvolvimento e as metodologias mantiveram os princípios mais básicos da Engenharia: a análise, o projeto, a construção – que no caso recebeu o nome específico de desenvolvimento –, a verificação de erros e a gerência de fatores técnicos, recursos, prazos e custos (esse processo, hoje, é conhecido como processo tradicional de desenvolvimento).
Inferiu-se, então, que se todas as regras do processo tradicional de desenvolvimento fossem seguidas a crise estaria resolvida. Não foi bem o que aconteceu.
O processo de desenvolvimento tradicional não foi especialmente desenhado para suportar mudanças nos requisitos do projeto de software. Porem, as mudanças de requisitos ocorriam com frequência obrigando a modificar e alterar a documentação do projeto. Com isso, a confiabilidade dos softwares e, principalmente, as previsões de prazos e custos quase nunca são cumpridas. Isso criava mais custos para as empresas de desenvolvimento e insatisfação de seus clientes e permitia que algumas características da época da crise continuassem.
Observando esses fatores contra, surgiram, em contra partida, as metodologias ágeis. Estas não trazem novos pressupostos, mas focam em novos aspectos da programação. As metodologias ágeis promoveram o surgimento do movimento Agile Alliance, para aumentar a adesão dos desenvolvedores às práticas desta. E, por sua vez, criou o Manifesto Ágil, que se propôs a dar mais prioridade ao aspecto humano, excluindo a excessiva necessidade de documentar todos os passos de um desenvolvimento de software, possibilitando uma intensa manipulação dos códigos que já estavam em funcionamento, entre outras.
Assim, alem da grande capacidade de acompanhar e adaptar-se às mudanças dos requisitos do sistema. As metodologias ágeis têm seu foco voltado para o código das aplicações e ao feedback rápido ao cliente e dão importância secundária aos contratos, ao planejamento e à documentação. Possuem as seguintes fases: a definição (momento em que se procura definir as funcionalidades, restrições, validações, interfaces e os requisitos necessários), o desenvolvimento (define-se como os dados serão estruturados e como as funções serão implementadas) e a manutenção (análise do projeto e suas modificações).
O mais conhecido processo ágil é o Extreme Programming (XP), que surgiu em 1996, possibilitando que a abordagem dos projetos pudesse ser realizada de uma maneira simples, direta e eficiente. Assim, ele tem como objetivo principal a redução dos processos burocráticos das metodologias tradicionais e a promoção de mais produtividade com menos custos. Ele atinge esses objetivos através do seu foco em equipes pequenas e nos seus quatro elementos fundamentais: comunicação, simplicidade, feedback e coragem.
A comunicação, no XP, procura manter um bom relacionamento entre os clientes e os desenvolvedores, pois como não há tanta preocupação com a documentação, torna-se necessário que todos os envolvidos tenham conhecimentos atualizados sobre o que está ocorrendo durante o desenvolvimento.
A simplicidade demonstra a tendência em utilizar códigos mais simples que não possuam funções desnecessárias e que eles sejam constituídos apenas por funcionalidades que sejam utilizadas no momento, pois implementações futuras são cabíveis numa posterior manutenção.
O feedback constante pode ser relacionado ao desenvolvedor e ao cliente. Ao primeiro, ele consiste nas informações obtidas pelos desenvolvedores através dos testes sobre os erros que podem surgir no projeto. Para os clientes, são as avaliações feitas por estes para que identifiquem erros ou não conformidades do projeto e, assim, possam fazer as modificações necessárias a tempo e de acordo com as necessidades do cliente.
Por último, a coragem é tida como a flexibilidade de práticas que o desenvolvedor pode ter para indicar problemas no sistema, informar ao cliente a viabilidade do projeto, a simplificação de códigos que já estão funcionando, entre outros.
O XP, como qualquer outra metodologia, também tem seus defeitos. Percebe-se que para um melhor desempenho por parte da equipe de desenvolvimento, são necessários alguns fatores, como o trabalho em grupo, um ambiente de desenvolvimento comum a todos, uma busca constante pela qualidade do software e uma maior interatividade entre o cliente e os programadores. Fatores estes que se não forem seguidos à risca podem atrapalhar o andamento do projeto - no Brasil, para a adoção do XP esse é o principal problema. Também, apesar da metodologia ter mais de 10 anos no mercado, muitos programadores deparam-se com algumas dificuldades ao utilizar a mesma, tais como a relutância dos gestores da empresa em adotar algumas regras de desenvolvimento, que na visão deles seria um desperdício de tempo e dinheiro e a resistência dos programadores em trabalhar em equipe e principalmente seguir regras.
Referências:
PRESSMAN, Roger S. Engenharia de Software. 6.ª Edição. 2006. Considerado por todos como melhor livro de Engenharia de Software esse livro é a base para qualquer curso de Engenharia de Software.
SOMMERVILLE, Ian. Engenharia de Software. 8.ª Edição. 2007. Considerado por muitos como segunda referência obrigatória para os cursos de Engenharia de Software esse livro, em minha opinião é o melhor. A primeira edição desse livro foi publicada a mais de 20 anos atrás e a 8.ª edição possui todas as atualizações necessárias para o acompanhamento dessa importante disciplina.
TELES, Vinícios M. Extreme Programming - Aprenda como encantar seus usuários desenvolvendo software com agilidade e alta qualidade. 1.ª Edição. 2006. No Brasil, Vinícios Teles é um dos maiores incentivadores do XP. Esse livro aborda de forma descontraída todos os principais pontos do Extreme Programming.
sábado, 15 de novembro de 2008
2 comentários:
Ótimo post Evandro!
Gostaria de incluir no javamovel.com, o que me diz?
Os créditos são seus e de nossos brothers PRESSMAN e SOMMERVILLE..
Pode publicar com certeza.