segunda-feira, 11 de abril de 2011

[Seminário] Modelagem Ágil

Wagner Martins Barboza RA 0919400026
Suelen Cosma de Camargo RA 0950168

Introdução

A modelagem é um método eficiente que tem como objetivo tornar mais produtivo os esforços da tarefa de modelar. Os valores, princípios e práticas da Modelagem Ágil podem auxiliar as equipes na definição de componentes técnicos de alto e baixo nível que farão parte do desenvolvimento de software.
Sendo uma das dificuldades mais comuns capturar as necessidades dos usuários, iremos abordar neste trabalho alguns conceitos e aspectos importantes da modelagem ágil, bem como seus benefícios.


Visão geral

A modelagem ágil é vista como um processo de desenvolvimento de software baseado em práticas que visam aumentar a eficiência das equipes dentro dos projetos. Busca a construção e manutenção eficiente de artefatos, criando-os apenas quando agregam valor real ao projeto e focando principalmente os esforços no desenvolvimento do software.
A modelagem ágil visa construir e manter modelos de sistema de maneira eficaz e eficiente, podendo ser utilizada dentro de metodologias ágeis e tradicionais. Pode ser aplicada fazendo com que as pessoas envolvidas nos projetos colaborem para que a solução atenda ao negócio. Uma equipe de desenvolvimento de software é mais eficiente se todos são capazes de fazer todas as atividades. Esta boa prática proporciona um trabalho muito mais colaborativo e integrado.
Durante a construção de um software são consideradas basicamente quatro atividades principais:
1- Compreender que o usuário quer;
2- Definir como os elementos de software resolverão as necessidades do usuário;
3- Escrever esses elementos de software e integrá-los;
4- Testar os elementos e homologá-los com o usuário.

Aspectos humanos e técnicos no desenvolvimento de software

A modelagem ágil é baseada em uma coleção de práticas guiadas por princípios e valores que podem ser aplicados por profissionais de software no dia a dia. Provê sugestões de como ser mai efetivo. Busca o ponto de melhor custo/benefício entre os artefatos que devem ser criados para que o sistema e o custo de manutenção e atualização destes artefatos.
Podemos citar duas motivações principais para a criação desta metodologia:
1- O objetivo primário de um projeto de software é o próprio software, e não um grande número de documentos sobre ele;
2- Um artefato é criado primordialmente para permitir a comunicação e a troca de informações entre a equipe e permitir a discussão e refinamento do modelo do sistema. Assim, se um artefato não está passando informações relevantes ao projeto, ele não cumpre seu objetivo básico.
Na verdade o que se quer com a modelagem do sistema é satisfazer as necessidades dos usuários, garantindo a qualidade interna do software (integridades dos dados ou codificação mais adequada) e respeitando as restrições de custo e prazo do projeto.
A missão de um bom modelador é administrar as expectativas do cliente, avaliando com Le quais problemas são prioritários. Uma das coisas que a metodologia ágil trouxe a tona é a importante participação dos usuários ou clientes para auxiliar na modelagem do sistema, seja elaborando um mapa mental, rascunhando uma tela ou testando um release que acabou de ser liberado.
É sempre importante estabelecer o escopo da modelagem ágil para esclarecer o que pode e o que não pode ser atendido por este processo. A modelagem ágil é um complemento de processos existentes. A idéia por trás dela é utilizar os esforços de maneira mais racional e permanecer focado no projeto, aumentando sua eficiência no desenvolvimento do mesmo.

Rascunhos como forma de modelagem

Quando falamos em modelagem de software, uma das grandes dúvidas das equipes de projeto é quão longe devemos nos aprofundar em detalhes. Como ponto de partida podemos nortear nosso raciocínio através de questionamentos como:
1- Qual é o nome do projeto?
2- Qual é a dúvida que eu tenho?
3- Quem poderá modelar isso junto comigo para obter as respostas?
4- Qual é o modelo certo?
Lembrando que ao conversar com nosso cliente, nosso principal objetivo é ter uma compreensão em alto nível do sistema, e não de todos os detalhes.
Um dos valores da modelagem ágil é modelar com um propósito, o que significa buscar os critérios de sucesso do projeto. A modelagem busca atender ao usuário apresentando qualidade e reduzindo custo ou prazo do projeto. Há uma quantidade infinita de maneiras de modelar. Um esboço feito de forma conjunta com as partes interessadas é um meio muito eficiente de capturar requisitos e descobrir como atingir o objetivo de fazer um software com qualidade externa (atendimento às funcionalidades acordadas com o cliente ou desempenho esperado pelo software) que atendas às expectativas dos usuários.

A importância de se escrever documentos de requisitos

Num contexto geral, software funcionando ainda é o melhor artefato para levantamento de requisitos. Dessa forma os usuários olham o software e solicitam alterações no mesmo e não em documentos. Software é a única coisa concreta que realmente validamos com os usuários.
Documentos de requisitos têm como objetivo registrar o que os usuários esperam da aplicação independente da solução técnica. Isso faz com que esses documentos sejam simples e rápidos de serem elaborados. Mesmo mais importante é que estes artefatos sejam elaborados em reunião de levantamento e não em casa.

Modelagem na obtenção da qualidade

A modelagem ágil possui um princípio chamado Travel Light. Este princípio diz que manter modelos é difícil, e pode se tornar ainda mais se estes forem complexos e detalhados. Três ou quatro modelos são suficientes para melhorar a comunicação da equipe desde que forneçam uma visão geral da análise, da arquitetura e do design. É errado pensar que quanto maior o número de documentações, melhor será o projeto. A documentação precisa ser enxuta.
Para direcionar os esforços em torno da modelagem ágil, existem alguns princípios que devem ser observados para que o processo adotado seja realmente ágil.
- Software é seu principal objetivo: produzir softwares que funcionem;
- Racionalização de artefatos: racionalização da documentação, escolhendo aqueles que serão mantidos durante o processo de desenvolvimento;
- Modele com um propósito: para atender a realidade e para melhorar a comunicação;
- Conteúdo é mai importante que a apresentação: o software é uma poderosa forma de validação junto ao cliente;
- Cada um tem algo a aprender com o outro: na modelagem ágil é comum a participação ativa do cliente. Esta interação permite que ambas as partes se entendam melhor trazendo importantes ganhos para o projeto;
- Adapte o modelo à organização: cada projeto possui suas particularidades que precisam ser observadas;
- Comunicação transparente e honesta: transparência das informações que devem estar em comum acordo para ambas as partes;
- Atentar para os instintos da equipe: ouvir sugestões e reclamações da equipe pois talvez o problema que ela encontrou pode dificultar o restante da implementação.

Conclusão

Modelagem é uma atividade em grupo e tudo que se faz deve ser focado em melhorar a qualidade do software e a produtividade da equipe. O mais importante de tudo é focar nas atividades de desenvolvimento. Durante o levantamento de requisitos, as atividades de conversar com o usuário, obter informações e enriquecer o conhecimento são mais importantes que os casos de uso, protótipos ou modelos que surgirem destas atividades. O que o cliente quer é o software e não os documentos que abstraem o que se espera do software.

Nenhum comentário:

Postar um comentário