Escolar Documentos
Profissional Documentos
Cultura Documentos
Nesta seção você encontra artigos voltados para as práticas e métodos ágeis.
A
Software pela UFES. Tem mais de 12 anos utilização de metodologias competitivo. As práticas ágeis iniciaram
de experiência profissional na área de en- ágeis em projetos de desenvol- sua aplicação em organizações de pe-
genharia de software, atuando principal- vimento de software já é uma queno porte, apesar de terem mostrado,
mente como arquiteto de software J2EE.
realidade, sendo motivada principal- ao longo dos últimos anos, que também
Utiliza o framework Scrum há três anos e
atualmente é engenheiro de software no mente por sua característica dinâmica, podem ser utilizadas em corporações de
serviço público federal. exigência de um mercado cada vez mais médio e grande porte, onde é comum a
implementação de práticas formais de melhoria de processo • Metáfora: tradução das palavras do cliente para facilitar a
de software, dada a necessidade de se repetir e melhorar os comunicação com o desenvolvedor;
resultados obtidos em todos os projetos do portfólio organi- • Projeto Simples: é preciso ter foco na funcionalidade mais
zacional. Os modelos de melhoria de processos de software importante para cada iteração;
mais utilizados no Brasil são o CMMI e MPS.BR, considerados • Testes de Aceitação: testes construídos pelo cliente em
referência para empresas que desejam elaborar processos conjunto com analistas e testadores para aceitação de deter-
otimizados e maduros. minados requisitos;
Muitos adeptos dessas metodologias defendem que mo- • Programação em Pares: Desenvolvedor experiente e iniciante
delos de melhoria de software, como o CMMI e MPS.BR, e programando juntos buscando amadurecimento do iniciante e
metodologias ágeis divergem entre si em conceito e propósito, proporcionando a revisão do código em busca de diminuição
impossibilitando que possam ser integrados. Talvez esse tipo de defeitos;
de reação se deva ao aparente antagonismo de princípios en- • Refatoração: proporciona melhoria contínua da progra-
tre elas ou, até mesmo, por simples orgulho proveniente do mação, mantendo a compatibilidade com código original,
comportamento humano. diminuição de erros e duplicações de código;
Na observação criteriosa dos processos e práticas do CMMI • Propriedade Coletiva: onde o código não tem dono, pro-
e MPS.BR e alguns métodos propostos pelo manifesto ágil, porcionando que todos alterem qualquer parte do programa
é possível perceber que ambos se complementam, ou seja, e conheçam todas as suas partes;
é perfeitamente viável definir um processo de software • Integração Contínua: a cada nova funcionalidade produzida,
aderente a modelos de maturidade e utilizar métodos ágeis é feita a integração ao código existente para que se saiba a real
para sua implementação prática. A tendência é que os be- situação da programação;
nefícios desses dois diferentes paradigmas sejam somados, • Semana de 40 horas: horas extras só devem ser permitidas
possibilitando o desenvolvimento de software mais eficiente caso haja motivação suficiente para boa produtividade;
e maduro. • Reuniões em pé: reuniões rápidas e produtivas evitando a
perda de foco;
Metodologias Ágeis • Padronização de Código: o código de todos os desenvolve-
Em 2001 foi criado o Manifesto Ágil, movimento cuja essência dores deve ser padronizado, permitindo que todos possam
é o desenvolvimento de software respeitando os seguintes manter qualquer parte do sistema.
conceitos:
• Pessoas e interações, ao contrário de processos e Estas práticas são claras, objetivas e específicas e utilizadas
ferramentas; no dia a dia dos membros de uma equipe de XP.
• Software executável, ao contrário de documentação
abrangente; TDD (Test-Driven Development)
• Colaboração do cliente sobre negociação do contrato; O Test-Driven Development é uma técnica de desenvolvimento
• Respostas às mudanças, ao invés de seguir planos. onde, primeiramente, são definidos testes para todos os cená-
rios dos requisitos levantados e, em seguida, é escrito o código,
Várias metodologias e ferramentas ágeis foram originadas que deve respeitar as restrições impostas por eles. Dessa forma,
desse movimento, tendo como base os conceitos previamente o engenheiro tem a tendência de entender melhor o problema,
listados. Dentre as metodologias ágeis existentes, algumas antes de implementar a solução.
delas mais utilizadas no mercado são XP (Extreme Program- Apesar de não ser considerada uma técnica exclusivamente
ming), TDD (Test-Driven Development), FDD (Feature-Driven relacionada ao XP, o TDD tem suas origens nele, sendo comu-
Development), SCRUM e Kanban. mente utilizado em projetos ágeis.
A maturidade de um processo também está diretamente com outras empresas. Todos os processos de um nível devem
associada à qualidade do produto resultante do mesmo. Po- atingir um determinado patamar de maturidade para evoluir
rém, a formalização advinda de modelos de maturidade pode a um próximo nível.
significar maior volume de documentos e grande número de
atividades. Isso pode burocratizar demasiadamente o processo As áreas de processos do CMMI, distribuídas entre os níveis
e prejudicar a produtividade da equipe, caso seja utilizada de de maturidade da representação por estágios, são exibidas na
forma incorreta. Tabela 1.
A utilização de modelos de maturidade tem sido realizada Como se pode observar, há uma concentração maior de áreas
principalmente por organizações de grande porte, devido aos de processos nos dois primeiros níveis de maturidade. Como
custos envolvidos em sua implantação e também pelo objetivo consequência, ao implantar estes dois primeiros níveis, o
de atingir um nível de maturidade certificado, permitindo uma impacto causado na organização tende a ser muito alto.
colocação reconhecida no mercado.
Dois dos modelos de maturidade e melhoria de processos
de software mais utilizados no Brasil são o CMMI e MPS.BR,
que podem ser utilizados tanto em organizações sem processo
de software definido, quanto naquelas que já possuem um
processo, mas desejam melhorá-lo.
CMMI
O CMMI (Capability Maturity Model Integration) é um modelo
desenvolvido pelo SEI (Software Engineering Institute) que indica
práticas específicas e genéricas com o objetivo de obter um
nível de maturidade (ou capacidade) em disciplinas específicas.
Está dividido em três modelos:
• CMMI para Desenvolvimento (CMMI-DEV), para o desen-
volvimento de serviços e produtos;
• CMMI para Aquisição (CMMI-ACQ), para aquisição e ter-
ceirização de bens e serviços;
• CMMI para Serviços (CMMI-SVC), para empresas presta-
doras de serviços.
Verificação - VER
Validação - VAL
D Largamente Definido Projeto e Construção de Produto - PCP AP 1.1 AP 2.1 AP 2.2 AP 3.1 e AP 3.2
Integração de Produto - ITP
Desenvolvimento de Requisitos - DRE
Gerência de Projetos - GPR (evolução)
Gerência de Reutilização - GRU
E Parcialmente Definido Gerência de Recursos Humanos - GRH AP 1.1 AP 2.1 AP 2.2 AP 3.1 e AP 3.2
Definição do Processo Organizacional - DFP
Avaliação e Melhoria do Processo Organizacional - AMP
Medição - MED
Garantia de Qualidade - GQA
F Gerenciado AP 1.1 AP 2.1 e AP 2.2
Gerência de Configuração - GCO
Aquisição - AQU
que sejam efetivamente aplicadas em equipes maiores, muito os demais módulos do sistema numa versão executável, per-
comuns em organizações que adotam modelos de maturida- mitindo a resposta a erros inseridos de forma mais rápida.
de. Para isso, treinamentos adequados são necessários e, em-
bora a abordagem ágil valorize mais as pessoas e interações Garantia da Qualidade (CMMI nível 2, MPS.BR nível F)
mais do que processos e ferramentas, é possível contar com A qualidade do desenvolvimento ágil está relacionada
processos corretamente dimensionados e ferramentas certas principalmente à qualidade do código fonte do produto de
para atingir sucesso. software, que pode ser feita através de revisões e inspeções.
Outro ajuste indicado para a utilização de técnicas ágeis para Entretanto, através de algumas práticas do método ágil XP,
a definição de processos maduros é a adoção de planos mais como refatoração, padronização de código e programação em
detalhados, exigidos pelos modelos de maturidade, apesar pares, a qualidade do código é melhorada de forma dinâmica,
do princípio ágil defender que as respostas às mudanças tem reduzindo a necessidade desses controles.
prioridade mais alta sobre a adesão a um plano. A refatoração possibilita a reestruturação do código, tor-
nando-o mais limpo e coeso, reduzindo a inserção de erros e
Mapeamento Agile X CMMI X MPS.BR facilitando a remoção dos mesmos. Ter escrita de código pa-
Dentro deste contexto de adaptações para a integração de dronizado também contribui para a garantia da qualidade por
práticas ágeis e modelos de maturidade, é possível mapear facilitar a manutenção do software. Por sua vez, a programação
métodos ágeis às áreas de processos do CMMI e aos processos em pares permite que o código seja validado no momento de
do MPS.BR, agrupando as vantagens dos dois paradigmas e sua escrita, diminuindo a quantidade de erros.
definindo processos melhores.
A seguir serão apresentados os processos do CMMI e MPS. Medição (CMMI nível 2, MPS.BR nível F)
BR onde se torna viável e compatível a utilização de práticas A medição em projetos ágeis pode ser feita em dois níveis,
ágeis para sua implementação. utilizando o Scrum. O Daily Scrum permite que a evolução
das tarefas seja medida dia a dia, proporcionando respostas
Gerência de Requisitos (CMMI nível 2, MPS.BR nível G) mais rápidas. As ferramentas ágeis Kanban e Burndown Chart
O método ágil XP pode proporcionar diversos benefícios podem auxiliar neste processo.
na implementação deste processo, por ter o cliente como ator O Sprint Review Meeting realizado ao final de um Sprint
fundamental do projeto. Algumas das práticas utilizadas são: acumula os resultados do ciclo, permitindo aprendizado para
comunicação contínua, feedback e integração contínua. o ciclo seguinte e projetos posteriores.
O método ágil Scrum fornece elementos essenciais na gerên-
cia de requisitos, são eles: backlog, contendo as user stories e o Verificação (CMMI nível 3, MPS.BR nível D)
Product Owner, responsável por controlar as stories. Além disso, Este processo pode ser implementado pelos métodos XP e
é possível obter melhoria contínua com o auxílio das reuniões Scrum através das frequentes interações entre equipe e clien-
diárias (daily meeting). te. A presença diária do Product Owner ganha destaque nesta
O método FDD pode contribuir com este processo através de disciplina, impedindo que o desenvolvimento fuja do escopo
lista de Features e relatórios de progresso do projeto atrelado requerido e permitindo que mudanças de requisitos sejam
aos requisitos. realizadas com o menor custo possível.
O TDD também podem ser úteis para a verificação, por criar
Gerência de Projetos (CMMI nível 2, MPS.BR nível G) testes aderentes aos requisitos antes mesmo da construção,
O processo de gerenciamento de projetos está intimamente dificultando os desvios de escopo.
ligado ao Scrum como um todo, dado que esse tem esse pro-
cesso como principal objetivo. Validação (CMMI nível 3, MPS.BR nível D)
Apesar de não possuírem funções idênticas, o Scrum Mas- Existem duas formas ágeis muito utilizadas para validar se
ter executa atividades similares a de um gerente de projetos, o produto está sendo desenvolvido corretamente:
como remoção de impedimentos e organização de reuniões • Através da prática XP de programação em pares, onde o
de integração entre membros da equipe. código é validado durante sua construção;
Além disso, as ferramentas ágeis Kanban e Burndown Chart • Por meio do TDD, onde os testes antecipados diminuem os
podem ser utilizadas em conjunto para auxiliar o controle de riscos de desvios e erros.
atividades da equipe durante um Sprint.
Mais uma vez, a natureza interativa e cíclica da prática ágil
Gerência de Configuração (CMMI nível 2, MPS. permite que o produto seja frequentemente validado pelos
BR nível F) membros da equipe e pelo cliente.
A característica dinâmica e interativa dos projetos ágeis di-
reciona este processo para a integração contínua. Isso significa Integração do Produto (CMMI nível 3, MPS.BR nível D)
que, a cada “commit” de código no repositório de desenvolvi- Através da prática XP de integração contínua o produto pode
mento do projeto, é feita integração entre o que foi inserido e ser integrado a cada alteração de código. Isso permite que
Conclusão using%20a%20Combination%20of%20agile%20methods.pdf
O mapeamento entre práticas ágeis e áreas de processos (ou Library | CMMI or Agile: Why Not Embrace Both!
processos) de modelos de maturidade, apresentado neste arti- http://www.sei.cmu.edu/library/abstracts/reports/08tn003.cfm
go, é apenas um exemplo prático que possibilita a visualização
da sinergia entre essas disciplinas de propósitos diferentes,
porém não divergentes. Existem outras metodologias ágeis Feedback
Dê seu feedback sobre esta edição! eu
não exploradas neste artigo que podem abranger ainda mais
s
Dê
os processos do CMMI e MPS.BR. A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e
Assim, não é preciso definir um processo de desenvolvi- Para isso, precisamos saber o que você, leitor, acha da revista!
s
ta
edição
mento de software rígido que integre metodologias ágeis e Dê seu voto sobre este artigo, através do link:
modelos de maturidade. É possível flexibilizar a utilização www.devmedia.com.br/esmag/feedback
de métodos ágeis e modelos de maturidade de acordo com as