APLICAÇÃO DE MÉTODOS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 1

Tamanho: px
Começar a partir da página:

Download "APLICAÇÃO DE MÉTODOS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 1"

Transcrição

1 APLICAÇÃO DE MÉTODOS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 1 Cleo Hickmann Junior 2 Anderson Yanzer 3 Orientador Universidade Luterana do Brasil (Ulbra) Bacharelado em Sistemas de Informação Câmpus Canoas Av. Farroupilha, Bairro São Luís CEP Canoas - RS RESUMO 13 de junho de 2011 O objetivo deste trabalho é pesquisar metodologias ágeis, destacando os benefícios que elas podem proporcionar em um processo de desenvolvimento de software, além de apresentar a situação atual de uma equipe de desenvolvimento e descrever uma proposta de solução com base nas metodologias estudadas. Palavras-chave: Métodos Ágeis; Desenvolvimento de Software; Programação Extrema; Scrum. ABSTRACT Title: Application of agile methods on a software development process The aim of this work is to research the agile methodologies, highlighting the benefits they can bring in a software development process, beyond present the current status of a team of development and describe a proposed solution based on the methodologies studied. Key-words: Agile Methods; Software Development; Extreme Programming; Scrum. 1 INTRODUÇÃO Mesmo com a evolução dos computadores, das técnicas e ferramentas nos últimos anos, a produção de softwares confiáveis, com o mínimo de erros possíveis e entregues dentro do prazo, sem extrapolar o custo estipulado ainda é uma tarefa muito difícil. Com base nestas necessidades surgiram os métodos e práticas ágeis no desenvolvimento de software, visando melhorar o processo e simplificar o trabalho da equipe. Tais práticas sugerem uma série de mudanças que vão de encontro ao que aborda a engenharia de software tradicional, acostumada a seguir padrões de projetos como o CMMI, por exemplo. Neste contexto de mudança de paradigma, migrando das metodologias pesadas ou tradicionais para a aplicação de processos ágeis de desenvolvimento de software existe uma questão de mudança cultural, o que muitas vezes dificulta a adoção das metodologias ágeis pela equipe de desenvolvimento. Há muitos exemplos que comprovam que em equipes grandes este processo de mudança é muito mais complicado, muitas vezes até mesmo inviável (YOSHIMA, 2011). Este artigo foi desenvolvido tendo como principal objetivo realizar um estudo sobre as metodologias ágeis mais aplicadas atualmente em equipes de desenvolvimento de software, falando sobre seus princípios e características. Com base nisso, pretende-se obter o embasamento suficiente para adotar se não todas, mas as melhores práticas das metodologias estudadas em um ambiente real de desenvolvimento. Para facilitar o entendimento do leitor, no artigo encontra-se uma breve descrição do processo de desenvolvimento atual da equipe utilizada no estudo de caso. Na Seção 2 deste artigo será abordado sobre o histórico das Metodologias Ágeis, enquanto na Seção 3 será falado sobre a metodologia XP, seus conceitos e principais características. Já a Seção 4 apresenta um resumo sobre a metodologia Scrum, falando um pouco de seus princípios, fases, entre outras particularidades. O cenário atual será apresentado na Seção 5, falando um pouco também sobre a metodologia direcionada a testes, utilizada atualmente. Na Seção 6 serão descritas as práticas dos métodos 1 Artigo elaborado para o Trabalho de Conclusão de Curso I em Sistemas de Informação, submetida ao Curso de Bacharelado em Sistemas de Informação da Universidade Luterana do Brasil, Câmpus Canoas. 2 Aluno do 7º semestre do curso de Bacharelado em Sistemas de Informação. 3 Professor orientador do Trabalho de Conclusão de Curso I em Sistemas de Informação e coordenador do curso de Bacharelado em Sistemas de Informação da Universidade Luterana do Brasil, Câmpus Canoas. 1

2 ágeis que se deseja implantar, obedecendo ao cronograma apresentado na Seção 7. As considerações finais serão expostas na Seção 8 e, por fim, o artigo é encerrado com as referências utilizadas para elaboração do mesmo. 2 METODOLOGIAS ÁGEIS O termo metodologias ágeis se popularizou em 2001 quando um pequeno grupo composto por dezessete especialistas em processos de desenvolvimento de software se reuniu na cidade norte-americana de Utah e estabeleceram princípios comuns compartilhados por todos esses métodos. Com isso, houve a criação da Aliança Ágil, que posteriormente estabeleceu o Manifesto Ágil (Agile Manifesto). Os conceitos chave do Manifesto Ágil são: Indivíduos e interações mais que processos e ferramentas; Software em funcionamento mais que documentação abrangente; Colaboração com o cliente mais que negociação de contratos; Responder a mudanças mais que seguir um plano. Além dos conceitos, o Manifesto Ágil conta com doze princípios para aqueles que pretendem alcançar a agilidade. São eles: Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado. Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente. Entregar freqüentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo. Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto. Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho. O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face. Software funcionando é a medida primária de progresso. Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. Contínua atenção a excelência técnica e bom design aumentam a agilidade. Simplicidade - a arte de maximizar a quantidade de trabalho não realizado - é essencial. As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis. Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo. Mesmo que o Manifesto Ágil tenha sido assinado em 2001, as idéias subjacentes que guiam o desenvolvimento ágil não são tão recentes. No entanto, estas idéias começaram a ser materializadas somente na década de Vale ressaltar que em sua essência, os métodos ágeis foram desenvolvidos em um esforço para vencer as fraquezas percebidas e reais da engenharia de software convencional (PRESSMAN, 2006). Roger Pressman (2006) ainda afirma que o que diferencia as metodologias ágeis das metodologias tradicionais são o enfoque e os valores, ou seja, para uma metodologia ser considerada ágil deve enfatizar pessoas ao invés de processos e algoritmos. Além disso, também é enfatizado pelas metodologias ágeis o gasto de tempo que deve ser menor com documentação e maior com implementação. 2

3 Conforme dito por Fowler (2005), a maioria dos projetos de software conta com três suposiçõeschave, e é justamente o que o processo ágil de desenvolvimento visa atender: É difícil prever antecipadamente quais requisitos de software vão persistir e quais serão modificados. Da mesma forma que é difícil prever como as prioridades do cliente serão modificadas durante o desenvolvimento do projeto. Para muitos tipos de software, o projeto e a construção são intercalados, ou seja, as duas atividades devem ser realizadas juntas de modo que os modelos de projeto sejam comprovados à medida que são criados. É difícil prever o quanto de projeto é necessário antes que a construção seja usada para comprovar o projeto. Análise, projeto, construção e testes não são tão previsíveis (do ponto de vista do planejamento) como gostaríamos. Segundo consta na Wikipédia, o objetivo da maioria dos métodos ágeis é tentar minimizar o risco no processo de desenvolvimento de software. Métodos ágeis priorizam comunicação em tempo real a documentos escritos, ou seja, enfatizam trabalho no software como uma medida primária do progresso. Para Highsmith (2002), a definição de agilidade é a seguinte: Agilidade é a habilidade de criar e responder a mudanças com respeito ao resultado financeiro do projeto em um turbulento ambiente de negócios. Agilidade é a habilidade de balancear flexibilidade com estabilidade. A visão de Ivar Jacobson (2002) sobre agilidade fornece uma discussão bastante útil, pois ele contextualiza o trabalho de engenharia de software: Agilidade tornou-se atualmente uma palavra mágica quando se descreve um processo de desenvolvimento de software. Tudo é ágil. Uma equipe ágil é uma equipe esperta, capaz de responder adequadamente a modificações. Modificação é aquilo para o qual o desenvolvimento de software está principalmente focado. Modificações no software que está sendo construído, modificações nos membros da equipe, modificações por causa de novas tecnologias, modificações de todas as espécies que podem ter impacto no produto que eles constroem ou no projeto que cria o produto. O apoio para modificações deveria ser incorporado em tudo que fazemos em software, algo que se adota porque está no coração e na alma do software. Uma equipe ágil reconhece que o software é desenvolvido por indivíduos trabalhando em equipes e que as especialidades dessas pessoas e sua capacidade de colaborar estão no âmago do sucesso do projeto. O Quadro 1 (DYBÅ e DINGSØYR, 2008) apresenta as principais diferenças entre o desenvolvimento tradicional e o desenvolvimento ágil: Pressuposto Fundamental Quadro 1 - Comparativo entre Desenvolvimento Tradicional e Desenvolvimento Ágil Desenvolvimento Tradicional Os sistemas são plenamente determináveis, previsíveis e são construídos através de um planejamento meticuloso e extenso Desenvolvimento Ágil Software de alta qualidade adaptativa é desenvolvido por pequenas equipes que usam o princípio do design contínuo de aperfeiçoamento e testes com base no feedback rápido e mudanças Estilo de Gestão Comando e controle Liderança e colaboração Gestão do Conhecimento Explícito Tácito Comunicação Formal Informal Modelo de Desenvolvimento Ciclo de vida do modelo (cascata, espiral ou alguma variação) Modelo de entrega evolutiva Desejado Mecanicistas (burocrática com a alta Orgânico (flexível e participativa 3

4 Organizacional Forma/Estrutura Controle de Qualidade formalização), destinada a grandes organizações Planejamento pesado e controle rigoroso. Testes pesados incentivando a ação cooperativa social), destinada a pequenas e médias organizações Controle contínuo dos requisitos de design e soluções. Teste contínuo Para Stavarengo (2011), metodologia ágil é um conceito que visa trazer uma série de vantagens para a equipe, diminuindo os riscos que envolvem produzir um software e tem como característica a velocidade com que novas funções são implementadas quando comparadas com a metodologia convencional: semanas ao invés de meses. De acordo com Cockburn (2001), a idéia dominante no desenvolvimento ágil é que a equipe de software pode ser mais eficaz na resposta à mudança se puder: Reduzir o custo de movimentação de informação entre as pessoas. Para fazer isso, a equipe ágil deve: Colocar as pessoas fisicamente mais próximas Substituir documentos, falando em pessoa usando a lousa Melhorar a amabilidade da equipe, seu senso de comunidade e de moral, de modo que as pessoas estão mais propensas a fornecer informações valiosas rapidamente Reduzir o tempo decorrido entre as tomadas de decisão para ver as conseqüências dessa decisão. Para fazer isso, a equipe ágil deve: Colocar usuários especialistas a disposição da equipe Trabalhar de forma incremental Porém, Ambler (2005) destaca que existem várias implicações interessantes no desenvolvimento ágil de software para profissionais de qualidade: 1. Maior qualidade implica uma menor necessidade de atividades de garantia de qualidade: Código de melhor qualidade implica uma menor necessidade de atividades de garantia de qualidade, tais como revisões e inspeções, em outras etapas do ciclo de vida do software. Agilistas são infectados de qualidade. 2. Acostume-se a artefatos incompletos : Modelos, documentos e código-fonte evoluem ao longo do tempo. Na única vez que agilistas pode dizer que alguma coisa está feita é quando eles estão prontos para liberá-la em produção. Uma equipe de desenvolvimento ágil normalmente tem comunicação em tempo real entre os integrantes da equipe quanto entre a equipe e as pessoas que conhecem a definição do programa por exemplo, os clientes. Para tornar o processo mais ágil esta comunicação deve ser preferencialmente feita frente a frente ao invés de usar documentos. Entre as metodologias ágeis existentes atualmente, as mais conhecidas e utilizadas são a Extreme Programming (XP) e a Scrum. 3 EXTREME PROGRAMMING Mais conhecida pela sigla XP, esta metodologia é voltada mais para equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que se modificam freqüentemente. As principais diferenças da metodologia XP para as metodologias tradicionais são: Feedback constante; Abordagem incremental; Comunicação encorajada entre pessoas. 4

5 O objetivo da XP é garantir a satisfação do cliente favorecendo o cumprimento das estimativas, por isso ela enfatiza o desenvolvimento rápido do projeto. Os quatro valores que a XP se baseia são: comunicação, simplicidade, feedback e coragem (BECK, 1999). A finalidade do princípio de comunicação é manter o melhor relacionamento possível entre clientes e desenvolvedores, preferindo conversas pessoais a outros meios de comunicação. A XP também encoraja a comunicação entre os desenvolvedores e o gerente do projeto. Já a simplicidade visa permitir a criação de código simples que não deve possuir funções desnecessárias. Por código simples entende-se implementar o software com o menor número possível de classes e métodos. Outra idéia importante da simplicidade é procurar implementar apenas requisitos atuais, evitando-se adicionar funcionalidades que podem ser importantes no futuro. A aposta da XP é que é melhor fazer algo simples hoje e pagar um pouco mais amanhã para fazer modificações necessárias do que implementar algo complicado hoje que talvez não venha a ser usado, sempre considerando que requisitos são mutáveis. A questão do feedback constante significa que o programador terá informações constantes do código e do cliente. A informação do código é dada pelos testes constantes, que indicam os erros tanto individuais quanto do software integrado. Com relação ao cliente, o feedback constante significa que ele terá freqüentemente uma parte do software totalmente funcional para avaliar. O cliente deve então sugerir constantemente novas características e informações aos desenvolvedores. Eventuais erros e não conformidades são rapidamente identificados e corrigidos nas próximas versões. Baseado nisso, a tendência é que o produto final esteja de acordo com as expectativas reais do cliente. Coragem é um item fundamental, pois é necessário coragem para aplicar os três valores anteriores. Por exemplo, não são todas as pessoas que possuem facilidade de comunicação e têm bom relacionamento. A coragem também dá suporte à simplicidade, pois assim que a oportunidade de simplificar o software é percebida, a equipe pode experimentar. Além disso, é preciso coragem para obter feedback constante do cliente. Segundo Beck (1999), a metodologia XP baseia-se nas 12 práticas listadas a seguir: Planejamento: é onde se decide o que deve ser feito e o que pode ser adiado no projeto, lembrando que a XP se baseia em requisitos atuais para desenvolvimento e não em requisitos futuros. Entregas freqüentes: a construção do software deve ser simples e conforme os requisitos surgem, há uma atualização do mesmo. Metáfora: são as descrições do software sem os termos técnicos, facilitando o entendimento do cliente e guiando o desenvolvimento de software. Projeto simples: o programa desenvolvido pelo método XP deve ser o mais simples possível e satisfazer os requisitos atuais, sem a preocupação de requisitos futuros. Testes: a XP focaliza a validação do projeto durante o processo de desenvolvimento, fazendo com que os programadores desenvolvam o software criando primeiro os testes. Refatoração: deve ser feita apenas quando é necessário, ou seja, quando um desenvolvedor da dupla, ou os dois, percebe que é possível simplificar o módulo atual sem perder nenhuma funcionalidade. Programação em pares: a implementação do código é feita em dupla, ou seja, dois desenvolvedores trabalham em um único computador. Enquanto um desenvolvedor está com o controle do teclado e do mouse implementando o código, o outro observa continuamente o trabalho que está sendo feito, procurando identificar erros sintáticos e semânticos e pensando em como melhorar o código que está sendo implementado. Esses papéis podem e devem ser alterados continuamente, possibilitando que um aprenda com o outro. Propriedade coletiva: o código do projeto pertence a todos os membros da equipe. Isto significa que qualquer pessoa que percebe que pode adicionar valor a um código, mesmo que ele próprio não o tenha desenvolvido, pode fazê-lo, desde que faça a bateria de testes necessária. Uma grande vantagem desta prática é que, caso um membro da equipe deixe o projeto antes do fim, a 5

6 equipe consegue continuar o projeto com poucas dificuldades, pois todos conhecem todas as partes do software, mesmo que não seja de forma aprofundada. Integração contínua: a idéia é interagir e construir o sistema de software várias vezes por dia, mantendo os programadores em sintonia, possibilitando processos rápidos. 40 horas de trabalho semanal: a XP assume que não se devem fazer horas extras constantemente. Caso seja necessário trabalhar mais de 40 horas pela segunda semana consecutiva, existe um problema sério no projeto que deve ser resolvido não com aumento de horas trabalhadas, mas com melhor planejamento, por exemplo. Cliente presente: o cliente deve estar sempre disponível para sanar todas as dúvidas de requisitos, evitando atrasos e até mesmo construções erradas de software. Código padrão: padronização na arquitetura do código, para que este possa ser compartilhado entre todos os desenvolvedores da equipe. Além das práticas destacadas, vale salientar que a XP defende a não especialização dos membros da equipe. Isso quer dizer que todos devem participar de todas as atividades, em pares e com sistema de rodízio de pares. A XP também é a favor do desenvolvimento de infraestruturas e frameworks durante o desenvolvimento da aplicação, além da comunicação face a face por meio de testes eficientes e código cuidadosamente escrito (BECK, 1999). 4 SCRUM Em resumo, os fundamentos da XP incluem: Distinguir entre as decisões que devem ser tomadas por interesses dos negócios e aquelas a serem tomadas pelos envolvidos no projeto; Escrever testes de unidade antes de programar e manter todos os testes executando o tempo todo; Integrar e testar todo o sistema várias vezes ao dia; Produzir o software em pares, dois programadores diante de uma tela; Começar o desenvolvimento com um projeto simples, que evolui constantemente a fim de adicionar a flexibilidade necessária e eliminar a complexidade desnecessária; Colocar um sistema mínimo em produção rapidamente e desenvolvê-lo na direção que se mostrar mais favorável. Além da XP, outra metodologia que apresenta uma, comunidade grande de usuários é a Scrum. Segundo Schwaber e Beedle (2002), o objetivo da Scrum é fornecer um processo conveniente para projeto e desenvolvimento orientado a objeto. A Scrum apresenta uma abordagem empírica que aplica algumas idéias da teoria de controle de processos industriais para o desenvolvimento de softwares, reintroduzindo as idéias de flexibilidade, adaptabilidade e produtividade. O foco da metodologia é encontrar uma forma de trabalho dos membros da equipe para produzir o software de forma flexível e em um ambiente em constante mudança. A idéia principal do Scrum é que o processo de desenvolvimento de software envolve muitas variáveis técnicas e do ambiente, tais como requisitos, recursos e tecnologia, que correm o risco de mudar durante o processo. Isso faz com que o processo de desenvolvimento se torne imprevisível e complexo, exigindo flexibilidade para acompanhar as mudanças. Para Schwaber (1995), o resultado do processo deve ser um software realmente útil para o cliente. A metodologia do Scrum é baseada em princípios bem semelhantes aos da XP, ou seja, equipes pequenas, requisitos pouco estáveis ou desconhecidos e iterações curtas. Porém, as dimensões em Scrum se diferem de XP. A Scrum divide o desenvolvimento em iterações (também chamadas de sprints) de aproximadamente trinta dias. Equipes pequenas, de até dez pessoas, são formadas por programadores, projetistas, engenheiros e gerentes de qualidade. Estas equipes trabalham em cima de funcionalidades (ou requisitos) definidas na fase inicial de cada sprint. Assim, a equipe fica responsável pelo desenvolvimento desta funcionalidade. A Figura 1 ilustra um modelo de Kanban utilizado na prática da metodologia Scrum. 6

7 O desenvolvimento de software é um desafio constante, além de ser uma atividade complexa. Todo processo complexo exige uma intensa comunicação entre os membros da equipe. Este é justamente o ponto que o Scrum apresenta a Scrum Daily Meeting. Nestes encontros diários, que são preferencialmente de curta duração (normalmente de quinze minutos), são discutidos pontos relevantes do andamento do projeto, onde todos os membros do Scrum Team devem responder a três perguntas fundamentais: 1. O que eu fiz desde a última Scrum Daily Meeting? 2. O que vou fazer hoje? 3. O que pode me impedir? Com esta prática, é promovida a comunicação entre a equipe de desenvolvimento, facilitando a identificação das dificuldades encontradas e os fatores de impedimento, tornando a resolução destes problemas muito mais rápida. O ciclo de vida da Scrum é dividido em três fases principais, que por sua vez subdivide-se em subfases: Pré-planejamento: os requisitos são descritos em um documento chamado backlog. Posteriormente eles são priorizados e são feitas estimativas de esforço para o desenvolvimento de cada requisito. Dentre as atividades do planejamento estão: a definição da equipe de desenvolvimento, as ferramentas a serem usadas, a identificação dos possíveis riscos do projeto e as necessidades de treinamento. Por fim, é proposta uma arquitetura de desenvolvimento. Desenvolvimento: nesta fase o software é desenvolvido em ciclos (sprints) em que novas funcionalidades são adicionadas. Cada um desses sprints é desenvolvido de forma tradicional, ou seja, primeiramente se faz a análise, para em seguida o projeto, implementação e testes. Cada um destes ciclos é planejado para durar um pequeno espaço de tempo, podendo variar de uma semana até um mês. Pós-planejamento: posterior à fase de desenvolvimento, são realizadas reuniões com o intuito de analisar o progresso do projeto e demonstrar o software atual para os clientes. Nesta fase são implementadas as etapas de integração, testes finais e documentação. Figura 1 Ilustração de um modelo de Kanban (KNIBERG, 2007) 7

8 5 CENÁRIO ATUAL O cenário atual do processo de desenvolvimento de software na empresa onde foi realizado o estudo de caso não é completamente tradicional, ou seja, não é seguido à risca o que prega a engenharia de software clássica. Atualmente a equipe de desenvolvedores faz uso da Test Driven Development (TDD) através de um framework derivado da DUnit, do Delphi (disponível a partir da versão 2005). A TDD é uma técnica de desenvolvimento de software dirigido por testes, ou seja, o desenvolvedor escreve um caso de teste automatizado que define uma melhoria desejada ou uma nova funcionalidade. Então é produzido código que possa ser validado pelo teste para posteriormente o código ser refatorado para um código sob padrões aceitáveis. Segundo Beck (2003), TDD encoraja designs de código simples e inspira confiança. Assim como qualquer metodologia de desenvolvimento ágil, a TDD também é composta por pequenos ciclos de desenvolvimentos (STAVARENGO, 2011). Estes ciclos são formados por cinco passos: 1. Criar um teste; 2. Executar o novo teste; 3. Criar a nova função; 4. Executar os testes novamente; 5. Refatorar o código. Porém, a criação de testes unitários a cada nova implementação ou funcionalidade ainda não é uma realidade na empresa. Existem algumas classes de validação para as rotinas mais complexas como a importação de dados, mas há o reconhecimento por parte da equipe de que isso pode e deve ser melhorado e explorado de uma forma mais correta. A idéia é agregar ao que se tem hoje, as melhores práticas das metodologias Scrum e XP, fazendo com o que processo de desenvolvimento de software se torne mais produtivo e eficaz. O objetivo é realizar um estudo de caso com o intuito de implantar estes métodos em um primeiro momento numa pequena equipe composta por um gerente de desenvolvimento, cinco programadores e dois técnicos em qualidade de software. Inicialmente deverá ser feita uma análise da viabilidade da aplicação da metodologia Scrum, bem como levantamento de requisitos e material de apoio (documentos e sistema de controle de requisições) utilizados na prática do Scrum. Aplicar a metodologia XP é um segundo passo a ser tomado, mas para que isso se realize, devem ser realizadas algumas reuniões a fim de apresentar para a gerência as vantagens que a XP pode trazer. A aceitação da equipe de desenvolvimento também é importante e, para isso, deve ser realizada uma pesquisa entre os desenvolvedores para obtenção de uma estimativa de quem já conhece XP ou algum tipo de metodologia ágil e até mesmo quem não conhece, mas tem interesse em conhecer e colocar em prática estas técnicas. A intenção é fazer com que a equipe se sinta motivada e engajada com a idéia de mudar a abordagem de desenvolvimento de software, pois com a aplicação de métodos ágeis todos tendem a ganhar. 5.1 Sobre a empresa A Data Cempro é uma empresa que há mais de vinte anos atende o mercado de sistemas contábeis com produtos de fácil usabilidade e com a melhor relação custo x benefício para o uso das tecnologias modernas. Desde 1986, a Data Cempro Informática vem acompanhando as contínuas mudanças tecnológicas exigidas pelo mercado. E é através da agilidade neste processo de mudança que seus clientes hoje podem atestar a segurança que a Data Cempro proporciona através dos seus sistemas e serviços, o que também lhe garantiu a conquista do prêmio Top Informática Rio Grande do Sul e o sucesso em todas as feiras e eventos das quais participou. Situada na cidade de Cachoeirinha, na região da Grande Porto Alegre, atualmente a empresa possui em sua equipe de desenvolvimento cinco núcleos compostos por um gerente, um técnico em qualidade de software, dois técnicos de suporte e uma quantidade de desenvolvedores que varia de dois a três por núcleo. Os núcleos estão divididos em: Núcleo Comercial Núcleo Departamento Pessoal Núcleo Fiscal 8

9 Núcleo Contábil Núcleo Web Cada núcleo é responsável pelos seus sistemas, de acordo com a área de atuação, mas todos os sistemas são integrados visando um trabalho com maior conforto e amigabilidade, tanto para os clientes quanto para a equipe de desenvolvimento. Optou-se por realizar o estudo de caso na Data Cempro Informática por se tratar de uma empresa moderna que, no papel de seus gestores, encoraja os programadores a melhorar o processo de desenvolvimento agregando novas idéias, novas tecnologias e novas metodologias. Este trabalho é só o início de um projeto que tende a se estender pelos demais setores da empresa, de acordo com os resultados obtidos. 5.2 Processo atual de desenvolvimento de software Conforme foi descrito na seção anterior, a Data Cempro Informática conta com cinco núcleos de desenvolvimento onde o trabalho da equipe funciona de forma integrada. Porém, o processo de desenvolvimento de software atualmente segue uma metodologia tipicamente tradicional e se estabelece resumidamente da seguinte forma: Cada núcleo é responsável por um ou mais sistemas de acordo com a sua área de atuação, portanto cabe ao técnico em qualidade de software definir quais requisições farão parte da próxima liberação de versão. As requisições são armazenadas em um sistema de suporte, com acesso comum entre todos os membros da equipe, onde podem ser realizados diversos processos como incluir, modificar e excluir requisições, consultar e emitir relatórios, consultar dados de clientes, etc. Os técnicos em qualidade (também chamados de testadores) organizam as requisições por prioridades, definindo prazos para a liberação das mesmas. Além disso, são eles que encaminham as requisições para o programador responsável. Após as requisições serem passadas para o programador, este só passará a mesma para a fase de testes posterior às implementações das alterações solicitadas pelo técnico em qualidade de software. Com os devidos testes bem sucedidos, as requisições são liberadas e estão prontas para sair na liberação de versão do sistema seguinte. Uma liberação de versão pode englobar mais de um sistema, portanto cabe aos técnicos em qualidade de software dos núcleos chegarem a um consenso para definição da data de liberação, bem como os prazos para execução dos testes. O procedimento descrito acima exemplifica o que engenharia de software denomina como Modelo Cascata, conforme Sommerville (2000) e Pressman (2001). Este modelo também chamado de ciclo de vida clássico sugere uma abordarem sistemática e seqüencial para o desenvolvimento de software, conforme pode ser visto na Figura 2. 9

10 Figura 2 Modelo Cascata (SOMMERVILLE, 2000) Diferente do Scrum, que possui reuniões diárias, cada núcleo realiza uma reunião semanal de uma hora em horários normalmente pré-estabelecidos. O objetivo é a troca de idéias entre os membros da equipe e exposição de problemas ou dúvidas que possam estar travando o processo de desenvolvimento. Outro fator positivo é a constante troca de idéias entre os desenvolvedores, mantendo um espírito de colaboração e troca mútua de opiniões, críticas e sugestões. De certa forma, algumas premissas do Manifesto Ágil já são cumpridas na Data Cempro Informática. Software em funcionamento é uma preocupação constante da equipe de desenvolvedores, pois isso vai de encontro com manter a satisfação do cliente. Sempre que existe a necessidade, seja por uma falha do sistema ou mudança da legislação, é dada prioridade a manter os sistemas em funcionamento do que cumprir requisições planejadas anteriormente. Nestes casos as prioridades são alteradas de acordo com a demanda e a urgência das requisições. 6 APLICAÇÃO DOS MÉTODOS ÁGEIS Conforme citado no capítulo anterior do presente artigo, o primeiro passo para a aplicação de técnicas e métodos ágeis de desenvolvimento de software é a aceitação por parte da equipe. Importante lembrar que quando se fala em equipe, não se trata apenas de desenvolvedores, mas também analistas e técnicos em qualidade de software. Com base nisso, uma das primeiras atividades deste projeto é reunir a equipe a fim de expor o objetivo e os benefícios que o processo ágil de desenvolvimento poderá agregar ao time de desenvolvimento, além de esclarecer possíveis dúvidas sobre este novo paradigma que se pretende implantar, ao mesmo tempo em que se busca motivar a equipe para a aplicação das práticas ágeis. Em razão do impacto que uma mudança cultural deste porte pode provocar, a aplicação dos métodos ágeis deverá ocorrer de forma gradual. O escopo da aplicação das metodologias englobará apenas um ou dois núcleos de desenvolvimento, inicialmente de forma experimental e sem muita rigidez, ou seja, é possível que apenas algumas práticas ágeis sejam aplicadas. Apesar disso, a ideia é evitar os principais gargalos gerados pelo modelo em cascata, aplicando o modelo iterativo das metodologias ágeis. Importante salientar que, mesmo que a aplicação das práticas ágeis de desenvolvimento de software seja implantada de forma flexível, a idéia é de que o trabalho seja realizado de forma que as característicaschave da equipe sejam valorizadas. Conforme dito por Pressman (2006), se os membros de uma equipe de software tiverem que estabelecer as características do processo que é aplicado para construir softwares, as 10

11 mais importantes são: Competência: Esta característica inclui talento inato, habilidades específicas relacionadas a software e conhecimento global do processo que a equipe decidiu aplicar. Foco comum: Isso estabelece que todos os membros da equipe devem estar focados em uma meta, como entregar um incremento de software em funcionamento ao cliente dentro do prazo prometido, por exemplo. Para isso, a equipe deve concentrar-se em adaptações contínuas que farão o processo satisfazer as necessidades da equipe. Colaboração: Sobre este item, a engenharia de software diz respeito a avaliar, analisar e usar as informações que são comunicadas à equipe; criar informações que ajudarão o cliente e outros a entender o trabalho da equipe; construir informações que forneçam valor de negócio ao cliente. Para que sejam realizadas estas tarefas, é preciso que haja colaboração entre os membros da equipe, incluindo o cliente e o gerente de negócio. Capacidade de tomada de decisão: A equipe precisa de autonomia para a tomada de decisão sobre tópicos técnicos e de projeto, pois qualquer boa equipe de software deve ter liberdade de controlar seu próprio destino. Habilidade de resolver problemas vagos: Uma equipe ágil terá de lidar continuamente com ambigüidades e será continuamente confrontada por modificações. Este tópico salienta também que a equipe precisa entender que, em alguns casos, o problema que está sendo resolvido hoje pode não ser o problema que será resolvido amanhã. Respeito e confiança mútua: Uma equipe consolidada exibe a confiança e o respeito necessários para torná-la tão fortemente aglutinada que o todo é maior que a soma das partes. (PRESSMAN, 2006 apud DEMARCO, 1998) Auto-organização: No contexto de desenvolvimento ágil, a auto-organização implica três coisas: (1) a equipe ágil organiza-se para o trabalho a ser feito; (2) a equipe o processo para melhor acomodar seu ambiente local; (3) a equipe organiza o cronograma de trabalho para conseguir melhor entrega do incremente de software. Não é de hoje que se tem conhecimento sobre um acirrado debate na comunidade de Engenharia de Software sobre a aplicabilidade das metodologias clássicas em detrimento das metodologias ágeis. Eventualmente este debate também é chamado de guerra metodológica (GLASS, 2001). Ainda sobre esta questão polêmica, Glass (2001) afirma que as crenças conflitantes servem de base para a discordância entre os defensores das metodologias ágeis e das clássicas, indicando que a disputa pode se tratar de um problema de atitudes individuais e/ou organizacionais, hábitos de trabalho e visões precipitadas sobre as diferentes metodologias e seus relacionamentos. Baseado neste conflito cultural entre as metodologias tradicionais e ágeis pode-se afirmar que a implantação de métodos ou práticas ágeis em uma empresa que possui uma identidade própria de desenvolvimento, como é o caso da Data Cempro, só poderá ocorrer com muita cautela. É importante salientar que a empresa apóia este tipo de iniciativa no papel de seus gestores, mas isso não quer dizer que a aceitação seja geral por parte da equipe. Este sem dúvida será o maior desafio neste projeto. Dependendo do cenário, a transição para o Agile em uma organização é muito complicada e, muitas vezes, até inviável. Toda empresa busca ser ágil e para tal, existe um caminho a ser seguido. (YOSHIMA, 2011), conforme retrata a Figura 3. Porém, é sabido que não é qualquer empresa que está preparada para adotar uma cultura ágil de desenvolvimento. Figura 3 Transição do Estado Atual para o Agile (YOSHIMA, 2011) 11

12 Yoshima (2011) lembra que se criou um mito chamado Cultura Agile onde é bastante comum o fato de pessoas ligadas à comunidade ágil culparem a cultura pelas dificuldades em transitar do estado atual para o Agile. Yoshima (2011) ainda reforça que é uma falha tentar mudar a cultura empresarial, impondo-lhe uma própria. É preciso tomar decisões focando as metas do negócio da empresa, baseado no sistema de gestão adotado. 6.1 Aplicação da metodologia Scrum A aplicação dos métodos ágeis terá início pela adoção de práticas da metodologia Scrum, onde o sistema de suporte utilizado para controle de requisições servirá para gerar o documento de backlog. O texto das requisições, em sua maioria, é descrito pelos técnicos em qualidade de software, o que torna o conteúdo menos técnico, tornando-o mais entendível aos olhos dos usuários. Com isso, o texto da requisição poderá formar a user story que, por conseqüência, cada pacote de requisições incluídas na liberação de versão do sistema, seria o sprint da equipe de desenvolvimento. O que pode ser melhorado neste ponto é a questão do grau de importância (prioridade) da user story que passará a ser definido pelo técnico em qualidade de software ou ainda pelo gerente de desenvolvimento. Algumas equipes Scrum fazem uso e possuem modelos próprios de cartões, onde são descritas as user stories. Um modelo pode ser visto na Figura 4, onde existem campos para descrever o que seria a o texto da requisição, um breve descritivo de como demonstrar o problema a ser resolvido ou a solução, o grau de importância e a estimativa de tempo. Figura 4 Modelo de cartão de usuário (KNIBERG, 2007) Outro fator a ser esclarecido perante a equipe diz respeito às reuniões diárias de Scrum, pois deverá ser consenso entre os membros da equipe o melhor horário para aplicá-las. Será sugerido o horário matutino, pois A primeira reunião diária é essencial para o lançamento onde todos decidem começar a trabalhar. (KNIBERG, 2007, p.48). No entanto, conforme a demanda de serviço e disponibilidade dos stakeholders, o horário da reunião diária poderá ser flexibilizado. Conforme foi dito na introdução deste artigo, a idéia é aproveitar as melhores práticas de cada metodologia, de acordo com a realidade da equipe. A prática do Kanban deve ser adotada pela equipe, até porque outros núcleos de desenvolvimento da empresa já adotaram esta prática anteriormente e obtiveram relativa satisfação por parte da gerência. Entende-se que com este recurso o processo de desenvolvimento se tone mais transparente perante os membros da equipe, estimulando uma cobrança natural entre si pelo alcance do resultado na resolução das tarefas (user stories). 6.2 Aplicação da metodologia XP O intuito de aplicar a metodologia XP na equipe de desenvolvimento de software é tornar o trabalho mais produtivo e eficaz, pois conforme foi dito por Beck (1999) um dos fundamentos da XP é adicionar a flexibilidade necessária e eliminar a complexidade desnecessária no processo de desenvolvimento de software. Baseado nisso, o objetivo é de que a equipe consiga visualizar na XP uma metodologia que, com o passar do tempo, torne o processo de desenvolvimento mais eficiente e produtivo. Para cumprir a etapa de planejamento da XP, alguns detalhes terão que ser adaptados para a 12

13 realidade da empresa. Uma das premissas da metodologia XP é a de que a equipe e o cliente trabalham juntos e que deve haver comunicação entre eles. Bom, neste caso vamos incluir mais um membro na equipe de desenvolvimento: o técnico de suporte. Este será o porta-voz do cliente na equipe. A ordem natural de comunicação dentro da empresa é a seguinte: 1. Cliente entra em contato com técnico de suporte; 2. Técnico de suporte entra em contato com técnico em qualidade de software; 3. Técnico em qualidade de software entra em contato com programador. Esta é uma seqüência de comunicação que já é (ou deveria ser) uma prática comum nas equipes de desenvolvimento da empresa. Em nenhuma hipótese o cliente deve se comunicar diretamente com o programador. Este é um paradigma que dificilmente será quebrado. Poderá ser sugerido que o técnico de suporte possa ter contato direto com o programador para encurtar o caminho, mas essa é uma questão a ser debatida nas reuniões iniciais de implantação do projeto. Com relação ao documento de backlog, deverá ser seguido o modelo descrito na aplicação da metodologia Scrum (Seção 6.2). Esta é a vantagem de se utilizar as práticas de Scrum e XP, pois ambas tem características comuns e que podem ser reaproveitadas entre elas. A etapa de projeto da XP segue o princípio KIS (keep it simple mantenha a simplicidade), e aí surge outro paradigma a ser quebrado. Atualmente a equipe de desenvolvimento da empresa é sempre motivada a codificar de forma que problemas futuros possam ser resolvidos desde agora. Isso vai de encontro ao que prega a XP onde o projeto de funcionalidade extra (porque o programador considera que será exigida depois) é desencorajado. Este é um contraponto da XP em relação às práticas atuais de desenvolvimento, pois a XP valoriza o projeto simples em relação a uma representação mais complexa. No entanto, é nesta mesma etapa de projeto que surge um ponto apontado como benéfico por ser comum a pratica da XP e o que se busca no processo atual de desenvolvimento: a refabricação (ou refatoração). Fowler (2000) define a refabricação da seguinte forma: Refabricação é o processo de modificar um sistema de software de tal modo que ele não altere o comportamento externo do código, mas aperfeiçoe a estrutura interna. É um modo disciplinado de limpar o código (e modificar/simplificar o projeto interno) que minimiza as chances de introdução de defeitos. Em essência, quando você refabrica está aperfeiçoando o projeto do código depois que ele foi escrito. O projeto de codificação da XP tem como ponto de partida o desenvolvimento de testes unitários para as funcionalidades descritas nas user stories. Conforme descrito na Seção 5, atualmente já existe um processo semelhante, isto é, existe um framework de testes que é alimentado a cada vez que uma nova funcionalidade é desenvolvida. Mas como já foi dito, esta prática precisa ser revista e aplicada de uma melhor forma, pois em muitos casos ela não é explorada como deveria. Além deste framework de testes, os sistemas da Data Cempro possuem algumas classes de validação utilizadas principalmente na importação de dados de sistemas de terceiros. Estas classes funcionam como uma espécie de teste unitário, garantindo que haja integridade nos dados que estão sendo importados. 6.3 Apresentação dos resultados Ao término do período experimental de aplicação de métodos ágeis de desenvolvimento, será elaborado um relatório contendo um quadro comparativo com as métricas de produção da equipe. Para alimentar este estudo, deverá ser utilizada a média de requisições concluídas pela equipe nas últimas liberações de versão, por exemplo. Como a idéia é avaliar o desempenho da equipe, não será feito nenhuma média individual. O objetivo é demonstrar com os resultados apresentados que uma empresa ou equipe de desenvolvimento pode ser considerada ágil apenas com a aplicação de algumas práticas de determinadas metodologias, dependendo da sua necessidade. O que se espera também é que os resultados motivem os gerentes de desenvolvimento a pensar em métodos ágeis como um agente facilitador na execução das tarefas diárias da equipe, motivando assim o grupo a procurar cada vez mais a agilidade na tarefa de desenvolver software. Os resultados serão demonstrados basicamente de duas formas: quantitativa e qualitativa. Para a apresentação dos resultados na forma quantitativa, será tomado por base o número médio de requisições que 13

14 a equipe costuma entregar concluída a cada liberação de versão, controlando também a questão de prioridade, complexidade e horas trabalhadas pelo time. O objetivo é ter um parâmetro para as futuras avaliações que só terão um resultado mais apurado em um prazo mais longo, com todos os membros da equipe adaptados ao processo ágil de desenvolvimento de software. A apresentação qualitativa de resultados será baseada em entrevistas realizadas com todas as pessoas envolvidas no projeto de alguma forma, seja direta ou indireta. Com isso pretende-se avaliar o grau de satisfação da equipe e também dos clientes. Esta será uma avaliação considerada mais real, com resultados apresentados de forma mais confiável. 7 CRONOGRAMA DE ATIVIDADES Aplicar uma técnica ou método de desenvolvimento não é uma tarefa das mais simples, haja vista que pode se tratar de uma quebra de paradigma. Uma equipe de desenvolvimento de software que trabalha há certo tempo sem uma metodologia específica pode sentir o impacto de adotar o uso do Scrum ou XP, por exemplo. Por isso que será adotada a aplicação em etapas, ou seja, primeiro uma coisa depois outra. A adoção das duas metodologias em paralelo poderia ser radical demais e acabar tendo um efeito contrário ao que se espera. Além da XP e Scrum, a melhora da TDD, já utilizada pela equipe da Data Cempro, é outro desafio a ser cumprido. Haja vista que esta etapa requer menos tempo por já estar sendo utilizada, é preferível que seja tais melhorias comecem a serem revistas após o impacto inicial da aplicação das práticas desconhecidas pela equipe. O cronograma de atividades é descrito no Quadro 2 para destacar o que se pretende executar e em quais períodos: Reunião para definições Aplicação de práticas Scrum Aplicação de práticas XP Revisão das práticas TDD Apresentação dos resultados Quadro 2 Cronograma de atividades Ago/2011 Set/2011 Out/2011 Nov/ CONSIDERAÇÕES FINAIS Este artigo teve o importante papel de realizar um estudo sobre algumas das metodologias ágeis mais utilizadas atualmente com o objetivo de colocá-las em prática em uma próxima etapa. Com base nas referências utilizadas para o desenvolvimento deste documento, foi adquirido um maior conhecimento sobre as melhores práticas de desenvolvimento de software, considerando e analisando o que foi dito e escrito pelos autores referenciados. Entende-se que este é apenas o início de um projeto que visa alcançar resultados mais relevantes, não apenas agregando para a empresa no sentido de melhorar a produtividade, como também expandindo a visão da equipe de desenvolvimento. Foram apresentados valores, princípios e práticas das metodologias Scrum, XP e TDD, traçando um paralelo com as metodologias tradicionais aplicadas na maioria das fábricas de software. Isso não representa nenhuma preferência nesta disputa entre engenheiros de software e agilistas, apenas fortalece o que cada um dos dois lados tem de melhor. O objetivo não é apontar se um leva vantagem sobre o outro, mas sim mostrar que ambos possam trabalhar em conjunto. Levando em consideração tudo o que foi estudado, o próximo passo deste trabalho será aplicar as práticas ágeis de desenvolvimento de software em uma equipe educada com base na Engenharia de Software tradicional. Durante a realização prática deste projeto, será verificado se a aplicação das práticas abordadas neste artigo atende ao que foi proposto, tirando-se mais conclusões cabíveis baseando-se nos resultados apresentados ao final da etapa de implementação. 14

15 REFERÊNCIAS AGILE MANIFESTO, Disponível em: <http://agilemanifesto.org>. Acesso em: 13 abr BECK, Kent. Programação Extrema Explicada. Boston, Bookman, BECK, Kent. Test-Driven Development by Example. Addison-Wesley, FOWLER, Martin. Refactoring: Improving the Design of Existing Code. Addison-Wesley, FOWLER, Martin. The New Methodology, Disponível em: <http://www.martinfowler.com/articles/newmethodology.html#n8b>. Acesso em: 22 mai GLASS, R.L. Agile Versus Traditional: Make Love Not War. Cutter IT Journal, HIGHSMITH, Jim. Agile Project Management, JACOBSON, Ivar. A Resounding Yes to Agile Processes But Also More. Cutter IT Journal, KNIBERG, Henrik. Scrum e XP direto das Trincheiras. C4Media, PRESSMAN, Roger S. Engenharia de Software. 6ª ed. McGraw-Hill, MADEIRA, Fernando. Métodos Ágeis. Dev Day, Sisnema, SANTANA, Célio; GUSMÃO, Cristiane. Melhoria de Processo de Software no Desenvolvimento Ágil. Revista Engenharia de Software. Ano 2, 14ª ed. DevMedia, SCHWABER, Ken & BEEDLE, Mike. Agile Software Development with SCRUM, Prentice-Hall, SCHWABER, Ken. Scrum Development Process. OOPSLA'95 Workshop on Business Object Design and Implementation. Springer-Verlag, SOMMERVILLE, Ian. Software Engineering. 6 ª ed. Addison-Wesley, STAVARENGO, Rafael. Desenvolvimento ágil. Revista Clube Delphi. Ano 9, 125ª ed. DevMedia, YOSHIMA, Rodrigo. O mito da Cultura Ágil. 03 abr Disponível em: <http://blog.aspercom.com.br/2011/04/03/o-mito-da-cultura-agil>. Acesso em: 30 mai WIKIPEDIA, Desenvolvimento ágil de software. Disponível em: <http://pt.wikipedia.org/wiki/desenvolvimento_%c3%a1gil_de_software>. Acesso em: 13 abr

Metodologias Ágeis. Aécio Costa

Metodologias Ágeis. Aécio Costa Metodologias Ágeis Aécio Costa Metodologias Ágeis Problema: Processo de desenvolvimento de Software Imprevisível e complicado. Empírico: Aceita imprevisibilidade, porém tem mecanismos de ação corretiva.

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2015 Desenvolvimento Rápido de Software 2 1 Para quê o Desenvolvimento Rápido de Software? Os negócios

Leia mais

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com Processo de Desenvolvimento de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático desta aula Modelo Cascata (Waterfall) ou TOP DOWN. Modelo Iterativo. Metodologia Ágil.

Leia mais

Guia Projectlab para Métodos Agéis

Guia Projectlab para Métodos Agéis Guia Projectlab para Métodos Agéis GUIA PROJECTLAB PARA MÉTODOS ÁGEIS 2 Índice Introdução O que são métodos ágeis Breve histórico sobre métodos ágeis 03 04 04 Tipos de projetos que se beneficiam com métodos

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software

Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software MICHEL DOS SANTOS SOARES 1 Unipac - Universidade Presidente Antônio Carlos Faculdade de Tecnologia e Ciências de Conselheiro

Leia mais

Metodologias Ágeis de Desenvolvimento de Software

Metodologias Ágeis de Desenvolvimento de Software "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software de Desenvolvimento de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha

Leia mais

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática Disciplina: INF5008 Prof.: (monalessa@inf.ufes.br) Conteúdo 8. Metodologias

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 5 http://www.ic.uff.br/~bianca/engsoft2/ Aula 5-05/05/2006 1 Dúvidas da aula passada RUP (Rational Unified Process) é uma ferramenta ou um processo? Resposta: os dois. O

Leia mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 O Processo Unificado dos autores Ivar Jacobson, Grady Booch e James

Leia mais

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1 METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO Bruno Edgar Fuhr 1 Resumo: O atual mercado de sistemas informatizados exige das empresas de desenvolvimento, um produto que tenha ao mesmo

Leia mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 Extreme Programming (XP); DAS (Desenvolvimento Adaptativo de Software)

Leia mais

SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO

SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO RESUMO Eleandro Lopes de Lima 1 Nielsen Alves dos Santos 2 Rodrigo Vitorino Moravia 3 Maria Renata Furtado 4 Ao propor uma alternativa para o gerenciamento

Leia mais

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES Marcelo Augusto Lima Painka¹, Késsia Rita da Costa Marchi¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil

Leia mais

05/05/2010. Década de 60: a chamada Crise do Software

05/05/2010. Década de 60: a chamada Crise do Software Pressman, Roger S. Software Engineering: A Practiotioner s Approach. Editora: McGraw- Hill. Ano: 2001. Edição: 5 Introdução Sommerville, Ian. SW Engineering. Editora: Addison Wesley. Ano: 2003. Edição:

Leia mais

Prof. Me. Marcos Echevarria

Prof. Me. Marcos Echevarria Prof. Me. Marcos Echevarria Nas décadas de 80 e 90 a visão geral sobre a melhor maneira de desenvolver software era seguir um cuidadoso planejamento para garantir uma boa qualidade; Esse cenário era aplicável

Leia mais

Métodos Ágeis para Desenvolvimento de Software Livre

Métodos Ágeis para Desenvolvimento de Software Livre Métodos Ágeis para Desenvolvimento de Software Livre Dionatan Moura Jamile Alves Porto Alegre, 09 de julho de 2015 Quem somos? Dionatan Moura Jamile Alves Ágil e Software Livre? Métodos Ágeis Manifesto

Leia mais

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br SCRUM Fabrício Sousa fabbricio7@yahoo.com.br Introdução 2 2001 Encontro onde profissionais e acadêmicos da área de desenvolvimento de software de mostraram seu descontentamento com a maneira com que os

Leia mais

Especialização em Engenharia de Software e Banco de Dados

Especialização em Engenharia de Software e Banco de Dados Especialização em Engenharia de Software e Banco de Dados Disciplina: Engenharia de Software Tópico: Metodologias Ágeis Prof. Rodolfo Miranda de Barros rodolfo@uel.br O que é agilidade? Agilidade: Rapidez,

Leia mais

Desenvolvimento Ágil de Software

Desenvolvimento Ágil de Software Desenvolvimento Ágil de Software Métodos ágeis (Sommerville) As empresas operam em um ambiente global, com mudanças rápidas. Softwares fazem parte de quase todas as operações de negócios. O desenvolvimento

Leia mais

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto.

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto. SCRUM SCRUM É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto. Ken Schwaber e Jeff Sutherland Transparência A transparência garante que

Leia mais

Introdução ao OpenUP (Open Unified Process)

Introdução ao OpenUP (Open Unified Process) Introdução ao OpenUP (Open Unified Process) Diferentes projetos têm diferentes necessidades de processos. Fatores típicos ditam as necessidades de um processo mais formal ou ágil, como o tamanho da equipe

Leia mais

Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil

Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil franciscogerson10@gmail.com Conteúdo Programático Introdução O que é um processo ágil A política de desenvolvimento ágil Fatores

Leia mais

Desenvolvimento ágil de software

Desenvolvimento ágil de software Desenvolvimento ágil de software Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil,

Leia mais

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas. Métodos Ágeis Edes Garcia da Costa Filho edes_filho@dc.ufscar.br 1 Tópicos Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Extreme Programming (XP). Referências Bibliográficas. 2 Histórico

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO Santa Maria, 27 de Setembro de 2013. Revisão aula anterior Desenvolvimento Ágil de Software Desenvolvimento e entrega

Leia mais

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software. Teresa Maciel DEINFO/UFRPE Requisitos de Software Teresa Maciel DEINFO/UFRPE 1 Requisito de Software Características que o produto de software deverá apresentar para atender às necessidades e expectativas do cliente. 2 Requisito

Leia mais

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com)

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com) SCRUM: UM MÉTODO ÁGIL Cleviton Monteiro (cleviton@gmail.com) Roteiro Motivação Manifesto Ágil Princípios Ciclo Papeis, cerimônias, eventos, artefatos Comunicação Product Backlog Desperdício 64% das features

Leia mais

Ferramenta para Gerenciamento de Requisitos em Metodologias Ágeis

Ferramenta para Gerenciamento de Requisitos em Metodologias Ágeis Ferramenta para Gerenciamento de Requisitos em Metodologias Ágeis Eduardo dos Santos Gonçalves 1, Heitor Boeira dos Reis Filho 1 1 Universidade Luterana do Brasil (ULBRA) Av. Itacolomi, 3.600 Bairro São

Leia mais

UNIVERSIDADE ESTADUAL DE CAMPINAS - UNICAMP FACULDADE DE TECNOLOGIA - FT GUSTAVO ARCERITO MARIVALDO FELIPE DE MELO

UNIVERSIDADE ESTADUAL DE CAMPINAS - UNICAMP FACULDADE DE TECNOLOGIA - FT GUSTAVO ARCERITO MARIVALDO FELIPE DE MELO UNIVERSIDADE ESTADUAL DE CAMPINAS - UNICAMP FACULDADE DE TECNOLOGIA - FT GUSTAVO ARCERITO MARIVALDO FELIPE DE MELO Análise da Metodologia Ágil SCRUM no desenvolvimento de software para o agronegócio Limeira

Leia mais

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades Objetivos da Aula 1 Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades Entendimento sobre os processos essenciais do

Leia mais

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Programação Extrema Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Prof. Mauro Lopes Programação Extrema Prof. Mauro Lopes 1-31 45 Manifesto Ágil Formação da Aliança Ágil Manifesto Ágil: Propósito

Leia mais

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA-UFES Departamento de Computação

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA-UFES Departamento de Computação Centro de Ciências Agrárias Departamento de Computação Visão Geral do Processo de Desenvolvimento de Software Introdução à Ciência da Computação Introdução à Ciência da Computação COM06850-2015-II Prof.

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO Santa Maria, 24 de Setembro de 2013. Revisão aula anterior Processos de Software Engenharia de Requisitos, Projeto,

Leia mais

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução.

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução. Introdução Métodos Ágeis em Engenharia de Software Thiago do Nascimento Ferreira Desenvolvimento de software é imprevisível e complicado; Empresas operam em ambiente global com mudanças rápidas; Reconhecer

Leia mais

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP extreme Programming extreme Programming (XP) Metodologia ágil para equipes pequenas a médias desenvolvendo software com requesitos vagos ou que mudam freqüentemente. [Beck 2000] Em XP, codificação é principal

Leia mais

Capítulo 1. Extreme Programming: visão geral

Capítulo 1. Extreme Programming: visão geral Capítulo 1 Extreme Programming: visão geral Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para: Projetos cujos requisitos são vagos e mudam com freqüência; Desenvolvimento

Leia mais

Sistemas de Informação e Programação II Odorico Machado Mendizabal

Sistemas de Informação e Programação II Odorico Machado Mendizabal Sistemas de Informação e Programação II Odorico Machado Mendizabal Universidade Federal do Rio Grande FURG C3 Engenharia de Computação 16 e 23 de março de 2011 Processo de Desenvolvimento de Software Objetivos

Leia mais

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697 Metodologias Ágeis Gerenciando e Desenvolvendo Projetos de forma eficiente Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697 Introdução Ao longo dos anos a indústria de desenvolvimento

Leia mais

LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013

LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013 LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013 Disciplina: Professor: Engenharia de Software Edison Andrade Martins Morais http://www.edison.eti.br prof@edison.eti.br Área: Metodologias

Leia mais

APLICAÇÃO DE MÉTODOS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 1

APLICAÇÃO DE MÉTODOS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 1 APLICAÇÃO DE MÉTODOS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 1 Cleo Hickmann Junior 2 Anderson Yanzer 3 Orientador Universidade Luterana

Leia mais

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças. METODOLOGIAS ÁGEIS SURGIMENTO As metodologias ágeis surgiram em resposta ao problema dos atrasos no desenvolvimento de software e aos cancelamentos, devido ao fato dos sistemas demorarem muito tempo para

Leia mais

Por que o Scrum? o Foco na Gerência de Projetos; o Participação efetiva do Cliente.

Por que o Scrum? o Foco na Gerência de Projetos; o Participação efetiva do Cliente. Por que o Scrum? o Foco na Gerência de Projetos; o Participação efetiva do Cliente. Desenvolvido por Jeff SUTHERLAND e Ken SCHWABER ; Bastante objetivo, com papéis bem definidos; Curva de Aprendizado é

Leia mais

RESUMO PARA O EXAME PSM I

RESUMO PARA O EXAME PSM I RESUMO PARA O EXAME PSM I Escrito por: Larah Vidotti Blog técnico: Linkedin: http://br.linkedin.com/in/larahvidotti MSN: larah_bit@hotmail.com Referências:... 2 O Scrum... 2 Papéis... 3 Product Owner (PO)...

Leia mais

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br Introdução Criada por Kent Baeck em 1996 durante o projeto Daimler Chrysler. O sucesso

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Extreme Programming I Ricardo de Sousa Britto rbritto@ufpi.edu.br Você gostaria de trabalhar assim? Análise de Requisitos Longe de acordo Requerimentos Complexo Anarquia Perto

Leia mais

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br Todos os direitos reservados e protegidos 2006 e 2010 Objetivo: Estudo de Caso Objetivo: Apresentar um Estudo de Caso para demonstrar como aplicar as práticas do SCRUM em projeto de desenvolvimento de

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

ANÁLISE DAS METODOLOGIAS ÁGEIS XP E SCRUM NO DESENVOLVIMENTO DE UM SOFTWARE DE GERENCIAMENTO DE ABASTECIMENTO

ANÁLISE DAS METODOLOGIAS ÁGEIS XP E SCRUM NO DESENVOLVIMENTO DE UM SOFTWARE DE GERENCIAMENTO DE ABASTECIMENTO ANÁLISE DAS METODOLOGIAS ÁGEIS XP E SCRUM NO DESENVOLVIMENTO DE UM SOFTWARE DE GERENCIAMENTO DE ABASTECIMENTO Joe Jackson Sangalli Vidor (FUNCESI ) joesangalli@gmail.com Carlos Rondinely Rodrigues Oliveira

Leia mais

GESTÃO DO CONHECIMENTO PARA O DESENVOLVIMENTO DE SOFTWARE COM MÉTODOS ÁGEIS

GESTÃO DO CONHECIMENTO PARA O DESENVOLVIMENTO DE SOFTWARE COM MÉTODOS ÁGEIS GESTÃO DO CONHECIMENTO PARA O DESENVOLVIMENTO DE SOFTWARE COM MÉTODOS ÁGEIS Jeandro Maiko Perceval 1 Carlos Mario Dal Col Zeve2 Anderson Ricardo Yanzer Cabral ² RESUMO Este artigo apresenta conceitos sobre

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Metodologias para Desenvolvimento de Software XP e SCRUM Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Agenda Desenvolvimento Ágil de Software

Leia mais

Gerenciamento Ágil de Projetos de Desenvolvimento de Softwares na Secretaria de Estado da Casa Civil

Gerenciamento Ágil de Projetos de Desenvolvimento de Softwares na Secretaria de Estado da Casa Civil Gerenciamento Ágil de Projetos de Desenvolvimento de Softwares na Secretaria de Estado da Casa Civil Claryanne A. Guimarães 1, Daniel Dias S. Rosa 1 1 Departamento de Computação Universidade Federal de

Leia mais

INTRODUÇÃO A PROJETOS

INTRODUÇÃO A PROJETOS INTRODUÇÃO A PROJETOS Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br GESTÃO DE PROJETOS Gestão Ágil de projetos Gestão de projetos com PMBOK GESTÃO ÁGIL DE PROJETOS GESTÃO ÁGIL

Leia mais

Aula 2 Introdução ao Scrum

Aula 2 Introdução ao Scrum Curso Preparatório para a certificação Scrum Fundamentals Certified (SFC ) da ScrumStudy www.scrumstudy.com Aula 2 Introdução ao Scrum www.sitecampus.com.br - Cadastre-se gratuitamente para acessar ao

Leia mais

development Teresa Maciel DEINFO/UFRPE

development Teresa Maciel DEINFO/UFRPE development Teresa Maciel DEINFO/UFRPE Prazos curtos Baixo custo Agregação ao negócio Fidelidade do cliente Competitividade Sobrevivência Cenário 2000 35% dos projetos apresentam sucesso 31% dos projetos

Leia mais

Estudo de caso: aplicação das metodologias ágeis de desenvolvimento: Scrum e XP no desenvolvimento do sistema Unidisciplina

Estudo de caso: aplicação das metodologias ágeis de desenvolvimento: Scrum e XP no desenvolvimento do sistema Unidisciplina Perquirere, 11 (1): 113-129, jul. 2014 Centro Universitário de Patos de Minas http://perquirere.unipam.edu.br Estudo de caso: aplicação das metodologias ágeis de desenvolvimento: Scrum e XP no desenvolvimento

Leia mais

Gerenciamento de Projetos de Software

Gerenciamento de Projetos de Software Gerenciamento de Projetos de Software Framework Ágil, Scrum Prof. Júlio Cesar da Silva Msc. 2º Encontro Ementa & Atividades Aula 1: Fundamentos do Gerenciamento de Projetos (p. 4) 30/abr (VISTO) Aula 2:

Leia mais

FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas. OpenUp. Arquitetura de software

FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas. OpenUp. Arquitetura de software FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas OpenUp Arquitetura de software Fortaleza/2010 OpenUP Alguns anos atrás, vários funcionários da IBM começaram

Leia mais

Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum

Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum Patrícia Bastos Girardi, Sulimar Prado, Andreia Sampaio Resumo Este trabalho tem como objetivo prover uma

Leia mais

ENGENHARIA DE SOFTWARE II. Modelos de Ciclo de Vida e Processos de Software AULA 2

ENGENHARIA DE SOFTWARE II. Modelos de Ciclo de Vida e Processos de Software AULA 2 ENGENHARIA DE SOFTWARE II Modelos de Ciclo de Vida e Processos de Software AULA 2 Sumário Motivação Conceitos de Processo de Desenvolvimento de Software Atividades que compõem os processos de desenvolvimento

Leia mais

Uma introdução ao SCRUM. Evandro João Agnes evandroagnes@yahoo.com.br

Uma introdução ao SCRUM. Evandro João Agnes evandroagnes@yahoo.com.br Uma introdução ao SCRUM Evandro João Agnes evandroagnes@yahoo.com.br Agenda Projetos de Software O que é Scrum Scrum framework Estrutura do Scrum Sprints Ferramentas Projetos de software Chaos Report Standish

Leia mais

Estudo sobre Desenvolvimento de Software Utilizando o Framework Ágil Scrum

Estudo sobre Desenvolvimento de Software Utilizando o Framework Ágil Scrum Estudo sobre Desenvolvimento de Software Utilizando o Framework Ágil Scrum Andre Scarmagnani 1, Fabricio C. Mota 1, Isaac da Silva 1, Matheus de C. Madalozzo 1, Regis S. Onishi 1, Luciano S. Cardoso 1

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Processos de software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Processo Um processo é uma série de etapas envolvendo actividades, restrições e

Leia mais

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira SCRUM Gerência de Projetos Ágil Prof. Elias Ferreira Métodos Ágeis + SCRUM + Introdução ao extreme Programming (XP) Manifesto Ágil Estamos descobrindo maneiras melhores de desenvolver software fazendo-o

Leia mais

SCRUM como metodologia de gestão de projetos da área administrativa Venturus: um case de sucesso RESUMO

SCRUM como metodologia de gestão de projetos da área administrativa Venturus: um case de sucesso RESUMO SCRUM como metodologia de gestão de projetos da área administrativa Venturus: um case de sucesso RESUMO Este artigo tem por objetivo apresentar a experiência do uso da metodologia Scrum para o gerenciamento

Leia mais

Metodologias Ágeis Extreme Programming e o Tratamento de Requisitos

Metodologias Ágeis Extreme Programming e o Tratamento de Requisitos Categoria de Assunto INFORMÁTICA ENGENHARIA DE SOFTWARE Título Metodologias Ágeis Extreme Programming e o Tratamento de Requisitos Autores Carlos Renato Rocha Bueno, 26, é analista de sistemas com 8 anos

Leia mais

TÍTULO: DESENVOLVIMENTO DE UMA FERRAMENTA WEB PARA O GERENCIAMENTO DE PROJETO DE SOFTWARE UTILIZANDO METODOLOGIAS ÁGEIS

TÍTULO: DESENVOLVIMENTO DE UMA FERRAMENTA WEB PARA O GERENCIAMENTO DE PROJETO DE SOFTWARE UTILIZANDO METODOLOGIAS ÁGEIS TÍTULO: DESENVOLVIMENTO DE UMA FERRAMENTA WEB PARA O GERENCIAMENTO DE PROJETO DE SOFTWARE UTILIZANDO METODOLOGIAS ÁGEIS CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA

Leia mais

Kanban na Fábrica de Software

Kanban na Fábrica de Software Kanban na Fábrica de Software Casimiro Beleze (UEM) casimirobeleze@hotmail.com Lafaiete H. R. Leme (UEM) lafaiete@din.uem.br Resumo: Este trabalho apresenta um enfoque diferenciado para o gerenciamento

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1141 Processo e qualidade de software I Prof. Me. Elias Ferreira Sala: 210 F Quarta-Feira:

Leia mais

Metodologia de Desenvolvimento de Sistemas (MDS - ANEEL)

Metodologia de Desenvolvimento de Sistemas (MDS - ANEEL) Metodologia de Desenvolvimento de Sistemas (MDS - ANEEL) Versão 2.0 Escritório de Gerenciamento de Projetos - EGP Superintendência da Gestão Técnica da Informação SGI Agência Nacional de Energia Elétrica

Leia mais

Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software

Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software Michel dos Santos Soares 1 1 Universidade Presidente Antônio Carlos, BR 482 Km 3, Gigante, Conselheiro Lafaiete, MG, Brasil

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

[Agile] Scrum + XP. Wagner Roberto dos Santos. Agilidade extrema. Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com. Globalcode open4education

[Agile] Scrum + XP. Wagner Roberto dos Santos. Agilidade extrema. Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com. Globalcode open4education [Agile] Scrum + XP Agilidade extrema Wagner Roberto dos Santos Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com 1 Apresentação Arquiteto Java EE / Scrum Master Lead Editor da Queue Arquitetura

Leia mais

Introdução Engenharia de Software

Introdução Engenharia de Software Introdução Engenharia de Software Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 EMENTA Parte 1 Conceitos de Engenharia de Software. Processo de desenvolvimento

Leia mais

ESTUDO DE CASO: SCRUM E PMBOK UNIDOS NO GERENCIAMENTO DE PROJETOS. contato@alinebrake.com.br. fs_moreira@yahoo.com.br. contato@marcelobrake.com.

ESTUDO DE CASO: SCRUM E PMBOK UNIDOS NO GERENCIAMENTO DE PROJETOS. contato@alinebrake.com.br. fs_moreira@yahoo.com.br. contato@marcelobrake.com. ESTUDO DE CASO: SCRUM E PMBOK UNIDOS NO GERENCIAMENTO DE PROJETOS (CASE STUDY: SCRUM AND PMBOK - STATES IN PROJECT MANAGEMENT) Aline Maria Sabião Brake 1, Fabrício Moreira 2, Marcelo Divaldo Brake 3, João

Leia mais

Com metodologias de desenvolvimento

Com metodologias de desenvolvimento Sociedade demanda grande quantidade de sistemas/aplicações software complexo, sistemas distribuídos, heterogêneos requisitos mutantes (todo ano, todo mês, todo dia) Mas, infelizmente, não há gente suficiente

Leia mais

METODOLOGIA ÁGIL. Lílian Simão Oliveira

METODOLOGIA ÁGIL. Lílian Simão Oliveira METODOLOGIA ÁGIL Lílian Simão Oliveira Fonte: Pressman, 2004 Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus Alexandre Amorin Por quê???? Principais Causas Uso das Funcionalidades Processos empírico

Leia mais

SCRUM. Desafios e benefícios trazidos pela implementação do método ágil SCRUM. Conhecimento em Tecnologia da Informação

SCRUM. Desafios e benefícios trazidos pela implementação do método ágil SCRUM. Conhecimento em Tecnologia da Informação Conhecimento em Tecnologia da Informação SCRUM Desafios e benefícios trazidos pela implementação do método ágil SCRUM 2011 Bridge Consulting Apresentação Há muitos anos, empresas e equipes de desenvolvimento

Leia mais

Daniel Wildt -dwildt@gmail.com

Daniel Wildt -dwildt@gmail.com Metodologias Ágeis e Software Livre Daniel Wildt -dwildt@gmail.com Bacharel em Informática (PUCRS) Professor Universitário (FACENSA) Mais de 10 anos de experiência em Desenvolvimento de Software, hoje

Leia mais

Análise de Escopo e Planejamento no Desenvolvimento de Software, sob a Perspectiva Ágil

Análise de Escopo e Planejamento no Desenvolvimento de Software, sob a Perspectiva Ágil Análise de Escopo e Planejamento no Desenvolvimento de Software, sob a Perspectiva Ágil Roberto Costa Araujo Orientador: Cristiano T. Galina Sistemas de Informação Universidade do Vale do Rio dos Sinos

Leia mais

Conheça as metodologias Scrum e Extreme Programming e quais as diferenças entre as metodologias tradicionais e ágeis

Conheça as metodologias Scrum e Extreme Programming e quais as diferenças entre as metodologias tradicionais e ágeis Processos Ágeis Aprenda o que são processos ágeis Conheça as metodologias Scrum e Extreme Programming e quais as diferenças entre as metodologias tradicionais e ágeis Leonardo Simas, Osias Carneiro, Vagner

Leia mais

Capítulo 1 - Introdução 14

Capítulo 1 - Introdução 14 1 Introdução Em seu livro Pressman [22] define processo de software como um arcabouço para as tarefas que são necessárias para construir software de alta qualidade. Assim, é-se levado a inferir que o sucesso

Leia mais

FireScrum: Ferramenta de apoio à gestão de projetos utilizando Scrum

FireScrum: Ferramenta de apoio à gestão de projetos utilizando Scrum C.E.S.A.R.EDU Unidade de Educação do Centro de Estudos e Sistemas Avançados do Recife Projeto de Dissertação de Mestrado FireScrum: Ferramenta de apoio à gestão de projetos utilizando Scrum Eric de Oliveira

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

3 Metodologia da Pesquisa 3.1. Tipo de Pesquisa

3 Metodologia da Pesquisa 3.1. Tipo de Pesquisa 3 Metodologia da Pesquisa 3.1. Tipo de Pesquisa Optou-se, neste estudo, pela pesquisa qualitativa. A pesquisa qualitativa busca entender um fenômeno específico em profundidade. Utilizando-se de questões

Leia mais

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO:

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO: MÉTRICAS PARA ESTIMATIVA DE SOFTWARES EM QUE SE APLICAM METODOLOGIA ÁGIL Juliana Cotta Ferreira RESUMO: A engenharia de software discute-se muito sobre métricas, devido à sua importância para acompanhar

Leia mais

Processo de Desenvolvimento de Software Scrum. Prof. Antonio Almeida de Barros Jr.

Processo de Desenvolvimento de Software Scrum. Prof. Antonio Almeida de Barros Jr. Processo de Desenvolvimento de Software Scrum Manifesto da Agilidade Quatro princípios Indivíduos e interações mais que processos e ferramentas Software funcionando mais que documentação compreensiva Colaboração

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

Workshop. Workshop SCRUM. Rildo F Santos. rildo.santos@etecnologia.com.br. Versão 1 Ago 2010 RFS. www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260

Workshop. Workshop SCRUM. Rildo F Santos. rildo.santos@etecnologia.com.br. Versão 1 Ago 2010 RFS. www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260 Workshop www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260 Rildo F Santos twitter: @rildosan skype: rildo.f.santos http://rildosan.blogspot.com/ Todos os direitos reservados e protegidos 2006 e 2010

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

ágeis para projetos desenvolvidos por fábrica de software

ágeis para projetos desenvolvidos por fábrica de software Uso de práticas ágeis para projetos desenvolvidos por fábrica de software Artur Mello artur.mello@pitang.com Uma empresa C.E.S.A.R Fábrica de Software O termo software factory foi empregado pela primeira

Leia mais

METODOLOGIAS DE DESENVOLVIMENTO ÁGEIS DE SOFTWARE SCRUM E EXTREME PROGRAMING AGILE SOFTWARE DEVELOPMENT METHODOLOGIES SCRUM AND EXTREME PROGRAMING

METODOLOGIAS DE DESENVOLVIMENTO ÁGEIS DE SOFTWARE SCRUM E EXTREME PROGRAMING AGILE SOFTWARE DEVELOPMENT METHODOLOGIES SCRUM AND EXTREME PROGRAMING METODOLOGIAS DE DESENVOLVIMENTO ÁGEIS DE SOFTWARE SCRUM E EXTREME PROGRAMING AGILE SOFTWARE DEVELOPMENT METHODOLOGIES SCRUM AND EXTREME PROGRAMING Marcio Francisco Nogueira * Mauro Zamaro ** RESUMO Este

Leia mais

Guia do Nexus. O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado. Desenvolvido e mantido por Ken Schwaber e Scrum.

Guia do Nexus. O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado. Desenvolvido e mantido por Ken Schwaber e Scrum. Guia do Nexus O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado Desenvolvido e mantido por Ken Schwaber e Scrum.org Tabela de Conteúdo Visão Geral do Nexus... 2 O Propósito

Leia mais

CRIANDO UM PROCESSO ÁGIL PARA DESENVOLVIMENTO DE SOFTWARE

CRIANDO UM PROCESSO ÁGIL PARA DESENVOLVIMENTO DE SOFTWARE CRIANDO UM PROCESSO ÁGIL PARA DESENVOLVIMENTO DE SOFTWARE CONTEÚDO 1.Introdução...2 2.Gestão Ágil...2 1.1 Metodologias...2 1.2 Começando um projeto...3 Planejamento Inicial...3 Desenvolvimento...6 Motivação

Leia mais

um framework para desenvolver produtos complexos em ambientes complexos Rafael Sabbagh, CSM, CSP Marcos Garrido, CSPO

um framework para desenvolver produtos complexos em ambientes complexos Rafael Sabbagh, CSM, CSP Marcos Garrido, CSPO um framework para desenvolver produtos complexos em ambientes complexos Rafael Sabbagh, CSM, CSP Marcos Garrido, CSPO Um pouco de história... Década de 50: a gestão de projetos é reconhecida como disciplina,

Leia mais

METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL

METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL Guilherme Vota Pereira guivotap@hotmail.com Prof. Pablo Schoeffel, Engenharia de Software Aplicada RESUMO: Este artigo irá efetuar uma abordagem

Leia mais

ENG1000 Introdução à Engenharia

ENG1000 Introdução à Engenharia ENG1000 Introdução à Engenharia Aula 01 Processo de Desenvolvimento de Software Edirlei Soares de Lima Processo de Software O processo de software consiste em um conjunto estruturado

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais