SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
DESENVOLVIMENTO ÁGIL: UM SURVEY BASEADO EM EXPERIÊNCIAS
PROFISSIONAIS
RESUMO
O cenário de desenvolvimento de sistemas sempre enfrentou desafios relacionados
ao sucesso de um projeto e tentou buscar meios para modificar o comportamento
das equipes. Métodos de engenharia de software, como o Desenvolvimento Ágil,
surgiram para aprimorar a cultura das equipes de desenvolvimento e evitar as falhas
existentes no custo, prazo e funcionalidades de projetos. Porém, assim como
acontece com todo tipo de mudança, o Desenvolvimento Ágil encontrou várias
restrições em sua utilização e recebeu muitas críticas por não se adaptar a projetos
complexos e extensos. Esse trabalho apresenta um estudo dos principais métodos
Ágeis e reúne opiniões, comentários e experiência de pessoas e empresas que
utilizam Desenvolvimento Ágil. Os artefatos positivos e negativos do
Desenvolvimento Ágil foram evidenciados através da aplicação de uma pesquisa de
campo abrangente e entrevistas particulares com profissionais da área. Dessa
forma, a autenticidade das informações obtidas apresentou outra realidade da
imagem do Desenvolvimento Ágil, claramente expostas pelos depoimentos das
pessoas entrevistadas.
Palavras-chave: Desenvolvimento ágil, entrevistas e experiências práticas.
1. INTRODUÇÃO
Devido ao ritmo constante de mudanças no ambiente econômico, mercado
empresarial e de novas tecnologias, as empresas se encontraram em um cenário de
negócios onde responder rapidamente às oportunidades e lidar com ameaças
competitivas se tornou uma atividade importante para a gestão organizacional.
Dentro desse cenário, o sistema de informação não deixa de ser um fator essencial
entre essas operações e, portanto, deve ser desenvolvido de forma rápida para
acompanhar esse ambiente (SOMMERVILE, 2007). Este foi um dos pontos que
originou o Desenvolvimento Ágil, criando uma nova filosofia de desenvolvimento de
sistemas onde a colaboração e comunicação são atividades priorizadas.
O Desenvolvimento Ágil é um método de engenharia de software que permite
uma maior centralização de recursos baseada na comunicação constante com o
cliente e na entrega de valor em pequenas versões do software. Com a perspectiva
de proporcionar agilidade e eficiência em um mesmo projeto, o Desenvolvimento
Ágil surgiu para apoiar os projetistas a gerenciar as etapas no processo de
desenvolvimento para que os requisitos, custos e prazos sejam atendidos em
conformidade. Em pouco tempo, o Desenvolvimento Ágil foi subdividido em
diferentes metodologias com características particulares. No entanto, é necessário
verificar a viabilidade destas metodologias e se elas realmente possuem recursos
suficientes para adaptarem-se em projetos de qualquer dimensão.
2. OBJETIVOS
O objetivo consiste na produção de conhecimento através de um estudo
aprofundado sobre Desenvolvimento Ágil, levantando detalhadamente os aspectos,
vantagens e desvantagens relacionadas ao cenário de desenvolvimento de
sistemas. Com base em pesquisas e comparações com outros modelos de
desenvolvimento, foi possível extrair o máximo do contexto prático sobre o
Desenvolvimento Ágil e suas metodologias. O estudo permitiu reunir todas as
informações necessárias para a construção do conhecimento sobre a lógica do
Desenvolvimento Ágil, bem como suas restrições e processos de adaptação. Para
uma melhor sustentação do trabalho, o objetivo se expandiu a estudar qual o ponto
de vista que as empresas e profissionais da área possuem sobre o método e como
surgiu o interesse ou a necessidade em adotá-lo. O estudo aprofundado das
restrições e a busca por evidências das desvantagens do Desenvolvimento Ágil
complementaram o foco do objetivo desta pesquisa.
3. METODOLOGIA
Como obtenção mandatória de fundamentos teóricos, os estudos abordados
para a realização deste artigo foram baseados em livros, trabalhos científicos e
textos relacionados ao assunto. Conhecer os conceitos, os aspectos práticos e o
emprego das metodologias do Desenvolvimento Ágil é fundamental, entretanto, a
iniciativa em adquirir conhecimentos mais aprofundados sobre o assunto motivou a
ideia de entrar em contato com vários profissionais e empresas que dominam
experiências com Desenvolvimento Ágil. Através de redes sociais, networking
(contatos profissionais), e-mails, áudio-conferências, contatos on-line e ligações
telefônicas, criou-se uma base de conhecimento por meio de depoimentos e
comentários de pessoas conceituadas no assunto que gentilmente forneceram
informações profissionais sobre o cenário atual do Desenvolvimento Ágil e qual a
sua perspectiva diante das empresas.
4. DESENVOLVIMENTO
Todo projeto, pequeno ou grande, deve possuir alguma estrutura básica ou
metodologia para seguir. Não possuir um processo é ruim, mas processos demais
são tão ruins quanto não possuir algum. Encontrar o equilíbrio adequado depende
das necessidades dos clientes e da dimensão do projeto, mas no geral, recomenda-
se um desenvolvimento com menos processos e com mínimo de documentação, do
que ter processos excessivos que podem desmotivar tanto o cliente quanto os
programadores envolvidos no plano de trabalho (HEMRAJANI, 2006).
4.1. Problemas e falhas relacionados ao desenvolvimento de sistemas
O mercado de desenvolvimento de sistemas traz várias situações onde o
usuário utiliza apenas uma parte das funcionalidades contidas no software. Segundo
uma pesquisa apresentada por TELES (2005), existe uma notável falha em projetos
a respeito das funcionalidades desenvolvidas em um sistema. Considerando estas
funcionalidades que nunca ou raramente são utilizadas, as estatísticas indicam que
64% do sistema são desenvolvidos praticamente sem necessidade. Dessa forma,
observa-se claramente um grande desperdício de tempo e custo no planejamento do
projeto, e que poderia adiantar o tempo da entrega do sistema em meses caso fosse
solucionado. O Desenvolvimento Ágil trata a implementação de funcionalidades
baseadas em prioridades definidas pelo próprio cliente. Em um curto período de
tempo estas funcionalidades são desenvolvidas, gerando pequenas versões
funcionais (iterações) do sistema atendendo as expectativas do cliente.
4.2. Características das diretrizes ágeis
As técnicas ágeis de planejamento e iterações são as melhores em
proporcionar um fluxo uniforme com gerenciamento visual, regularidade e
constância. A filosofia é desenvolver desde os requisitos até o visual, implementação
e testes da forma mais rápida possível. Assim, o próximo passo é integrar
continuamente os resultados dentro do software para que ele sempre esteja pronto
para ser usado, até que fique completamente funcional (LEVINE, 2009).
O Desenvolvimento Ágil considera o cliente como um item essencial durante o
andamento do projeto. Segundo KNIBERG (2007), equipes ágeis são capazes de
tomar iniciativas e estimar o tempo de cada funcionalidade, iniciando pela mais
importante. Dessa forma, elas vêm ao encontro das necessidades do cliente e
estipulam a importância de cada requisito dentro do projeto.
Para que as funcionalidades sejam definidas conforme suas prioridades, as
equipes ágeis agendam reuniões com os clientes para receber o retorno dos
resultados (feedback), apresentar o andamento do projeto e definir novas
prioridades para o próximo ciclo de iteração. Neste ponto, vale ressaltar que o
Desenvolvimento Ágil impõe uma comunicação direta entre os usuários e os
programadores para evitar falhas na comunicação e permitir que os requisitos sejam
esclarecidos e apresentados diretamente aos profissionais envolvidos no projeto
(LARMAN; VODDE, 2010).
Desenvolvedores ágeis são cientes de que, quanto maior o feedback fornecido
pelo cliente durante o processo de desenvolvimento, melhor serão os resultados.
Por meio dos feedbacks, é possível observar antecipadamente como os usuários
estão utilizando a aplicação, bem como reunir as dificuldades encontradas e
sugestões para melhorar o sistema. Assim, os próprios usuários ajudam as equipes
ágeis a identificar os processos e quais aspectos devem ser aprimorados ou
removidos (RUBY; THOMAS; HANSSON, 2009).
Uma vantagem do Desenvolvimento Ágil pode ser vista na forma como a
equipe pode ajustar seus procedimentos após cada iteração, como a reorganização
da equipe em si, a duração do ciclo e a velocidade de desenvolvimento. As
mudanças introduzidas entre cada iteração irá aprimorar a qualidade e o
desempenho das iterações subsequentes (RESNICK; BJORK; MAZA, 2011).
Um fato que surpreende as pessoas no primeiro contato com um projeto ágil é
a ausência das fases tradicionais de “visual-codificação-teste”. Em um projeto
tradicional, essas atividades são realizadas isoladamente durante semanas ou
meses, enquanto no Desenvolvimento Ágil elas são repetidas continuamente como
parte da validação da funcionalidade exigida pelo cliente. Outro aspecto é a
abordagem ágil em relação ao levantamento de requisitos, no qual é feito conforme
o projeto é desenvolvido ao invés de capturar todos os requisitos de uma só vez e
colocá-los em documentações extensas (STOTT; NEWKIRK, 2007).
A ideia das ferramentas ágeis em entregar pequenas iterações no sistema
consiste em fazer o próprio cliente reconhecer o que será útil e o que pode ser
dispensado no sistema, poupando tempo no desenvolvimento e propondo um
sistema mais enxuto em funções. Desenvolvedores, gerentes e analistas de
sistemas não devem fazer decisões relacionadas ao negócio do cliente. O correto é
apresentar os detalhes em uma linguagem que o cliente entenda, e permitir que ele
mesmo faça suas próprias decisões referentes ao software (SUBRAMANIAM;
HUNT, 2006).
4.3. Metodologias ágeis
Praticar o Desenvolvimento Ágil em uma equipe de desenvolvimento de
sistemas é uma atividade que necessita da conscientização de todos os
profissionais em aceitar e praticar um modelo diferente de engenharia de software,
para que então eles possam selecionar a metodologia ágil mais adequada à
filosofia de trabalho da empresa.
Uma metodologia ágil é um conjunto de princípios que devem ser praticados
por toda a equipe de desenvolvimento durante o projeto. Embora todas as
metodologias ágeis possuam os mesmos princípios abordados pelo manifesto ágil,
cada uma contém características particulares referentes ao cronograma, diferentes
técnicas para estimativa de custos e para o ciclo das iterações (TELES, 2005).
Dos doze princípios do Manifesto Ágil, o sétimo consiste em definir que o
software funcional é a primeira medida do progresso da equipe. Quando o cliente
aprova as funcionalidades apresentadas, significa que elas já estão prontas para
serem utilizadas. O gerente de projetos de uma equipe ágil avalia o desempenho da
equipe baseado nessas aprovações (SCHWABER, 2004).
Se cada programador maximizar o seu próprio uso das metodologias ágeis de
forma simples e rápida, as vantagens começam a acontecer naturalmente conforme
o escopo do projeto. O comprometimento da equipe com o projeto é especialmente
voltado para a comunicação e a entrega constante de valor (COCKBURN, 2006).
Os nomes Crystal Clear, FDD (Feature Driven Development), DSDM (Dynamic
System Development Method), ASD (Adaptive Software Development), Scrum e XP
(Extreme Programming) representam as metodologias ágeis mais tradicionais dentro
do Desenvolvimento Ágil. Embora existam todas essas metodologias, o Scrum e o
XP se propagaram intensivamente no cenário ágil e foram selecionadas para serem
empregadas na pesquisa de campo deste artigo.
4.4. O impacto da cultura ágil nas empresas
A empresa Caelum atua no ramo de desenvolvimento de sistemas e
consultoria desde 2002, e vem desde então utilizando o Desenvolvimento Ágil como
método de engenharia de software na produção de sistemas com linguagem de
programação Java. Segundo Cecília Fernandes, desenvolvedora da empresa, a
Caelum utiliza métodos ágeis desde o seu surgimento. A essência da Caelum é
desenvolver software entregando desde cedo e com frequência, colhendo retorno
dos usuários o mais rápido possível. A empresa em si não teve um processo de
adaptação: apenas construíram uma cultura local. As pessoas que entravam
rapidamente se acostumavam com a forma de trabalho, em contato constante com o
cliente, mais liberdade e mais responsabilidade.
4.5. A transição do Processo Unificado Racional para o Desenvolvimento Ágil
Renato Willi é gerente de projetos na SEA Tecnologia, uma empresa atuante
no mercado de desenvolvimento de sistemas desde 2003, quando ainda utilizava o
RUP (Rational Unified Process – Processo Unificado Racional) como método de
engenharia de software. Na intenção de aprimorar o conhecimento das equipes e
investir na maximização de retornos, a empresa procurou se especializar em
metodologias ágeis, mais especificamente Scrum e XP. Willi revela que a equipe de
desenvolvimento da empresa notou dificuldades na conclusão de alguns projetos e
estava encontrando anormalidades na estimativa de custos. Portanto, optaram por
alterar o método de desenvolvimento e utilizar o Desenvolvimento Ágil. Em curto
prazo, os desenvolvedores motivaram-se com a melhoria dos resultados nos
projetos e decidiram divulgar o Desenvolvimento Ágil em outras áreas. Houve
resistência, mas resultados consistentes foram ótimos argumentos para que
continuassem utilizando o Desenvolvimento Ágil.
4.6. Restrições na adoção do Desenvolvimento Ágil
Na área de assessoria e treinamentos em métodos ágeis, a Neurobox
representa uma das empresas nacionais mais especializadas no assunto. Dairton
Bassi, fundador da empresa, explica que existe uma grande restrição das equipes
que trabalham com outros métodos de engenharia de software e resistem ao
processo de adaptação. Mudar uma metodologia de trabalho envolve mudar a
cultura de uma equipe ou de uma empresa, e implica lidar com algumas resistências
individuais. Contudo, os desenvolvedores que gostam de lidar com o código
preferem a abordagem ágil pelo fato de facilitar o foco na resolução do problema e
ainda permitir que aprendam mais durante o processo de desenvolvimento.
Ainda se tratando das restrições encontradas na adoção do Desenvolvimento
Ágil, Anderson Silveira, arquiteto de software da empresa Ci & T, comenta que nem
todas as empresas se encaixam na forma como as metodologias ágeis tratam
alguns pontos dentro da corporação, fato que consiste em uma das primeiras
barreiras na adoção das práticas e resulta em um conflito cultural. Diante disso,
surgem “anomalias” sobre uma má interpretação ou falta de discernimento da
essência do Desenvolvimento Ágil.
Outro ponto pertinente é descobrir o quanto os clientes estão dispostos a atuar
em um papel de extremo comprometimento com os projetos de software, bem ao
controverso do que tradicionalmente é estipulado. No modelo ágil, o cliente precisa
estar alinhado com a expectativa de como se espera que ele atue no processo de
desenvolvimento. Sempre é recomendável usar o bom senso ao adotar uma técnica
relativamente nova, visto que é muito fácil criar uma distorção em cima do assunto.
4.7. Os riscos entre teoria e prática
Juan Bernabó, fundador da empresa ágil TeamWare, explica que a ideia de ser
ágil ou não envolve a concepção individual de cada pessoa. Equipes que possuem
dificuldades em compreender o Desenvolvimento Ágil são pessoas que seguem
modelos constantes e invariáveis – aprendem na teoria uma forma de desenvolver o
sistema, mas quando aplicam na prática, observam que surgem grandes imprevistos
e contratempos. Juan ressalta que existe uma taxa impressionante de fracassos em
projetos de software, e que estão diretamente ligados às diretrizes de engenharia
aplicadas ao projeto. Diante dessa situação, ele aconselha uma forma simples de
divulgar o Desenvolvimento Ágil: através de diálogo socrático com os clientes. O
objetivo é fazer com que o cliente observe as disfunções, os atrasos nos projetos e
as mudanças constantes de requisitos, para que então faça as próprias conclusões.
4.8. Práticas ágeis em projetos complexos
Uma das maiores discussões envolvendo Desenvolvimento Ágil está
relacionada à aplicabilidade do método em projetos grandes ou extensos. Muitos
profissionais defendem a ideia de que métodos ágeis não se encaixam em grandes
equipes e não são adaptáveis ao desenvolvimento de sistemas complexos.
Utilizar o Desenvolvimento Ágil em projetos de grande escala é mais simples
do que utilizar abordagens tradicionais, onde o paradigma do gerenciamento
tradicional implica o uso de planejamentos complexos. Em métodos ágeis, e equipe
começa por identificar e estimar as funcionalidades do produto, e enfatiza o
aprendizado e adaptação contínua conforme o andamento do projeto.
Consequentemente, ao contrário do que afirmam, metodologias ágeis são
especialmente úteis em projetos de grande escala. (LARMAN; VODDE, 2010).
Jim Highsmith, criador da metodologia ágil ASD (Adaptive Software
Development), afirmou que, sem dúvida, o Desenvolvimento Ágil pode ser usado em
vários projetos extensos. Como exemplo, Jim citou a HP, que utilizou metodologias
ágeis em um projeto de programação de um firmware (software interno de um
hardware), envolvendo 400 pessoas divididas em cinco locais distintos. O criador do
ASD ainda complementou que o Desenvolvimento Ágil também é utilizado em
projetos de ERP (Enterprise Resource Planning), mas a equipe de desenvolvimento
tem que passar por uma série de adaptações para utilizá-lo neste caso. Para ele, as
equipes de desenvolvimento se sentem inseguras em utilizar metodologias ágeis
principalmente pelo motivo de não conhecer as reais vantagens do método.
5. RESULTADOS
Observando o ponto de vista dos profissionais entrevistados e os resultados
das pesquisas realizadas, observa-se que o Desenvolvimento Ágil ainda precisa
atravessar uma barreira de restrições antes que se torne predominante no cenário
de desenvolvimento de sistemas. Embora traga inúmeras vantagens, principalmente
relacionadas à comunicação e colaboração das pessoas envolvidas no projeto, o
Desenvolvimento Ágil exige uma transformação radical da cultura da empresa e um
constante processo de adaptação.
Os resultados da pesquisa também apontaram que o Desenvolvimento Ágil
pode ser facilmente adaptado em projetos complexos, opondo a afirmação de que
sua aplicabilidade era inviável. A pesquisa consolida que vários profissionais já
aplicaram essa experiência, e que foram bem-sucedidos na conclusão dos projetos.
Durante o desenvolvimento deste artigo surgiram algumas dificuldades
relacionadas aos conceitos teóricos, mas que foram sucessivamente sanadas
através de pesquisas realizadas na proporção que o andamento do artigo crescia.
De modo geral, observou-se que é necessário conhecer a fundo a cultura da
empresa e avaliar se ela está realmente disposta a passar por um processo de
mudança da engenharia de software. Essa disposição abrange a conscientização de
toda a equipe de desenvolvimento, visto que a filosofia de trabalho da empresa
também precisará acompanhar essa transformação.
6. CONSIDERAÇÕES FINAIS
O artigo contribuiu, acima de tudo, na obtenção de novas experiências e
fundamentos sobre Desenvolvimento Ágil, e permitiu compreender as principais
características, vantagens e desvantagens deste método de engenharia de software.
As pesquisas e entrevistas realizadas deram ao trabalho subsídios para a
comprovação da efetividade do uso do Desenvolvimento Ágil em diversas situações
de modelagem. Os resultados e os depoimentos permitiram obter conclusões de
situações reais que esclareceram as dúvidas e dificuldades mais frequentes
existentes em projetos de software.
Esse trabalho reúne informações que podem ser usadas como referencial
teórico tanto no meio acadêmico quanto profissional, agregando uma enorme
importância ao assunto. Em uma futura oportunidade de participação em projetos
associados às metodologias ágeis, o conhecimento adquirido será de grande
utilização e certamente proporcionará um aperfeiçoamento na formação técnica e
profissional.
7. FONTES CONSULTADAS
SOMMERVILE. Engenharia de Software. 8.ed. São Paulo: Pearson, 2007. 552p.
HEMRAJANI, Anil. Rapid Java Development. Indianapolis: Sams, 2006. 360p.
TELES, Vinícius Manhães. Um estudo de Caso da Adoção das Práticas e Valores
do Extreme Programming. Rio De Janeiro: Universidade Federal do Rio de
Janeiro, 2005. 181p.
LEVINE, Michael K. A Tale of Two Systems: Lean and Agile Software Development
for Business Leaders. New York: CRC Press, 2009. 343p.
KNIBERG, Henrik. Scrum and XP from the Trenches. Raleigh: Lulu, 2007. 140p.
LARMAN, Craig; VODDE, Bas. Practices for Scaling Lean & Agile Development.
Massachusetts: Pearson, 2010. 613p.
RUBY, Sam; THOMAS, Dave; HANSSON, David H. Agile Web Development with
Rails. 3 ed. New York: Pragmatic Bookshelf, 2009. 766p.
RESNICK, Steve; BJORK, Aaron; MAZA, Michael de la. Professional Scrum: With
Team Foundation Server 2010. Birmingham: Wrox, 2011. 336p.
STOTT, Will; NEWKIRK, James. Visual Studio Team System: Better Software
Development for Agile Teams. Boston: Pearson, 2007. 858p.
SUBRAMANIAM, Venkat; HUNT, Andrew. Practices of an Agile Developer. New
York: Pragmatic Bookshelf, 2006. 176p.
SCHWABER, Ken. Agile Development Management with Scrum. Washington:
Microsoft Press, 2004. 192p.
COCKBURN, Alistair. Agile Software Development. 2 ed. Boston: Addison-Wesley
Professional, 2006. 504p.

Más contenido relacionado

La actualidad más candente

JAD e levantamento de requisitos
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitosEduardo Castro
 
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...Tailo Mateus Gonsalves
 
Avaliação de maturidade das organizaç
Avaliação de maturidade das organizaçAvaliação de maturidade das organizaç
Avaliação de maturidade das organizaçBernardo Mattos
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Maicon Zerbielli
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Alessandro Almeida
 
Aula 1 Analise e Projeto
Aula 1   Analise e ProjetoAula 1   Analise e Projeto
Aula 1 Analise e ProjetoSergio Silva
 
Lightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias ÁgeisLightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias ÁgeisFernanda Rabello
 
Boas Práticas na Abordagem de Requisitos em Metodologias Ágeis
Boas Práticas na Abordagem de Requisitos em Metodologias ÁgeisBoas Práticas na Abordagem de Requisitos em Metodologias Ágeis
Boas Práticas na Abordagem de Requisitos em Metodologias ÁgeisFernanda Rabello
 
Gestão de Projetos Hibrida
Gestão de Projetos HibridaGestão de Projetos Hibrida
Gestão de Projetos HibridaAragon Vieira
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
 
METODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de CockbumMETODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de Cockbumvanessa finoto
 
MATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - Synergia
MATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - SynergiaMATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - Synergia
MATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - SynergiaKarine Drumond
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisDaniel Ferreira
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalhoRuan Pozzebon
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 

La actualidad más candente (20)

JAD e levantamento de requisitos
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitos
 
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
 
Avaliação de maturidade das organizaç
Avaliação de maturidade das organizaçAvaliação de maturidade das organizaç
Avaliação de maturidade das organizaç
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)
 
Aula 1 Analise e Projeto
Aula 1   Analise e ProjetoAula 1   Analise e Projeto
Aula 1 Analise e Projeto
 
Lightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias ÁgeisLightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias Ágeis
 
Boas Práticas na Abordagem de Requisitos em Metodologias Ágeis
Boas Práticas na Abordagem de Requisitos em Metodologias ÁgeisBoas Práticas na Abordagem de Requisitos em Metodologias Ágeis
Boas Práticas na Abordagem de Requisitos em Metodologias Ágeis
 
Gestão de Projetos Hibrida
Gestão de Projetos HibridaGestão de Projetos Hibrida
Gestão de Projetos Hibrida
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 
METODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de CockbumMETODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de Cockbum
 
MATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - Synergia
MATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - SynergiaMATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - Synergia
MATURIDADE DAS ORGANIZAÇÕES EM RELAÇÃO À USABILIDADE - Synergia
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos Ágeis
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 

Destacado

Valorando mis competencias. alexandra zapata
Valorando mis competencias. alexandra zapataValorando mis competencias. alexandra zapata
Valorando mis competencias. alexandra zapataalezaly27
 
Presentación y info
Presentación y infoPresentación y info
Presentación y infoYan Ortiz
 
Andra världskriget - bakgrund och förspel
Andra världskriget - bakgrund och förspelAndra världskriget - bakgrund och förspel
Andra världskriget - bakgrund och förspelEmelie Holmquist
 
How to Run Smarter A/B Tests, Faster
How to Run Smarter A/B Tests, FasterHow to Run Smarter A/B Tests, Faster
How to Run Smarter A/B Tests, FasterShanelle Mullin
 
L’optimisation par essaims de particules
L’optimisation par essaims de particulesL’optimisation par essaims de particules
L’optimisation par essaims de particuleschagra bassem
 
Frontier Parabon Computing
Frontier Parabon ComputingFrontier Parabon Computing
Frontier Parabon Computingchagra bassem
 
Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...
Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...
Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...André Luis Celestino
 

Destacado (11)

Valorando mis competencias. alexandra zapata
Valorando mis competencias. alexandra zapataValorando mis competencias. alexandra zapata
Valorando mis competencias. alexandra zapata
 
Proyecto
ProyectoProyecto
Proyecto
 
Tipos de conexión
Tipos de conexión Tipos de conexión
Tipos de conexión
 
Presentación y info
Presentación y infoPresentación y info
Presentación y info
 
Andra världskriget - bakgrund och förspel
Andra världskriget - bakgrund och förspelAndra världskriget - bakgrund och förspel
Andra världskriget - bakgrund och förspel
 
Netiquette
NetiquetteNetiquette
Netiquette
 
219270
219270219270
219270
 
How to Run Smarter A/B Tests, Faster
How to Run Smarter A/B Tests, FasterHow to Run Smarter A/B Tests, Faster
How to Run Smarter A/B Tests, Faster
 
L’optimisation par essaims de particules
L’optimisation par essaims de particulesL’optimisation par essaims de particules
L’optimisation par essaims de particules
 
Frontier Parabon Computing
Frontier Parabon ComputingFrontier Parabon Computing
Frontier Parabon Computing
 
Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...
Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...
Múltiplas equipes ágeis com o framework Large Scale Scrum - um estudo de caso...
 

Similar a Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC 2011

Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentIzabel Rodrigues
 
Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...
Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...
Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...Diógenes Almeida
 
Métodos Ágeis - Guia para Projetos Eficientes
Métodos Ágeis - Guia para Projetos EficientesMétodos Ágeis - Guia para Projetos Eficientes
Métodos Ágeis - Guia para Projetos EficientesGabriela Giacomini
 
Trabalho pds libre office 2
Trabalho pds libre office 2Trabalho pds libre office 2
Trabalho pds libre office 2Edinaldo Mendes
 
Processos de software
Processos de softwareProcessos de software
Processos de softwareDann Volpato
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...André Agostinho
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLAnnkatlover
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_WarmlingChaordic
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingDaniel Wildt
 
Requisitos no Processo Iterativo
Requisitos no Processo IterativoRequisitos no Processo Iterativo
Requisitos no Processo IterativoFatec
 
TCC_CMMI_Projeto_AndreLuisDeAndrade_FINAL
TCC_CMMI_Projeto_AndreLuisDeAndrade_FINALTCC_CMMI_Projeto_AndreLuisDeAndrade_FINAL
TCC_CMMI_Projeto_AndreLuisDeAndrade_FINALAndre Luis de Andrade
 
Tradução resumida do livro "The Elements of Scrum"
Tradução resumida do livro "The Elements of Scrum"Tradução resumida do livro "The Elements of Scrum"
Tradução resumida do livro "The Elements of Scrum"Henrique Bueno
 
Estudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de softwareEstudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de softwareMarlon Paranhos
 
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do ConhecimentoMétodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do ConhecimentoClaudia Hofart Guzzo
 

Similar a Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC 2011 (20)

Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...
Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...
Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...
 
Métodos Ágeis - Guia para Projetos Eficientes
Métodos Ágeis - Guia para Projetos EficientesMétodos Ágeis - Guia para Projetos Eficientes
Métodos Ágeis - Guia para Projetos Eficientes
 
Jucelir
JucelirJucelir
Jucelir
 
Trabalho pds libre office 2
Trabalho pds libre office 2Trabalho pds libre office 2
Trabalho pds libre office 2
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...
 
Lean software
Lean software Lean software
Lean software
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_Warmling
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
 
Metodologia de Desenvolvimento de Sistema
Metodologia de Desenvolvimento de SistemaMetodologia de Desenvolvimento de Sistema
Metodologia de Desenvolvimento de Sistema
 
Apostila introdutória ao Scrum (V1)
Apostila introdutória ao Scrum (V1)Apostila introdutória ao Scrum (V1)
Apostila introdutória ao Scrum (V1)
 
Requisitos no Processo Iterativo
Requisitos no Processo IterativoRequisitos no Processo Iterativo
Requisitos no Processo Iterativo
 
Aula 1 analise e projeto
Aula 1   analise e projetoAula 1   analise e projeto
Aula 1 analise e projeto
 
TCC_CMMI_Projeto_AndreLuisDeAndrade_FINAL
TCC_CMMI_Projeto_AndreLuisDeAndrade_FINALTCC_CMMI_Projeto_AndreLuisDeAndrade_FINAL
TCC_CMMI_Projeto_AndreLuisDeAndrade_FINAL
 
Tradução resumida do livro "The Elements of Scrum"
Tradução resumida do livro "The Elements of Scrum"Tradução resumida do livro "The Elements of Scrum"
Tradução resumida do livro "The Elements of Scrum"
 
Estudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de softwareEstudo empírico da metodologia do desenvolvimento ágil de software
Estudo empírico da metodologia do desenvolvimento ágil de software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do ConhecimentoMétodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
 

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC 2011

  • 1. DESENVOLVIMENTO ÁGIL: UM SURVEY BASEADO EM EXPERIÊNCIAS PROFISSIONAIS RESUMO O cenário de desenvolvimento de sistemas sempre enfrentou desafios relacionados ao sucesso de um projeto e tentou buscar meios para modificar o comportamento das equipes. Métodos de engenharia de software, como o Desenvolvimento Ágil, surgiram para aprimorar a cultura das equipes de desenvolvimento e evitar as falhas existentes no custo, prazo e funcionalidades de projetos. Porém, assim como acontece com todo tipo de mudança, o Desenvolvimento Ágil encontrou várias restrições em sua utilização e recebeu muitas críticas por não se adaptar a projetos complexos e extensos. Esse trabalho apresenta um estudo dos principais métodos Ágeis e reúne opiniões, comentários e experiência de pessoas e empresas que utilizam Desenvolvimento Ágil. Os artefatos positivos e negativos do Desenvolvimento Ágil foram evidenciados através da aplicação de uma pesquisa de campo abrangente e entrevistas particulares com profissionais da área. Dessa forma, a autenticidade das informações obtidas apresentou outra realidade da imagem do Desenvolvimento Ágil, claramente expostas pelos depoimentos das pessoas entrevistadas. Palavras-chave: Desenvolvimento ágil, entrevistas e experiências práticas. 1. INTRODUÇÃO Devido ao ritmo constante de mudanças no ambiente econômico, mercado empresarial e de novas tecnologias, as empresas se encontraram em um cenário de negócios onde responder rapidamente às oportunidades e lidar com ameaças competitivas se tornou uma atividade importante para a gestão organizacional. Dentro desse cenário, o sistema de informação não deixa de ser um fator essencial entre essas operações e, portanto, deve ser desenvolvido de forma rápida para acompanhar esse ambiente (SOMMERVILE, 2007). Este foi um dos pontos que originou o Desenvolvimento Ágil, criando uma nova filosofia de desenvolvimento de sistemas onde a colaboração e comunicação são atividades priorizadas.
  • 2. O Desenvolvimento Ágil é um método de engenharia de software que permite uma maior centralização de recursos baseada na comunicação constante com o cliente e na entrega de valor em pequenas versões do software. Com a perspectiva de proporcionar agilidade e eficiência em um mesmo projeto, o Desenvolvimento Ágil surgiu para apoiar os projetistas a gerenciar as etapas no processo de desenvolvimento para que os requisitos, custos e prazos sejam atendidos em conformidade. Em pouco tempo, o Desenvolvimento Ágil foi subdividido em diferentes metodologias com características particulares. No entanto, é necessário verificar a viabilidade destas metodologias e se elas realmente possuem recursos suficientes para adaptarem-se em projetos de qualquer dimensão. 2. OBJETIVOS O objetivo consiste na produção de conhecimento através de um estudo aprofundado sobre Desenvolvimento Ágil, levantando detalhadamente os aspectos, vantagens e desvantagens relacionadas ao cenário de desenvolvimento de sistemas. Com base em pesquisas e comparações com outros modelos de desenvolvimento, foi possível extrair o máximo do contexto prático sobre o Desenvolvimento Ágil e suas metodologias. O estudo permitiu reunir todas as informações necessárias para a construção do conhecimento sobre a lógica do Desenvolvimento Ágil, bem como suas restrições e processos de adaptação. Para uma melhor sustentação do trabalho, o objetivo se expandiu a estudar qual o ponto de vista que as empresas e profissionais da área possuem sobre o método e como surgiu o interesse ou a necessidade em adotá-lo. O estudo aprofundado das restrições e a busca por evidências das desvantagens do Desenvolvimento Ágil complementaram o foco do objetivo desta pesquisa. 3. METODOLOGIA Como obtenção mandatória de fundamentos teóricos, os estudos abordados para a realização deste artigo foram baseados em livros, trabalhos científicos e textos relacionados ao assunto. Conhecer os conceitos, os aspectos práticos e o emprego das metodologias do Desenvolvimento Ágil é fundamental, entretanto, a iniciativa em adquirir conhecimentos mais aprofundados sobre o assunto motivou a
  • 3. ideia de entrar em contato com vários profissionais e empresas que dominam experiências com Desenvolvimento Ágil. Através de redes sociais, networking (contatos profissionais), e-mails, áudio-conferências, contatos on-line e ligações telefônicas, criou-se uma base de conhecimento por meio de depoimentos e comentários de pessoas conceituadas no assunto que gentilmente forneceram informações profissionais sobre o cenário atual do Desenvolvimento Ágil e qual a sua perspectiva diante das empresas. 4. DESENVOLVIMENTO Todo projeto, pequeno ou grande, deve possuir alguma estrutura básica ou metodologia para seguir. Não possuir um processo é ruim, mas processos demais são tão ruins quanto não possuir algum. Encontrar o equilíbrio adequado depende das necessidades dos clientes e da dimensão do projeto, mas no geral, recomenda- se um desenvolvimento com menos processos e com mínimo de documentação, do que ter processos excessivos que podem desmotivar tanto o cliente quanto os programadores envolvidos no plano de trabalho (HEMRAJANI, 2006). 4.1. Problemas e falhas relacionados ao desenvolvimento de sistemas O mercado de desenvolvimento de sistemas traz várias situações onde o usuário utiliza apenas uma parte das funcionalidades contidas no software. Segundo uma pesquisa apresentada por TELES (2005), existe uma notável falha em projetos a respeito das funcionalidades desenvolvidas em um sistema. Considerando estas funcionalidades que nunca ou raramente são utilizadas, as estatísticas indicam que 64% do sistema são desenvolvidos praticamente sem necessidade. Dessa forma, observa-se claramente um grande desperdício de tempo e custo no planejamento do projeto, e que poderia adiantar o tempo da entrega do sistema em meses caso fosse solucionado. O Desenvolvimento Ágil trata a implementação de funcionalidades baseadas em prioridades definidas pelo próprio cliente. Em um curto período de tempo estas funcionalidades são desenvolvidas, gerando pequenas versões funcionais (iterações) do sistema atendendo as expectativas do cliente.
  • 4. 4.2. Características das diretrizes ágeis As técnicas ágeis de planejamento e iterações são as melhores em proporcionar um fluxo uniforme com gerenciamento visual, regularidade e constância. A filosofia é desenvolver desde os requisitos até o visual, implementação e testes da forma mais rápida possível. Assim, o próximo passo é integrar continuamente os resultados dentro do software para que ele sempre esteja pronto para ser usado, até que fique completamente funcional (LEVINE, 2009). O Desenvolvimento Ágil considera o cliente como um item essencial durante o andamento do projeto. Segundo KNIBERG (2007), equipes ágeis são capazes de tomar iniciativas e estimar o tempo de cada funcionalidade, iniciando pela mais importante. Dessa forma, elas vêm ao encontro das necessidades do cliente e estipulam a importância de cada requisito dentro do projeto. Para que as funcionalidades sejam definidas conforme suas prioridades, as equipes ágeis agendam reuniões com os clientes para receber o retorno dos resultados (feedback), apresentar o andamento do projeto e definir novas prioridades para o próximo ciclo de iteração. Neste ponto, vale ressaltar que o Desenvolvimento Ágil impõe uma comunicação direta entre os usuários e os programadores para evitar falhas na comunicação e permitir que os requisitos sejam esclarecidos e apresentados diretamente aos profissionais envolvidos no projeto (LARMAN; VODDE, 2010). Desenvolvedores ágeis são cientes de que, quanto maior o feedback fornecido pelo cliente durante o processo de desenvolvimento, melhor serão os resultados. Por meio dos feedbacks, é possível observar antecipadamente como os usuários estão utilizando a aplicação, bem como reunir as dificuldades encontradas e sugestões para melhorar o sistema. Assim, os próprios usuários ajudam as equipes ágeis a identificar os processos e quais aspectos devem ser aprimorados ou removidos (RUBY; THOMAS; HANSSON, 2009). Uma vantagem do Desenvolvimento Ágil pode ser vista na forma como a equipe pode ajustar seus procedimentos após cada iteração, como a reorganização da equipe em si, a duração do ciclo e a velocidade de desenvolvimento. As mudanças introduzidas entre cada iteração irá aprimorar a qualidade e o desempenho das iterações subsequentes (RESNICK; BJORK; MAZA, 2011). Um fato que surpreende as pessoas no primeiro contato com um projeto ágil é a ausência das fases tradicionais de “visual-codificação-teste”. Em um projeto
  • 5. tradicional, essas atividades são realizadas isoladamente durante semanas ou meses, enquanto no Desenvolvimento Ágil elas são repetidas continuamente como parte da validação da funcionalidade exigida pelo cliente. Outro aspecto é a abordagem ágil em relação ao levantamento de requisitos, no qual é feito conforme o projeto é desenvolvido ao invés de capturar todos os requisitos de uma só vez e colocá-los em documentações extensas (STOTT; NEWKIRK, 2007). A ideia das ferramentas ágeis em entregar pequenas iterações no sistema consiste em fazer o próprio cliente reconhecer o que será útil e o que pode ser dispensado no sistema, poupando tempo no desenvolvimento e propondo um sistema mais enxuto em funções. Desenvolvedores, gerentes e analistas de sistemas não devem fazer decisões relacionadas ao negócio do cliente. O correto é apresentar os detalhes em uma linguagem que o cliente entenda, e permitir que ele mesmo faça suas próprias decisões referentes ao software (SUBRAMANIAM; HUNT, 2006). 4.3. Metodologias ágeis Praticar o Desenvolvimento Ágil em uma equipe de desenvolvimento de sistemas é uma atividade que necessita da conscientização de todos os profissionais em aceitar e praticar um modelo diferente de engenharia de software, para que então eles possam selecionar a metodologia ágil mais adequada à filosofia de trabalho da empresa. Uma metodologia ágil é um conjunto de princípios que devem ser praticados por toda a equipe de desenvolvimento durante o projeto. Embora todas as metodologias ágeis possuam os mesmos princípios abordados pelo manifesto ágil, cada uma contém características particulares referentes ao cronograma, diferentes técnicas para estimativa de custos e para o ciclo das iterações (TELES, 2005). Dos doze princípios do Manifesto Ágil, o sétimo consiste em definir que o software funcional é a primeira medida do progresso da equipe. Quando o cliente aprova as funcionalidades apresentadas, significa que elas já estão prontas para serem utilizadas. O gerente de projetos de uma equipe ágil avalia o desempenho da equipe baseado nessas aprovações (SCHWABER, 2004). Se cada programador maximizar o seu próprio uso das metodologias ágeis de forma simples e rápida, as vantagens começam a acontecer naturalmente conforme
  • 6. o escopo do projeto. O comprometimento da equipe com o projeto é especialmente voltado para a comunicação e a entrega constante de valor (COCKBURN, 2006). Os nomes Crystal Clear, FDD (Feature Driven Development), DSDM (Dynamic System Development Method), ASD (Adaptive Software Development), Scrum e XP (Extreme Programming) representam as metodologias ágeis mais tradicionais dentro do Desenvolvimento Ágil. Embora existam todas essas metodologias, o Scrum e o XP se propagaram intensivamente no cenário ágil e foram selecionadas para serem empregadas na pesquisa de campo deste artigo. 4.4. O impacto da cultura ágil nas empresas A empresa Caelum atua no ramo de desenvolvimento de sistemas e consultoria desde 2002, e vem desde então utilizando o Desenvolvimento Ágil como método de engenharia de software na produção de sistemas com linguagem de programação Java. Segundo Cecília Fernandes, desenvolvedora da empresa, a Caelum utiliza métodos ágeis desde o seu surgimento. A essência da Caelum é desenvolver software entregando desde cedo e com frequência, colhendo retorno dos usuários o mais rápido possível. A empresa em si não teve um processo de adaptação: apenas construíram uma cultura local. As pessoas que entravam rapidamente se acostumavam com a forma de trabalho, em contato constante com o cliente, mais liberdade e mais responsabilidade. 4.5. A transição do Processo Unificado Racional para o Desenvolvimento Ágil Renato Willi é gerente de projetos na SEA Tecnologia, uma empresa atuante no mercado de desenvolvimento de sistemas desde 2003, quando ainda utilizava o RUP (Rational Unified Process – Processo Unificado Racional) como método de engenharia de software. Na intenção de aprimorar o conhecimento das equipes e investir na maximização de retornos, a empresa procurou se especializar em metodologias ágeis, mais especificamente Scrum e XP. Willi revela que a equipe de desenvolvimento da empresa notou dificuldades na conclusão de alguns projetos e estava encontrando anormalidades na estimativa de custos. Portanto, optaram por alterar o método de desenvolvimento e utilizar o Desenvolvimento Ágil. Em curto prazo, os desenvolvedores motivaram-se com a melhoria dos resultados nos projetos e decidiram divulgar o Desenvolvimento Ágil em outras áreas. Houve
  • 7. resistência, mas resultados consistentes foram ótimos argumentos para que continuassem utilizando o Desenvolvimento Ágil. 4.6. Restrições na adoção do Desenvolvimento Ágil Na área de assessoria e treinamentos em métodos ágeis, a Neurobox representa uma das empresas nacionais mais especializadas no assunto. Dairton Bassi, fundador da empresa, explica que existe uma grande restrição das equipes que trabalham com outros métodos de engenharia de software e resistem ao processo de adaptação. Mudar uma metodologia de trabalho envolve mudar a cultura de uma equipe ou de uma empresa, e implica lidar com algumas resistências individuais. Contudo, os desenvolvedores que gostam de lidar com o código preferem a abordagem ágil pelo fato de facilitar o foco na resolução do problema e ainda permitir que aprendam mais durante o processo de desenvolvimento. Ainda se tratando das restrições encontradas na adoção do Desenvolvimento Ágil, Anderson Silveira, arquiteto de software da empresa Ci & T, comenta que nem todas as empresas se encaixam na forma como as metodologias ágeis tratam alguns pontos dentro da corporação, fato que consiste em uma das primeiras barreiras na adoção das práticas e resulta em um conflito cultural. Diante disso, surgem “anomalias” sobre uma má interpretação ou falta de discernimento da essência do Desenvolvimento Ágil. Outro ponto pertinente é descobrir o quanto os clientes estão dispostos a atuar em um papel de extremo comprometimento com os projetos de software, bem ao controverso do que tradicionalmente é estipulado. No modelo ágil, o cliente precisa estar alinhado com a expectativa de como se espera que ele atue no processo de desenvolvimento. Sempre é recomendável usar o bom senso ao adotar uma técnica relativamente nova, visto que é muito fácil criar uma distorção em cima do assunto. 4.7. Os riscos entre teoria e prática Juan Bernabó, fundador da empresa ágil TeamWare, explica que a ideia de ser ágil ou não envolve a concepção individual de cada pessoa. Equipes que possuem dificuldades em compreender o Desenvolvimento Ágil são pessoas que seguem modelos constantes e invariáveis – aprendem na teoria uma forma de desenvolver o sistema, mas quando aplicam na prática, observam que surgem grandes imprevistos e contratempos. Juan ressalta que existe uma taxa impressionante de fracassos em
  • 8. projetos de software, e que estão diretamente ligados às diretrizes de engenharia aplicadas ao projeto. Diante dessa situação, ele aconselha uma forma simples de divulgar o Desenvolvimento Ágil: através de diálogo socrático com os clientes. O objetivo é fazer com que o cliente observe as disfunções, os atrasos nos projetos e as mudanças constantes de requisitos, para que então faça as próprias conclusões. 4.8. Práticas ágeis em projetos complexos Uma das maiores discussões envolvendo Desenvolvimento Ágil está relacionada à aplicabilidade do método em projetos grandes ou extensos. Muitos profissionais defendem a ideia de que métodos ágeis não se encaixam em grandes equipes e não são adaptáveis ao desenvolvimento de sistemas complexos. Utilizar o Desenvolvimento Ágil em projetos de grande escala é mais simples do que utilizar abordagens tradicionais, onde o paradigma do gerenciamento tradicional implica o uso de planejamentos complexos. Em métodos ágeis, e equipe começa por identificar e estimar as funcionalidades do produto, e enfatiza o aprendizado e adaptação contínua conforme o andamento do projeto. Consequentemente, ao contrário do que afirmam, metodologias ágeis são especialmente úteis em projetos de grande escala. (LARMAN; VODDE, 2010). Jim Highsmith, criador da metodologia ágil ASD (Adaptive Software Development), afirmou que, sem dúvida, o Desenvolvimento Ágil pode ser usado em vários projetos extensos. Como exemplo, Jim citou a HP, que utilizou metodologias ágeis em um projeto de programação de um firmware (software interno de um hardware), envolvendo 400 pessoas divididas em cinco locais distintos. O criador do ASD ainda complementou que o Desenvolvimento Ágil também é utilizado em projetos de ERP (Enterprise Resource Planning), mas a equipe de desenvolvimento tem que passar por uma série de adaptações para utilizá-lo neste caso. Para ele, as equipes de desenvolvimento se sentem inseguras em utilizar metodologias ágeis principalmente pelo motivo de não conhecer as reais vantagens do método. 5. RESULTADOS Observando o ponto de vista dos profissionais entrevistados e os resultados das pesquisas realizadas, observa-se que o Desenvolvimento Ágil ainda precisa atravessar uma barreira de restrições antes que se torne predominante no cenário
  • 9. de desenvolvimento de sistemas. Embora traga inúmeras vantagens, principalmente relacionadas à comunicação e colaboração das pessoas envolvidas no projeto, o Desenvolvimento Ágil exige uma transformação radical da cultura da empresa e um constante processo de adaptação. Os resultados da pesquisa também apontaram que o Desenvolvimento Ágil pode ser facilmente adaptado em projetos complexos, opondo a afirmação de que sua aplicabilidade era inviável. A pesquisa consolida que vários profissionais já aplicaram essa experiência, e que foram bem-sucedidos na conclusão dos projetos. Durante o desenvolvimento deste artigo surgiram algumas dificuldades relacionadas aos conceitos teóricos, mas que foram sucessivamente sanadas através de pesquisas realizadas na proporção que o andamento do artigo crescia. De modo geral, observou-se que é necessário conhecer a fundo a cultura da empresa e avaliar se ela está realmente disposta a passar por um processo de mudança da engenharia de software. Essa disposição abrange a conscientização de toda a equipe de desenvolvimento, visto que a filosofia de trabalho da empresa também precisará acompanhar essa transformação. 6. CONSIDERAÇÕES FINAIS O artigo contribuiu, acima de tudo, na obtenção de novas experiências e fundamentos sobre Desenvolvimento Ágil, e permitiu compreender as principais características, vantagens e desvantagens deste método de engenharia de software. As pesquisas e entrevistas realizadas deram ao trabalho subsídios para a comprovação da efetividade do uso do Desenvolvimento Ágil em diversas situações de modelagem. Os resultados e os depoimentos permitiram obter conclusões de situações reais que esclareceram as dúvidas e dificuldades mais frequentes existentes em projetos de software. Esse trabalho reúne informações que podem ser usadas como referencial teórico tanto no meio acadêmico quanto profissional, agregando uma enorme importância ao assunto. Em uma futura oportunidade de participação em projetos associados às metodologias ágeis, o conhecimento adquirido será de grande utilização e certamente proporcionará um aperfeiçoamento na formação técnica e profissional.
  • 10. 7. FONTES CONSULTADAS SOMMERVILE. Engenharia de Software. 8.ed. São Paulo: Pearson, 2007. 552p. HEMRAJANI, Anil. Rapid Java Development. Indianapolis: Sams, 2006. 360p. TELES, Vinícius Manhães. Um estudo de Caso da Adoção das Práticas e Valores do Extreme Programming. Rio De Janeiro: Universidade Federal do Rio de Janeiro, 2005. 181p. LEVINE, Michael K. A Tale of Two Systems: Lean and Agile Software Development for Business Leaders. New York: CRC Press, 2009. 343p. KNIBERG, Henrik. Scrum and XP from the Trenches. Raleigh: Lulu, 2007. 140p. LARMAN, Craig; VODDE, Bas. Practices for Scaling Lean & Agile Development. Massachusetts: Pearson, 2010. 613p. RUBY, Sam; THOMAS, Dave; HANSSON, David H. Agile Web Development with Rails. 3 ed. New York: Pragmatic Bookshelf, 2009. 766p. RESNICK, Steve; BJORK, Aaron; MAZA, Michael de la. Professional Scrum: With Team Foundation Server 2010. Birmingham: Wrox, 2011. 336p. STOTT, Will; NEWKIRK, James. Visual Studio Team System: Better Software Development for Agile Teams. Boston: Pearson, 2007. 858p. SUBRAMANIAM, Venkat; HUNT, Andrew. Practices of an Agile Developer. New York: Pragmatic Bookshelf, 2006. 176p. SCHWABER, Ken. Agile Development Management with Scrum. Washington: Microsoft Press, 2004. 192p. COCKBURN, Alistair. Agile Software Development. 2 ed. Boston: Addison-Wesley Professional, 2006. 504p.