Escolar Documentos
Profissional Documentos
Cultura Documentos
Blog do Nei
Este é um artigo técnico, sobre os conceitos usados nas metodologias ágeis e está voltado para gestores de
tecnologia da informação, gerentes de projetos de software, arquitetos de software, desenvolvedores, testers e
demais interessados no assunto.
Entre os diversos títulos veja, em especial, o quadro comparativo geral entre a abordagem tradicional e a ágil, e o
quadro que informa quanto é ideal usar cada uma delas.
“Desenvolvimento ágil é o método de engenharia usado para desenvolver produtos (hardware, software ou
serviços) de forma iterativa e incremental com flexibilidade para reagir ao feedback dos clientes. Ele reconhece
que as necessidades do cliente e que a especificação do produto final não pode ser totalmente definida a priori.
Agile é a antítese do Desenvolvimento Cachoeira.”
Na última empresa que participei como sócio-gestor, nossa estratégia e gestão tinham como objetivo
a busca pela excelência e a qualidade total com inovação e melhoria contínua. Concentramos esforços
para atender, e até mesmo superar, as expectativas dos clientes, sócio-investidores e colaboradores,
onde procurávamos sempre:
Utilizar o que havia de melhor em tecnologia da informação para satisfação de nossos clientes,
seja no atendimento, seja no fornecimento de produtos e serviços.
Manter com os clientes, associados, colaboradores e fornecedores uma relação de alto nível
profissional e ético, baseado na integridade, transparência e confiança.
Criar um ambiente alegre, saudável e propicio para a realização pessoal e profissional de nossos
colaboradores.
Contribuir com a sociedade onde atuamos para manter sustentabilidade a longo prazo.
Nos últimos anos em nossa área de sistemas, nossas equipes trabalhavam em: análise de requisitos de
negócio; arquitetura de software; design de interfaces visuais com navegabilidade via protótipos;
desenvolvimento de código que incluíam testes unitários; testes completos; entrega e suporte técnico
ao pessoal de infra-estrutura na implantação; e suporte técnico durante o período de manutenção.
Com certeza não é fácil encontrar a efetividade, ou seja, a eficiência de fazer bem as tarefas utilizando
da melhor maneira possível os recursos, somada com a eficácia que busca atingir um excelente
resultado. Entregar no prazo, com qualidade e com todas as funcionalidades do escopo do projeto
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 1/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
sempre foi o nosso objetivo, e, além disso, precisávamos encontrar formas de manter as equipes
motivadas e os clientes satisfeitos. Foi assim que resolvemos providenciar uma metodologia própria
no desenvolvimento de projetos de software, que aproveitasse o melhor daquilo que havíamos
estudado e praticado ao longo do tempo.
Tomamos então por base os princípios das metodologias ágeis, considerando características do
SCRUM, FDD (Feature-Driven Development) , XP (eXtreme Programming) e MSF Ágile que é uma versão
leve do Microsoft Solution Framework for CMMI (Capability Maturity Model Integration). Também
consideramos algumas práticas do padrão PMBoK (Project Management Body of Knowledge) do PMI
(Program Management Institute) na gestão dos projetos, e alguns diagramas UML (Unified Modeling
Language) para ajudar na interação e coerência entre os requisitos, a modelagem e o sistema.
(h ps://neigrando.files.wordpress.com/2010/09/mm-parcial-msf_agile.jpg)
Seguem abaixo três definições que serão úteis no entendimento dos textos apresentados neste
documento:
Projeto – É um empreendimento temporário com início e término bem definidos, conduzido por
pessoas para atender objetivos dentro de parâmetros de Prazo, Escopo/Qualidade e Custo.
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 2/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
A idéia é adotar práticas que ajudaram outros projetos beneficiar o novo projeto.
Analisando o cenário de projetos da área de Tecnologia da Informação, percebe-se que, mesmo com
os esforços e investimentos realizados, as empresas têm falhado sistematicamente na entrega de seus
projetos de desenvolvimento de sistemas. Pesquisas apontam diferentes causas para esse insucesso,
entre elas, a falta de domínio de métodos e técnicas e/ou a adoção de práticas errôneas de
gerenciamento de projetos. Em face dessa situação, verifica-se a existência de uma lacuna entre a
necessidade dessas empresas e os resultados práticos de desempenho alcançados. Desse hiato, advém
a urgência de se estruturar ou mesmo repensar a disciplina de gerenciamento de projetos clássico,
adotado pelas organizações de desenvolvimento de sistemas.
O Agile Project Management ou Gerenciamento Ágil de Projetos – surge como uma solução
promissora, com o intuito de melhorar os resultados de desempenho dos projetos de
desenvolvimento de sistemas de Tecnologia de Informação.
O problema:
A solução:
Metodologias tradicionais
Será esta a Solução? Utilizar metodologias tradicionais, como RUP, CMMI, modelos ISO e tantas
outras? Buscar a complexidade, ao invés da simplicidade?
“Uma grande solução para nossos problemas … ou um grande problema para nossas soluções?” Ou
devemos ser mais ágeis, utilizando uma metodologia ágil?
Modelagem Ágil é uma metodologia baseada na prática para modelagem efetiva de sistemas
baseados em software.
A metodologia de Modelagem Ágil é uma coleção de práticas, guiadas por princípios e valores que
podem ser aplicados por profissionais de software no dia a dia.
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 3/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
Modelagem Ágil não é um processo prescritivo, ela não define procedimentos detalhados de como
criar um dado tipo de modelo, ao invés ela provê conselhos de como ser efetivo como modelador. É
“no tato”, e não “pau-na-máquina” – pense em Modelagem Ágil como uma arte, não como uma
ciência.
1. Definir e mostrar como colocar em prática uma coleção de valores, princípios e práticas
pertinentes à modelagem efetiva e “peso-leve”.
2. Explorar como aplicar técnicas de modelagem em projetos de software através de uma abordagem
ágil tal como XP, FDD, DSDM ou SCRUM.
3. Explorar como melhorar a modelagem sob processos prescritivos como o Processo Unificado da
Rational (RUP) – atualmente da IBM.
Um modelo ágil é um modelo bom o suficiente, que implica nas seguintes características:
Os 12 Princípios da Agilidade
1. Lembre que a mais alta prioridade é a satisfação do cliente, por meio da liberação mais rápida e
contínua de software de valor;
2. Receba bem as mudanças de requisitos, mesmo em estágios tardios do desenvolvimento.
Processos ágeis devem admitir mudanças que trazem vantagens competitivas para o cliente;
3. Libere software freqüentemente (em intervalos de 2 semanas até 2 meses), dando preferência para
uma escala de tempo mais curta;
4. Mantenha pessoas ligadas ao negócio (cliente) e desenvolvedores trabalhando juntos a maior
parte do tempo do projeto;
5. Construa projetos com indivíduos motivados, dê a eles o ambiente e suporte que precisam e
confie neles para ter o trabalho realizado;
6. O método mais eficiente e efetivo para repassar informação entre uma equipe de desenvolvimento
é pela comunicação face-a-face;
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 4/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
Coragem – Coragem é importante para a tomada de decisões e para permitir a mudança de direção
descartando ou refazendo o trabalho quando algumas decisões anteriores foram inadequadas.
Humildade – Os melhores desenvolvedores são humildes o suficiente para reconhecer que não
conhecem tudo e que estão sujeitos a falhas e que seus seguidores, líderes e outros interessados no
projeto também têm suas áreas de especialidade, e de que testes do código/solução feitos por si e por
outros são necessários e fundamentais para a qualidade do desenvolvimento/resultado. Uma
abordagem efetiva é assumir que todos os envolvidos no projeto têm igual valor e, portanto devem
ser tratados com respeito. Devemos procurar tratar as opiniões e/ou idéias dos outros como se
tivessem maior valor que as nossas. Será mais positivo e produtivo agir com proatividade
procurando criar sinergia e não reação e discórdia.
Simplicidade – É importante aos desenvolvedores entender que modelos são críticos para simplificar
o software e os processos de desenvolvimento – é mais fácil explorar uma idéia e melhorá-la
conforme seu entendimento aumenta, desenhando um diagrama ou dois ao invés de escrever/estudar
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 5/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
Retorno (feedback) – É fácil obter feedback para agir quando comunicamos idéias através de diagramas
universais, como os da UML.
Adicionalmente aos valores listados acima, a metodologia Modelagem Ágil também adotou os
valores da Aliança Ágil. Vide em h p://www.agilealliance.org (h p://www.agilealliance.org) os
valores definidos no seu manifesto:
A coisa importante a se entender é que enquanto você deve valorizar os conceitos do lado direito,
você deve valorizar ainda mais os itens do lado esquerdo. Uma boa forma de pensar sobre o
manifesto é que ele define preferências, não alternativas.
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 6/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 7/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
Por favor, fique a vontade de contribuir com um comentário e compartilhar este artigo com seus
amigos.
Responder
Responder
Responder
Responder
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 9/10
17/03/2019 Metodologias Ágeis no Desenvolvimento de Projetos de Software – Blog do Nei
Responder
Pingback: O Método Lean Startup! | Grupo Somar
O processo de SCRUM, por exemplo, começa com listas de características / requisitos e os entrega
em uma série de ciclos de desenvolvimento (Sprint) que incluem testes.
Problema observado: Tipicamente os testes de usuário são feitos no final do processo corrente e
como resultado requerem algumas alterações que podem gerar custos ao implementar, pois
provavelmente será necessário re-codificar alguma parte.
Solução proposta: Design Thinking pode ajudar entregar software a um custo verificável mais
baixo e entregar maiores taxas de adoção por meio de observações de usuários que são incluídas
nos requisitos desde o início. Além de permitir testar mais cedo com o uso esboços (wireframe) de
baixo custo.
Esta abordagem auxilia na construção que visa o uso intuitivo, o que implica que nenhum manual
de instruções será necessário para utilizar o aplicativo.
Vide artigo: Usando o Design Thinking para Criar e Inovar nos Negócios – h p://bit.ly/pfrB5k
Responder
Responder
https://neigrando.wordpress.com/2010/09/06/metodologias-ageis-no-desenvolvimento-de-projetos-de-software/ 10/10