artigo GERENCIAMENTO DE PROJETOS
GERENCIAMENTO ÁGIL
DE PROJETOS EM TA
Samarone Guimarães Ruas ([email protected]),
Diretor de Aplicações da iTech Soluções,
uma divisão da Techplus Automação.
INTRODUÇÃO
ao ambiente de desenvolvimento implantado em uma
Desde a Crise do Software, que forçou com que as Software
organização e às características dos projetos: O tempo
Houses
realizassem
projetos
de
desenvolvimento
de
que pode ser gasto e a real necessidade do cliente a fim de
Software de uma maneira mais profissional e organizada,
estimar custos e prazos reais.
muitas metodologias para esse desenvolvimento surgiram.
Entretanto, a crise do software perdura até hoje. Mesmo
Linguagens foram criadas para modelar e facilitar o
com técnicas avançadas de desenvolvimento e padrões
entendimento do produto pelo cliente e pela própria empresa
consolidados na área de criação de softwares, ainda existem
desenvolvedora [1].
características da época da crise: projetos atrasados, erros
Na década de 70, a atividade “desenvolvimento de
de estimativa de custos e de tempo que tornam o processo,
software”
era
executada
de
forma
desorganizada,
ainda que sistematizado, passível de muitos erros.
desestruturada e sem planejamento. Gerava-se um produto
Um famoso estudo feito pelo Standish Group, publicado
final de má qualidade, pois não existia documentação, era
anualmente, mostrava na sua última revisão em 2009 [2]:
entregue fora do prazo ou o levantamento de tempo e
• 24% dos projetos fracassam.
esforço não correspondia com a real necessidade. Muitas
• 44% dos projetos são entregues com sucesso parcial.
vezes, esta atividade não satisfazia às necessidades
do cliente, desperdiçavam-se recursos da empresa e
aumentavam-se gastos que não viriam a ser compensadores
para o cliente, demandando tempo, esforço e dinheiro. Essa
• E apenas 32% dos projetos obtêm sucesso.
A pergunta que fica é: O que podemos fazer para aumentar
estes 32%?
época ficou conhecida como Crise do Software [1].
A partir deste cenário, surgiu a necessidade de tornar
o Desenvolvimento de Software como um processo
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
estruturado,
Pela perspectiva dos clientes o processo de desenvolvimento
planejado
e
padronizado,
para
que
as necessidades fossem atendidas e os gastos com
informatização de processos de informações se tornassem
compensadores.
Para
o
“caixa-preta”. Os requisitos entram por um lado e o
produto sai do outro, normalmente muito tarde.
atendimento
Metodologias
de um software muitas vezes se assemelha a uma
de
desta
padronização,
que
surgiram
dividem
intervalo podemos ver a Especificação Funcional e outros
o
documentos e produtos que nos mostra que alguma coisa
processo de desenvolvimento em fases pré-definidas. Essas
está acontecendo, mas que não podemos ter certeza do
Metodologias se adequam às características organizacionais,
que exatamente.
32 InTech 130
Desenvolvimento
Neste
Normalmente, a probabilidade de uma
GERENCIAMENTO DE PROJETOS artigo
mudança de requisito aumenta com o tamanho do projeto,
Uma abordagem linear significa que o projeto é desenvolvido
o que aumenta ainda mais a dúvida se o resultado do projeto
etapa por etapa. Por exemplo:
vai atender as nossas necessidades. Então só resta aguardar e
1.O time de projeto primeiro analisa, determinando e
ter esperança que tudo dê certo. Os resultados, no entanto,
são incertos e normalmente decepcionantes. Os clientes
normalmente ao verem o resultado pela primeira vez tem a
síndrome da reação “Sim... Mas...” [3]:
Sim, isto é realmente legal e apreciamos o que foi feito, mas
não é exatamente o que precisamos. Talvez:
1. Você não tenha entendido o que queríamos; ou
2. Você tenha entendido, mas mesmo assim tenha feito algo
diferente; ou
3. Isto é o que queríamos, mas agora precisamos de algo
diferente.
priorizando os requisitos.
2. Em seguida, na fase de “Design” os requisitos são
traduzidos em soluções técnicas e as decisões são
tomadas em relação a qual tecnologia utilizar, i.e.
Java, VB, etc..
3. Uma vez que os processos são definidos se inicia a fase de
“desenvolvimento do código”.
4. A próxima fase envolve o teste completo do software.
5. Por fim, a última fase envolve a manutenção do software.
A Figura 1 mostra a sequência de desenvolvimento em um
modelo “cascata”
O que precisamos é de uma forma do cliente ver e avaliar o
Water
progresso antes que seja tarde demais. Precisamos de um
processo que ofereça visibilidade mais cedo e que aceite
mudanças, mas que mantenha rigor em relação à qualidade.
DISCOVER
Business
requirements
fall
method
DESIGN
Technical
design
METODOLOGIAS DE DESENVOLVIMENTO
DEVELOP
Coding
& testing
Metodologia de Desenvolvimento é um conjunto de
DEPLOY
práticas recomendadas para o Desenvolvimento de
Client OK
& launch
Software, sendo que essas práticas, geralmente, passam
por fases ou passos que são subdivisões do processo para
ordená-lo e melhor gerenciá-lo [4].
Figura 1
2 – Metodologias de desenvolvimento ágeis
1 – Metodologias tradicionais
No começo de 2001, motivados pela observação de times de
As metodologias consideradas tradicionais têm como
desenvolvimento perdidos entre os processos que existiam na
característica marcante serem divididas em etapas e/ou fases.
época, alguns especialistas da indústria do desenvolvimento
Essas fases são muito bem definidas e englobam atividades
de softwares se uniram para encontrar valores e princípios
como Análise, Modelagem, Desenvolvimento e Testes.
relacionados ao desenvolvimento que seriam capazes de
Muitas metodologias pesadas são desenvolvidas no
fazer com que as equipes de desenvolvimento pudessem
modelo em cascata o que dificulta o controle do projeto.
responder mais rápidos às mudanças nas especificações e que
A cada alteração em determinado ponto do projeto,
o projeto fosse desenvolvido mais rapidamente.
como os requisitos, será necessário uma volta ao início do
Depois de algum tempo de pesquisa, esses especialistas
mesmo para alteração de documentação ou outro marco.
escreveram um manifesto que ficou conhecido como
Neste modelo as fases definidas são sistematicamente
“Manifesto for Agile Software Development” [5]. Esse
seguidas de forma linear. É o modelo mais usado em todo
manifesto destaca quatro valores. São eles:
o mercado, porém não é o mais eficaz. Raros projetos
seguem esse fluxo linear, além das mudanças de requisitos
que ocorrem no decorrer do projeto não serem de fácil
• Indivíduos e iterações ao invés de processos e ferramentas.
• Software funcional ao invés de documentação detalhada.
adaptação, porque alteram toda a documentação já
• Colaboração do Cliente ao invés de negociação de contratos.
desenvolvida, o que implica em retrabalho [1].
• Responder às mudanças ao invés de seguir um plano.
InTech 130 33
artigo GERENCIAMENTO DE PROJETOS
Neste sentido, este novo modelo de desenvolvimento de
software foca em dois objetivos comuns:
1. Desenvolver software “utilizável” mais rapidamente.
2. Fornecer de forma frequente e regular visibilidade ao
cliente e “stakeholders” da solução;
Agilidade, para uma organização de desenvolvimento
de software, é a habilidade de se adaptar e reagir
apropriadamente
às
mudanças.
Um
processo
ágil
é aquele que suporta este grau de adaptabilidade.
Portanto não é apenas velocidade de entrega, mas,
Figura 2 – Fonte: Forrester Research, Inc.
sobretudo, flexibilidade.
Um fator comum nestas metodologias é que elas fornecem
Um projeto descrito por adjetivos como “incerto”, “complexo”,
visibilidade através de iterações.
Uma
iteração
é
uma
sequencia
de
atividades
de
desenvolvimento conduzidas de acordo com um plano
e critérios de avaliação que culmina em um produto de
software consistente, integrado e testado.
Iterações tem o objetivo expresso de fornecer em
um curto período de tempo evidências objetivas da
funcionalidade, qualidade e adequação às necessidades
do usuário do software em desenvolvimento. Com
certeza, um processo que produza incrementos de
software
mensuráveis
frequentemente
tem
uma
importante vantagem competitiva em relação a processos
que não o fazem.
“de alto risco” e “urgente” não soa como um bom candidato
para desenvolvimento. No entanto, esta é uma realidade
encontrada em grande parte dos projetos. As práticas de
desenvolvimento de software precisam evoluir para:
• Gerar valor ao negócio ao invés de fazer apenas o
que está especificado no papel. No tempo e dentro
do orçamento não são mais as únicas diretrizes no
desenvolvimento de um projeto de software. Hoje
projetos devem gerar valor ao negócio e satisfação ao
cliente. Um projeto que entrega uma funcionalidade
errada, mesmo que seja o que estava especificado em
contrato, ainda assim pode ser considerado um fracasso.
• Ter um feedback mais rápido. A rapidez pode significar
a diferença entre o sucesso e o fracasso em muitos
mercados. No entanto a rapidez não está apenas associada
VISÃO GERAL DE UMA
METODOLOGIA ÁGIL
à velocidade na entrega de software utilizável e na
De forma resumida, uma metodologia Ágil descreve
interações colaborativas, mudanças rápidas e entrega
flexibilidade mas também nos benefícios de um feedback
mais cedo no ciclo de desenvolvimento do software.
frequente de software em funcionamento ao invés
• Produzir qualidade na aplicação mais cedo. Qualidade
de um processo formal por fases, documentação
não é mais apenas software confiável, mas também está
definida e uma ênfase pesada no planejamento.
associado à facilidade de aprender e usar. As aplicações
Desenvolvedores normalmente justificam a adoção
hoje são mais complexas do que antes. Não são mais
da abordagem Ágil pela maior rapidez na entrega de
apenas projetos de automação. Compreendem muitas
software de alta qualidade. No entanto, um estudo
vezes
da Forrester Research [10] vê a metodologia Ágil
requisitos desconhecidos.
complexos
projetos
multidisciplinares
com
ganhando terreno em situações em que se tem muita
• Aumentar a probabilidade de sucesso do projeto.
incerteza. A possibilidade de aplicar uma metodologia
Se o software aumenta sua importância em um negócio,
baseada na experimentação e na observação possibilita
também o seu fracasso tem um impacto maior. Em muitas
que
compreendam
organizações o sucesso de projetos continua baixo. E quanto
melhor o problema e faça as correções apropriadas no
os
times
maior e mais complexo o projeto maior a probabilidade de
curso do projeto.
falha. A reação natural ao aumento desta complexidade é
34 InTech 130
de
desenvolvimento
GERENCIAMENTO DE PROJETOS artigo
aumentar o rigor do processo de planejamento e aumentar
• O trabalho dentro de um Sprint é fixo. Uma vez que o
a disciplina. No entanto os processos modernos de
escopo é definido, é proibida a adição de funcionalidade
desenvolvimento sugerem introduzir uma abordagem
durante o Sprint exceto pelo time de desenvolvimento.
que encoraje o planejamento frequente em que os times
• Todo o trabalho a ser feito é caracterizado como um
usem a experiência ganha ao longo do projeto e o usem
na próxima etapa de planejamento.
• Encarar a incerteza. Para melhor gerenciar a incerteza
os times de desenvolvimento de software precisam mudar
da forma tradicional, com abordagem preditiva baseada
em artefatos e processos definidos para uma mais flexível,
baseada em observações. O processo de desenvolvimento
é melhor descrito como uma série de objetivos ao invés
“product backlog”. Inclui requisitos a serem entregues,
testes e atividades de infraestrutura e projeto.
• Um
“Scrum
Master”
gerencia
a
equipe
“auto-
organizada” que é responsável pelo sucesso dos
resultados de cada Sprint.
• Uma reunião diária em pé é o método de comunicação
padrão;
de uma lista de atividades para serem feitas. Focando
• Uma grande ênfase em obedecer o período de tempo
no “Por que” ao invés do “como” as técnicas modernas
definido. Sprints, reuniões diárias, reuniões de revisão e
permitem aos times mais flexibilidade para criar um
apresentação são todas finalizadas no tempo combinado.
produto de sucesso.
A Figura 3 resume os artefatos do Scrum:
1 – Scrum
Scrum é um processo de gerenciamento de projetos ágeis,
adaptado para a área de desenvolvimento de software pelo
especialista Ken Schwaber. Ken define Scrum em um de seus
livros como: “um processo Ágil, ou ainda, um framework
para gerenciamento de projetos Ágeis. É um processo de
gerência de projetos” [6], [7].
Martin Fowler, um dos maiores estudiosos em desenvolvimento
Figura 3
de software, comenta em seu artigo A Nova Metodologia [8]
que: “Nos últimos anos vem crescendo rapidamente o interesse
em metodologias ágeis. Também caracterizadas como um
antídoto contra a burocracia, estas metodologias despertaram
os interesses em toda a extensão da indústria do software”.
Importante destacar que a participação ativa do cliente
no processo de desenvolvimento de software faz com
que sejam atribuídas a ele algumas responsabilidades
como definição das funcionalidades do produto, decisão
Dentre as técnicas de utilização do Scrum, há a entrega de
quanto às datas de lançamento de conteúdo e ajuste de
produtos em períodos de tempo pré-estabelecidos, nunca
funcionalidades [7].
inferiores a uma semana ou superiores a trinta dias.
Para estimular o contato entre empresa e cliente, os projetos
ações dá-se o nome de Sprint. Ao término de cada Sprint, o
GERENCIAMENTO ÁGIL DE PROJETOS EM
EMPRESAS DE INTEGRAÇÃO DE SISTEMAS
cliente recebe um conjunto de funcionalidades desenvolvidas
O desenvolvimento Ágil de Projetos funciona para empresas
e prontas para serem utilizadas. A melhor maneira de
de Integração de Sistemas? Esta é uma pergunta frequente
comprovar se o software atende às necessidades é fazer com
em artigos e blogs pelo mundo e iremos aqui apresentar os
que o cliente o utilize, apontando as qualidades e o que falta
resultados de algumas pesquisas realizadas neste sentido.
são divididos em períodos regulares de tempo. A essas
ser aperfeiçoado.
Um estudo realizado pela Forrester [10] mostra que
As práticas chaves do Scrum incluem:
Integradores de Sistemas (SI) estão cada vez mais utilizando
• Sprints são iterações com um tempo fixo entre 15 e 30
metodologias Ágeis para melhor atender as necessidades dos
dias de duração.
clientes. Veja a Figura 4.
InTech 130 35
artigo GERENCIAMENTO DE PROJETOS
A convergência entre o chão de fábrica e o ambiente de TI
provoca grandes mudanças nas empresas de manufatura
ao redor do mundo. À medida que o mundo globalizado
aumenta a competitividade e abre novas oportunidades,
flexibilidade e eficiência são requisitos para atender
uma demanda mais exigente. As empresas precisam da
informação no tempo certo, no formato certo e para
Figura 4 – Fonte: Forrester Research, Inc.
as pessoas certas. É preciso ter um alinhamento entre a
tecnologia e os objetivos do negócio.
A maior utilização de métodos Ágeis está criando novas situações
A Figura 5 ilustra um modelo de convergência para ajudar
em suas aplicações. Quando originalmente descrita no Manifesto
a definir os componentes que devem ser verificados em
Ágil, o objetivo das práticas Ágeis era ajudar times a desenvolver
cada área [8].
melhor softwares customizados. O estudo da Forrester mostrou
que os Integradores de Sistema (SI) estão expandindo o uso de
técnicas Ágeis a qualquer situação em que se tenha um time, um
problema, e um alto risco. Estas situações incluem desenvolvimento
de softwares customizados, mas também manutenção de sistemas,
gerenciamento de projetos, desenvolvimento de interfaces com
usuário e levantamento de requisitos. Alguns integradores
estão utilizando Scrum até mesmo para atividades que não
estão relacionadas com o desenvolvimento de software.
Na prática o que vemos são Integradores de Sistemas
aplicando os princípios do Gerenciamento Ágil, mas com
algumas pequenas modificações. Por exemplo, eles nem
sempre entregam um software pronto para uso a cada
Figura 5
Sprint, ao invés disto, podem entregar um protótipo. Esta
abordagem pragmática permite usar o melhor do Manifesto
Ágil numa abordagem em que se deseja criar valor para os
clientes. As práticas Ágeis estão expandindo para incluir:
• Implantação de Sistemas: As empresas estão utilizando
os métodos ágeis não apenas no desenvolvimento de
softwares customizados mas também na implantação
de pacotes de aplicações (ERP, CRM, etc.) e soluções de
Business Intelligence (BI).
• Manutenção de software existente: Uma tendência
É sempre importante pensar em como a integração entre a
área de automação e a área de TI pode ajudar a empresa a
realizar o seu negócio de forma mais efetiva.
A pesquisa realizada por Thanesh [12] indica que há
um
profundo
relacionamento
entre
as
funções
da
Automação Industrial e a Tecnologia da Informação (TI) nas
organizações e desta forma existem várias responsabilidades
comuns entre as duas áreas.
crescente entre Integradores de Sistemas é a utilização da
Levando em conta estas pesquisas podemos concluir
abordagem Ágil para melhor gerenciar a manutenção de
que é perfeitamente plausível a utilização de métodos
sistemas existentes.
Ágeis para gerenciamento de projetos em automação
industrial. Cuidado especial deve ser tomado para
GERENCIAMENTO ÁGIL DE PROJETOS EM TA
softwares com “missão crítica”, visto que uma análise
detalhada de cada elemento do software é necessária e
Mudando a pergunta anterior, O desenvolvimento Ágil
o sistema pode ter uma interação com outros softwares e
de Projetos funciona para empresas de TA (Tecnologia de
hardwares [13]. Apesar disto não encontramos nenhuma
Automação)? Vários estudos tem demostrado o impacto da
publicação indicando a utilização destas técnicas por
convergência crescente entre TI e TA nos últimos anos [11], [12].
empresas de automação.
36 InTech 130
GERENCIAMENTO DE PROJETOS artigo
ESTUDO DE CASO
A fim de avaliarmos os resultados da utilização de
Gerenciamento Ágil de projetos em TA, analisaremos
os resultados em uma empresa que atua na área de
Automação Industrial e Integração de sistemas de
informação há mais de 15 anos [14].
Há cerca de 5 anos, sentindo as dificuldades de
gerenciamento de custo/prazo e escopo dos projetos
a
empresa
adotou
uma
metodologia
derivada
dos fundamentos do PMI (Project Management
Institute).
Com
aplicados
os
base
métodos
nesta
metodologia
são
de
gerenciamento
do
projeto por fases, de modo a registrar, controlar e
assegurar as metas acertadas, priorizando sempre
Figura 6
o tratamento formal dos eventos, sem perder a
flexibilidade exigida pelo mercado.
No início de 2010, uma das divisões da empresa, não
satisfeita com os resultados advindos da utilização do PMBOK
A condução do projeto é efetuada com base em
no gerenciamento de seus projetos, iniciou a implantação dos
eventos e fases conforme Figura 6.
conceitos de Gerenciamento Ágil e Lean IT.
InTech 130 37
artigo GERENCIAMENTO DE PROJETOS
O Scrum foi adotado como metodologia formal e, após vários
ganho de qualidade. Fazer a mudança para uma prática ágil
projetos executados sob esta nova abordagem de gerenciamento,
desafia as nossas noções de best practices de engenharia
podemos citar as seguintes vantagens/desvantagens:
de software, metodologias de gerenciamento de projetos e
Vantagens:
estilos de liderança de times de projeto.
• Equipe mais comprometida com as metas traçadas no
O caminho para esta transição nem sempre é fácil e a
dia-a-dia.
• Software pronto mais cedo para avaliação do cliente.
• Alta visibilidade do projeto. Os problemas e dificuldades
ficam explícitos permitindo uma atuação mais rápida.
• Equipe focada. À medida que temos atividades diárias
explicitadas a equipe não se dispersa.
• Melhor atendimento aos requisitos de prazo, com menos
burocracia e mais iteração.
• As prioridades do cliente são atendidas mais cedo.
Desvantagens:
• Necessidade de uma maior participação do cliente. Se o
cliente não participa do projeto por indisponibilidade os
resultados são comprometidos, pois a diminuição da
documentação formal neste caso deixa o cliente sem
feedback sobre o andamento do projeto.
• Clientes que exigem uma grande documentação formal
como item contratual tendem a dificultar a adoção da
abordagem Ágil.
• Durante o período de comissionamento e startup é
mais complicada a utilização da metodologia ágil pela
dificuldade de realização da reunião diária e pela grande
dependência de fatores externos à equipe.
CONCLUSÃO
A indústria de desenvolvimento de software evoluiu e
se transformou em uma das mais importantes indústrias
do nosso tempo. Do controle da produção de alimentos,
passando pelo fornecimento de segurança e controle dos
veículos que dirigimos à automação e gerenciamento
de negócios o software se tornou uma das propriedades
intelectuais mais valiosas do mundo.
Neste ambiente competitivo, a empresa para ter sucesso
tem que ter a habilidade de criar e desenvolver produtos
de software de forma mais rápida e que melhor atenda às
necessidades reais dos seus clientes.
Metodologias ágeis de desenvolvimento estão liderando
metodologia tradicional e a metodologia Ágil não só podem
como devem coexistir para atender os diferentes tipos de
projetos e clientes. O futuro aponta para uma coexistência
pacífica onde o melhor de cada um seja utilizado [15],
[16]. Projetos de indústrias que são regulamentadas, e que
exigem a validação do sistema ao seu final não vão deixar
de existir simplesmente porque a equipe está adotando uma
metodologia Ágil. Ao invés disto estes times precisam aprender
a integrar estas necessidades em seus procedimentos ágeis e
iniciar um trabalho de investigação de como fazer para que
estes requisitos não prejudiquem o projeto.
REFERÊNCIAS BIBLIOGRÁFICAS
1. Pressman, R. S. Engenharia de Software, 5ª Edição Makron Books 2002.
2. CHAOS Summary 2009. The Standish Group International, 2009.
www.standishgroup.com
3. Leffingwell, Dean e Muirhead, Dave, Tactical Management of Agile
Development: Achieving Competitive Advantage. Rally Software
Development Corporation Whitepaper, 2004.
4. Sommerville. Software Engineering. 6th Edition, Addison Wesley, 2000.
5. Agile Manifesto, http://agilemanifesto.org
6. Schwaber, Ken, Mike Beedle. Agile Software Development with
Scrum. Prentice Hall 2002.
7. Schwaber, Ken. Agile Project management with Scrum.
Microsoft Press, 2004.
8. Fowler, Martin. The New Metodology.
http://martinfowler.com/articles/newMethodology.html
9. Neto, Oscar Nogueira de Souza. Análise Comparativa
das Metodologias de Desenvolvimento de Softwares Tradicionais
e Ágeis: TCC Bacharelado Ciência da Computação da Universidade
da Amazônia, 2004.
10. West, Dave. Agile Systems Integrators: Plausible or Paradoxical?
Forrester Research, July 2010.
11. The New Megatrend: Convergence in Manufacturing. Publicação
ENET-SP007A-EN-P – June 2008. Rockwell Automation.
12. Marimuthu, Thanesh: The impact of the convergence of
Information Technology and Industrial Automation on operational
excellence in the Manufacturing Environment. Dissertação para o
MBA na Universidade de Kwazulu-Natal, 2007.
13. Wang, Lingfeng and Tan, Kay chen. Modern industrial automation
software design: Principles and real-world examples.
John Wiley and Sons, 2006.
14. www.techplus.com.br/itech
este caminho ajudando equipes de software a entregarem
15. Sliger, Michele. Bridging the Gap: Agile Projects in the Waterfall
Enterprise. Better Software magazine, July/August 2006.
produtos de forma mais frequente e com significativo
16. http://agile.vc.pmi.org: Agile Community of Practice.
38 InTech 130
Download

Artigo Intech 130: Gerenciamento Ágil de Projetos em TA