32 - techplus automação industrial · final de má qualidade, pois não existia documentação,...
Post on 10-Nov-2018
218 Views
Preview:
TRANSCRIPT
32 InTech 130
Samarone Guimarães Ruas (samarone@techplus.com.br), Diretor de Aplicações da iTech Soluções, uma divisão da Techplus Automação.
GERENCIAMENTO ÁGILDE PROJETOS EM TA
artigo GERENCIAMENTO DE PROJETOS
INTRODUÇÃO
Desde a Crise do Software, que forçou com que as Software
Houses realizassem projetos de desenvolvimento de
Software de uma maneira mais profissional e organizada,
muitas metodologias para esse desenvolvimento surgiram.
Linguagens foram criadas para modelar e facilitar o
entendimento do produto pelo cliente e pela própria empresa
desenvolvedora [1].
Na década de 70, a atividade “desenvolvimento de
software” era executada de forma desorganizada,
desestruturada e sem planejamento. Gerava-se um produto
final de má qualidade, pois não existia documentação, era
entregue fora do prazo ou o levantamento de tempo e
esforço não correspondia com a real necessidade. Muitas
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
é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
estruturado, 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 atendimento desta padronização, surgiram
Metodologias de Desenvolvimento que dividem o
processo de desenvolvimento em fases pré-definidas. Essas
Metodologias se adequam às características organizacionais,
ao ambiente de desenvolvimento implantado em uma
organização e às características dos projetos: O tempo
que pode ser gasto e a real necessidade do cliente a fim de
estimar custos e prazos reais.
Entretanto, a crise do software perdura até hoje. Mesmo
com técnicas avançadas de desenvolvimento e padrões
consolidados na área de criação de softwares, ainda existem
características da época da crise: projetos atrasados, erros
de estimativa de custos e de tempo que tornam o processo,
ainda que sistematizado, passível de muitos erros.
Um famoso estudo feito pelo Standish Group, publicado
anualmente, mostrava na sua última revisão em 2009 [2]:
• 24%dosprojetosfracassam.
• 44%dosprojetossãoentreguescomsucessoparcial.
• Eapenas32%dosprojetosobtêmsucesso.
A pergunta que fica é: O que podemos fazer para aumentar
estes32%?
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
Pela perspectiva dos clientes o processo de desenvolvimento
de um software muitas vezes se assemelha a uma
“caixa-preta”. Os requisitos entram por um lado e o
produto sai do outro, normalmente muito tarde. Neste
intervalo podemos ver a Especificação Funcional e outros
documentos e produtos que nos mostra que alguma coisa
está acontecendo, mas que não podemos ter certeza do
que exatamente. Normalmente, a probabilidade de uma
InTech 130 33
GERENCIAMENTO DE PROJETOS artigo
mudança de requisito aumenta com o tamanho do projeto,
o que aumenta ainda mais a dúvida se o resultado do projeto
vai atender as nossas necessidades. Então só resta aguardar e
teresperançaquetudodêcerto.Osresultados,noentanto,
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ãotenhaentendidooquequeríamos;ou
2. Vocêtenhaentendido,masmesmoassimtenhafeitoalgo
diferente;ou
3. Isto é o que queríamos, mas agora precisamos de algo
diferente.
O que precisamos é de uma forma do cliente ver e avaliar o
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.
METODOLOGIAS DE DESENVOLVIMENTO
Metodologia de Desenvolvimento é um conjunto de
práticas recomendadas para o Desenvolvimento de
Software, sendo que essas práticas, geralmente, passam
por fases ou passos que são subdivisões do processo para
ordená-loemelhorgerenciá-lo[4].
1 – Metodologias tradicionais
As metodologias consideradas tradicionais têm como
característica marcante serem divididas em etapas e/ou fases.
Essas fases são muito bem definidas e englobam atividades
como Análise, Modelagem, Desenvolvimento e Testes.
Muitas metodologias pesadas são desenvolvidas no
modelo em cascata o que dificulta o controle do projeto.
A cada alteração em determinado ponto do projeto,
como os requisitos, será necessário uma volta ao início do
mesmo para alteração de documentação ou outro marco.
Neste modelo as fases definidas são sistematicamente
seguidas de forma linear. É o modelo mais usado em todo
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
adaptação, porque alteram toda a documentação já
desenvolvida, o que implica em retrabalho [1].
Uma abordagem linear significa que o projeto é desenvolvido
etapa por etapa. Por exemplo:
1. O time de projeto primeiro analisa, determinando e
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. Apróximafaseenvolveotestecompletodosoftware.
5. Por fim, a última fase envolve a manutenção do software.
AFigura1mostraasequênciadedesenvolvimentoemum
modelo “cascata”
Figura 1
2 – Metodologias de desenvolvimento ágeis
No começo de 2001, motivados pela observação de times de
desenvolvimento perdidos entre os processos que existiam na
época, alguns especialistas da indústria do desenvolvimento
de softwares se uniram para encontrar valores e princípios
relacionados ao desenvolvimento que seriam capazes de
fazer com que as equipes de desenvolvimento pudessem
responder mais rápidos às mudanças nas especificações e que
o projeto fosse desenvolvido mais rapidamente.
Depois de algum tempo de pesquisa, esses especialistas
escreveram um manifesto que ficou conhecido como
“Manifesto for Agile Software Development” [5]. Esse
manifesto destaca quatro valores. São eles:
•Indivíduoseiteraçõesaoinvésdeprocessoseferramentas.
•Softwarefuncionalaoinvésdedocumentaçãodetalhada.
•ColaboraçãodoClienteaoinvésdenegociaçãodecontratos.
•Responderàsmudançasaoinvésdeseguirumplano.
Businessrequirements
Technicaldesign
Coding& testing
Client OK& launch
DISCOVER
DESIGN
DEVELOP
DEPLOY
Waterfall
method
34 InTech 130
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”dasoluçã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,
sobretudo, flexibilidade.
Um fator comum nestas metodologias é que elas fornecem
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.
VISÃO GERAL DE UMA METODOLOGIA ÁGIL
De forma resumida, uma metodologia Ágil descreve
interações colaborativas, mudanças rápidas e entrega
frequente de software em funcionamento ao invés
de um processo formal por fases, documentação
definida e uma ênfase pesada no planejamento.
Desenvolvedores normalmente justificam a adoção
da abordagem Ágil pela maior rapidez na entrega de
software de alta qualidade. No entanto, um estudo
da Forrester Research [10] vê a metodologia Ágil
ganhando terreno em situações em que se tem muita
incerteza. A possibilidade de aplicar uma metodologia
baseada na experimentação e na observação possibilita
que os times de desenvolvimento compreendam
melhor o problema e faça as correções apropriadas no
curso do projeto.
Figura 2 – Fonte: Forrester Research, Inc.
Um projeto descrito por adjetivos como “incerto”, “complexo”,
“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
à velocidade na entrega de software utilizável e na
flexibilidade mas também nos benefícios de um feedback
mais cedo no ciclo de desenvolvimento do software.
• Produzir qualidade na aplicação mais cedo. Qualidade
não é mais apenas software confiável, mas também está
associado à facilidade de aprender e usar. As aplicações
hoje são mais complexas do que antes. Não são mais
apenas projetos de automação. Compreendem muitas
vezes complexos projetos multidisciplinares com
requisitos desconhecidos.
• Aumentar a probabilidade de sucesso do projeto.
Se o software aumenta sua importância em um negócio,
também o seu fracasso tem um impacto maior. Em muitas
organizações o sucesso de projetos continua baixo. E quanto
maior e mais complexo o projeto maior a probabilidade de
falha. A reação natural ao aumento desta complexidade é
InTech 130 35
GERENCIAMENTO DE PROJETOS artigo
aumentar o rigor do processo de planejamento e aumentar
a disciplina. No entanto os processos modernos de
desenvolvimento sugerem introduzir uma abordagem
que encoraje o planejamento frequente em que os times
usemaexperiênciaganhaaolongodoprojetoeousem
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
de uma lista de atividades para serem feitas. Focando
no “Por que” ao invés do “como” as técnicas modernas
permitem aos times mais flexibilidade para criar um
produto de sucesso.
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ênciadeprojetos”[6],[7].
Martin Fowler, um dos maiores estudiosos em desenvolvimento
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”.
Dentre as técnicas de utilização do Scrum, há a entrega de
produtos em períodos de tempo pré-estabelecidos, nunca
inferiores a uma semana ou superiores a trinta dias.
Para estimular o contato entre empresa e cliente, os projetos
são divididos em períodos regulares de tempo. A essas
ações dá-se o nome de Sprint. Ao término de cada Sprint, o
cliente recebe um conjunto de funcionalidades desenvolvidas
e prontas para serem utilizadas. A melhor maneira de
comprovar se o software atende às necessidades é fazer com
que o cliente o utilize, apontando as qualidades e o que falta
ser aperfeiçoado.
As práticas chaves do Scrum incluem:
• Sprints são iterações com um tempo fixo entre 15 e 30
dias de duração.
• O trabalhodentrodeumSprint é fixo. Uma vez que o
escopo é definido, é proibida a adição de funcionalidade
durante o Sprint exceto pelo time de desenvolvimento.
• Todo o trabalho a ser feito é caracterizado como um
“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.
• Umareuniãodiáriaempééométododecomunicação
padrão;
• Uma grande ênfase em obedecer o período de tempo
definido. Sprints, reuniões diárias, reuniões de revisão e
apresentação são todas finalizadas no tempo combinado.
A Figura 3 resume os artefatos do Scrum:
Figura 3
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
quanto às datas de lançamento de conteúdo e ajuste de
funcionalidades [7].
GERENCIAMENTO ÁGIL DE PROJETOS EM EMPRESAS DE INTEGRAÇÃO DE SISTEMAS
O desenvolvimento Ágil de Projetos funciona para empresas
de IntegraçãodeSistemas?Estaéumaperguntafrequente
em artigos e blogs pelo mundo e iremos aqui apresentar os
resultados de algumas pesquisas realizadas neste sentido.
Um estudo realizado pela Forrester [10] mostra que
Integradores de Sistemas (SI) estão cada vez mais utilizando
metodologias Ágeis para melhor atender as necessidades dos
clientes.VejaaFigura4.
36 InTech 130
artigo GERENCIAMENTO DE PROJETOS
AconvergênciaentreochãodefábricaeoambientedeTI
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
as pessoas certas. É preciso ter um alinhamento entre a
tecnologia e os objetivos do negócio.
AFigura5ilustraummodelodeconvergênciaparaajudar
a definir os componentes que devem ser verificados em
cada área [8].
Figura 5
É 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.
Levando em conta estas pesquisas podemos concluir
que é perfeitamente plausível a utilização de métodos
Ágeis para gerenciamento de projetos em automação
industrial. Cuidado especial deve ser tomado para
softwares com “missão crítica”, visto que uma análise
detalhada de cada elemento do software é necessária e
o sistema pode ter uma interação com outros softwares e
hardwares [13]. Apesar disto não encontramos nenhuma
publicação indicando a utilização destas técnicas por
empresas de automação.
Figura 4 – Fonte: Forrester Research, Inc.
A maior utilização de métodos Ágeis está criando novas situações
em suas aplicações. Quando originalmente descrita no Manifesto
Ágil, o objetivo das práticas Ágeis era ajudar times a desenvolver
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
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
crescente entre Integradores de Sistemas é a utilização da
abordagem Ágil para melhor gerenciar a manutenção de
sistemas existentes.
GERENCIAMENTO ÁGIL DE PROJETOS EM TA
Mudando a pergunta anterior, O desenvolvimento Ágil
de Projetos funciona para empresas de TA (Tecnologia de
Automação)? Vários estudos tem demostrado o impacto da
convergênciacrescenteentreTIeTAnosúltimosanos[11],[12].
InTech 130 37
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çãohámaisde15anos[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 base nesta metodologia são
aplicados os métodos de gerenciamento do
projeto por fases, de modo a registrar, controlar e
assegurar as metas acertadas, priorizando sempre
o tratamento formal dos eventos, sem perder a
flexibil idade exigida pelo mercado.
A condução do projeto é efetuada com base em
eventosefasesconformeFigura6.
Figura 6
No início de 2010, uma das divisões da empresa, não
satisfeita com os resultados advindos da utilização do PMBOK
no gerenciamento de seus projetos, iniciou a implantação dos
conceitos de Gerenciamento Ágil e Lean IT.
38 InTech 130
artigo GERENCIAMENTO DE PROJETOS
O Scrum foi adotado como metodologia formal e, após vários
projetos executados sob esta nova abordagem de gerenciamento,
podemos citar as seguintes vantagens/desvantagens:
Vantagens:
• Equipe mais comprometida com as metas traçadas no
dia-a-dia.
• Softwareprontomaiscedoparaavaliaçãodocliente.
• Altavisibilidadedoprojeto.Osproblemasedificuldades
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.
• Melhoratendimentoaosrequisitosdeprazo,commenos
burocracia e mais iteração.
• Asprioridadesdoclientesãoatendidasmaiscedo.
Desvantagens:
• Necessidadedeumamaiorparticipaçãodocliente.Seo
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.
• Clientesqueexigemumagrandedocumentaçã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ênciadefatoresexternosà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
este caminho ajudando equipes de software a entregarem
produtos de forma mais frequente e com significativo
ganho de qualidade. Fazer a mudança para uma prática ágil
desafia as nossas noções de best practices de engenharia
de software, metodologias de gerenciamento de projetos e
estilos de liderança de times de projeto.
O caminho para esta transição nem sempre é fácil e a
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 DevelopmentCorporationWhitepaper,2004.
4. Sommerville.SoftwareEngineering.6thEdition,AddisonWesley,2000.
5. Agile Manifesto, http://agilemanifesto.org
6. Schwaber,Ken,MikeBeedle.AgileSoftwareDevelopmentwithScrum. Prentice Hall 2002.
7. Schwaber, Ken. Agile Project management with Scrum. MicrosoftPress,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:TCCBachareladoCiênciadaComputaçãodaUniversidadedaAmazônia,2004.
10.West,Dave.AgileSystemsIntegrators:PlausibleorParadoxical?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. JohnWileyandSons,2006.
14.www.techplus.com.br/itech
15. Sliger, Michele. Bridging the Gap: Agile Projects in the Waterfall Enterprise.BetterSoftwaremagazine,July/August2006.
16.http://agile.vc.pmi.org: Agile Community of Practice.
top related