SlideShare uma empresa Scribd logo
ISBN 978-85-62830-10-5 
VII CONNEPI©2012 
Ludmila Varela Arruda1 
1Aluna do Curso de Engenharia Telecomunicações – IFCE. e-mail: ludmila_varela@ifce.edu.br 
DESENVOLVIMENTO ÁGIL DE SOFTWARE: UMA ANÁLISE SINTÉTICA A PARTIR DA METODOLOGIA KANBAN 
Resumo: Diante da real complexidade encontrada no processo de desenvolvimento de um software, diversas metodologias foram criadas a fim de solucionar tal problema. As que mais tem se destacado são as ágeis, que contemplam ideias mais próximas à realidade dos clientes e empresas e que, portanto, tem adquirido um forte espaço no mercado. A meta desse artigo é situar os leitores contexto dos processos de software e seus métodos, apresentando as sugestões oferecidas por mais um desses procedimentos, que é o Kanban, com o propósito de difundi-lo. Quanto maior o conhecimento sobre as metodologias de elaboração e acompanhamento de um sistema, melhor será a análise fim encontrar uma que seja mais apropriada para o ambiente do projeto que se deseja desenvolver. O kanban, por sua vez, engloba características e estratégias simples que tem atendido de forma satisfatória muitas organizações, na atualidade. 
Abstract: Given the complexity found in real development process of software, various methodologies have been created to solve this problem. Those most outstanding are the agile ideas that come closer to reality of companies and customers and, therefore, has acquired a strong market share. The goal this paper is to situate the reader in context of software processes and methods, with suggestions offered by most of these procedures, which is the Kanban, in order to spread it. The greater knowledge about methods of preparing and monitoring a system, becomes most easy to analise in order find one that is appropriate for the project environment you want to develop. The kanban, in turn, includes features and simple strategies that satisfy many companies today. 
Palavras-chave: agilidade, desenvolvimento de software, kanban, metodologias, sistema Toyota de produção 
1. PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 
Construir um software que seja usável e atenda às necessidades de determinado cliente não é uma tarefa simples. A maioria dos sistemas desenvolvidos hoje, no final do processo, não tem todas as suas funcionalidades em uso ou sequer entram em produção. 
Ao longo dos anos, os estudiosos da área de Engenharia Software tentam aperfeiçoar esse processo, de maneira que o software possa colaborar concretamente com usuário final. Esse é objetivo da automatização das atividades. 
Cada fase desse processo possui suas particularidades, bem como as dificuldades de execução. Estas estão descritas abaixo: 
a) Análise e Levantamento de Requisitos: Essa etapa define quais são os problemas enfrentados pelos usuários do futuro sistema e quais as soluções desejos que os mesmos pretendem adquirir. É importante que todo o ambiente do problema seja analisado, a fim de estudar quais são as reais necessidades. Normalmente, os requisitos, se não forem detalhados com clareza, trazem complicações durante todas as outras fases e comprometem os resultados. É também considerada a etapa mais relevante. 
b) Projeto: Após a fase de análise, os requisitos precisam ser traduzidos para linguagem
ISBN 978-85-62830-10-5 
VII CONNEPI©2012 
computacional, seja qual for a tecnologia utilizada. Assim, os dados devem ser estruturados e a arquitetura do sistema deve ser montada. Ou seja, algumas diretrizes são cumpridas, como a definição de hardware básico, sistema operacional, interfaces, linguagem programação etc. Entretanto, essa representação é abstrata, por enquanto. “O processo de projeto pode envolver o desenvolvimento de vários modelos do sistema em diferentes níveis abstração.” (SOMMERVILLE, 2010, 8 ed, p. 50). 
c) Implementação ou Codificação: É nesta etapa onde a especificação será convertida em um sistema executável (torna-se possível a compilação e geração de código). Aqui se concentra o objetivo da Engenharia de Software, o que não quer dizer detenha a maior importância. Seja forma interativa ou incremental, o código vai apresentando mudanças e evoluções ao longo do tempo, o que concede forma ao sistema como um todo. 
d) Teste e Validação: Depois que o software é codificado, necessário sejam realizados diversos testes (funcionais e não funcionais) para certificar-se que os requisitos especificados pelo cliente foram atendidos. Essa fase deve ser contemplada durante todo o processo de desenvolvimento, visto que, quanto mais cedo os erros são descobertos, facilmente estes corrigidos. O grande número de falhas encontradas em um sistema tem sido uma das maiores dificuldades das equipes que constroem software atualmente. Logo, essa etapa caracteriza um dos principais alvos da Engenharia de software, que é a qualidade. 
e) Manutenção: Entregar o produto devidamente testado não significa a conclusão do trabalho no processo. O código deve ser implementado visando mudanças posteriores, portanto, ele manutenível. Mesmo depois de “pronto”, novos requisitos podem surgir e o sistema deve estar preparado para recebê-los. 
Figura 1: Fases do modelo de Desenvolvimento Clássico 
Fonte: Adaptado de Sommerville (2003) 
A figura 1 sintetiza o processo de desenvolvimento que foi descrito através da definição suas fases. Mesmo com os inúmeros estudos realizados nessa área, a implementação de softwares ainda é uma atividade custosa e delicada. 
2. METODOLOGIAS DE DESENVOLVIMENTO ÁGIL
ISBN 978-85-62830-10-5 
VII CONNEPI©2012 
Levando em consideração a dificuldade de desenvolver um sistema, muitas metodologias foram criadas, melhoradas e adaptadas com o objetivo de solucionar esse impasse. O dicionário [WEBSTERS, 1998] define metodologia como um conjunto de métodos, regras e postulados empregados por uma disciplina: um procedimento particular ou conjuntos de procedimentos. Portanto, a maioria das empresas utilizam esses recursos para melhorar seus resultados. 
Temos como exemplo algumas das principais metodologias aplicadas atualmente: Scrum, XP (Extreme Programming), RUP Rational Unified Process), Kanban, FDD Feature Driven Development), entre outras. Contudo, o conjunto de regras que vem sendo implantado com força maior e que tem evoluído consideravelmente chama-se “Metodologias Ágeis de Software” ou simplesmente “Agilidade”, onde está o foco do estudo desse artigo. 
Mas, o que vem a ser agilidade? No mundo da Engenharia de Software, este termo nada tem a ver com rapidez na entrega de artefatos, como muitos pensam. Na verdade, trata-se de tentar amenizar os riscos de desenvolvimento através curtas interações. Interações são intervalos reduzidos de tempo, nos quais determinadas funcionalidades do sistema serão desenvolvidas. Quando conseguimos organizar certo número de atividades em um período tempo, torna-se mais facilitada a construção do software, além cliente poder ter acesso livre e rápido ao que está sendo implementado. É como pensarmos em todas as fases descritas no processo de desenvolvimento software acontecendo em vários ciclos de tempo. Os requisitos são analisados e descritos, a arquitetura é planejada, o código feito, os testes são realizados e uma parte do sistema é entregue. Depois, novamente os requisitos são analisados, a arquitetura é replanejada e assim por diante. 
Esse termo “Metodologias Ágeis” surgiu a partir da criação do Manifesto Ágil, um documento que tem como conceitos principais: 
- Indivíduos e interações ao invés de processos ferramentas; 
- Software executável ao invés de documentação; 
- Colaboração do cliente ao invés de negociação contratos; 
- Respostas rápidas a mudanças ao invés de seguir planos. 
As ferramentas, documentações, contratos, por exemplo, não foram excluídos do processo, mas já não recebem tanta importância como em outras metodologias. O foco da agilidade está nas pessoas, nas interações, no sistema, na participação do cliente.
ISBN 978-85-62830-10-5 
VII CONNEPI©2012 
Figura 2: Princípios Ágeis 
Fonte: http://ebookbrowse.com/pbjug-tech-day-processos-de-desenvolvimento-de-software-pdf-d296232956 
Embora seja notável a difusão dos métodos ágeis, isso não indica que as metodologias tradicionais não funcionem. Porém, a estrutura física e organizacional das empresas atuais tem dado preferência à agilidade, por esta se comportar de forma positiva quanto aos requisitos que estão sempre emergindo, aos projetos com um número de pessoas pequeno, ambientes baixa criticidade etc. Dentro desse contexto, umas das metodologias que ganhou grande destaque nos últimos anos foi o Scrum, que se relaciona com conceitos da Engenharia e não possui regras específicas para a fase de desenvolvimento. 
A partir dessa metodologia, outra tem assumido grande valor no mercado, o Kanban, que é o objeto de estudo desse trabalho. 
3. DESENVOLVIMENTO ÁGIL COM KANBAN 
Primeiramente, o que é kanban? Partindo do princípio se trata de mais uma metodologia ágil de desenvolvimento, qual o seu diferencial? “Kanban é um método de desenvolvimento software com fortes bases em práticas Lean, e que tem como objetivo aperfeiçoar o processo de desenvolvimento de software pré-existente. Este método limita o trabalho em progresso, apresentando a evolução de forma visual, tornando os problemas evidentes e cultivando uma cultura de melhoria contínua.” (GOMES, André. Desenvolvimento Ágil com kanban. Java magazine, 84, pg. 1). 
As práticas Lean ou Sistema Toyota de produção, como são mais conhecidas, caracterizam a estrutura do kanban. No passado, as indústrias utilizavam o sistema de produção que conhecemos como “produção empurrada”, onde uma atividade era executada, tendo seu resultado “empurrado” para a atividade posterior. Logo, não existia relação entre as atividades produzidas e demanda do cliente. Com o Sistema Toyota ou produção “puxada”, processo passou a ser diferente. Cada atividade executada dependia da demanda atividade anteriormente. 
Esse sistema tem como princípio eliminar todo e qualquer tipo de desperdício, além ter como primícia o modelo de Just in time, qual determina que exista um momento adequado para cada fase do desenvolvimento. Nada deve ser feito sem que esteja no tempo apropriado e seja necessário. 
Trazendo esses conceitos para o processo de desenvolvimento software, trabalho construir uma nova funcionalidade para um sistema só é gerado a partir do momento que uma funcionalidade anterior já tenha sido implementada. O kanban, dentro desse contexto, procura aperfeiçoar os processos, as equipes e projetos. É útil para empresas que estão procurando melhorar constantemente, ao passo que melhoram também sua produtividade e relação com os clientes. “Esse método começou a crescer após sua adoção na conferência Agile, em agosto de 2007. Sua primeira aplicação para Engenharia de Software foi na empresa Microsoft em 2004”. (ANDERSON, David. Kanban: Successful Evolutionary Change for Your Technology Business, cap.2). 
O principal objetivo dessa metodologia é avaliar o trabalho em progresso, chamado WIP (Work in Progress). Essa avaliação tem a proposta de mostrar quando uma funcionalidade do software pode ser arquitetada, codificada, testada etc. Mas quando se percebe que mais trabalho pode ser “puxado”? Ou seja, quando se percebe que outras atividades já podem desenvolvidas
ISBN 978-85-62830-10-5 
VII CONNEPI©2012 
pela equipe? 
A demonstração vem pela visualização. O kanban, como o próprio nome diz, é uma palavra japonesa que significa “cartão sinalizador”. Através do quadro de atividades, é possível perceber qual a quantidade de esforço que poderá ser adicionada. É importante lembrar que, para isso, é preciso também levar em consideração a indicação de limite e capacidade da equipe do software que está sendo desenvolvido. Algumas das empresas que implantam essa metodologia possuem um quadro com espaços que indicam a capacidade. 
As vantagens encontradas para adotar o kanban são grandes. A equipe pode fazer entregas a qualquer instante para o cliente e mesmo pode modificar a importância das atividades quando desejar. O desenvolvimento fica mais transparente, já que é possível visualizar o fluxo de trabalho, sem preocupações com as iterações e estimativas, como em outros métodos. Caso isso seja relevante para um projeto, no qual o foco vai estar na implementação do produto ou que tenha a necessidade de ter papéis bem definidos, não é indicada a aplicação do kanban. 
A figura a seguir retrata a definição de uma ferramenta que auxilia implantação desse método. Com um quadro simples e cartões, pode-se criar um controle de fluxo atividades. 
Figura 3: Quadro ilustrativo 
Fonte: http://www.devmedia.com.br/desenvolvimento-agil-com-kanban-java-magazine-84/18235 
Para começar, é importante mapear o que mais prioritário dentro do software, estabelecendo pontos estratégicos, definindo o trabalho que deverá estar em progresso e montando a estrutura visual que facilitará o acompanhamento. 
4. CONCLUSÕES 
A dificuldade de desenvolver um software que seja utilizável tem sido amenizada com os novos conceitos e soluções propostas pelas metodologias ágeis. O kanban, alvo desse estudo, tem esse foco. Quando o cliente pode definir a prioridade das atividades e mudá-la a qualquer momento, sua satisfação é maior. Quando a equipe pode acompanhar o fluxo de todas as atividades do processo, podendo também controlar o trabalho que está em progresso, esta trabalha de forma mais produtiva e com qualidade. Objetivos são traçados a simplicidade torna-se lei no desenvolvimento do projeto, o que traz como retorno grandes facilidades para todos. Além disso, o
ISBN 978-85-62830-10-5 
VII CONNEPI©2012 
kanban pode ser combinado com outros métodos, bem como adaptado de acordo a realidade da empresa. Não existe uma metodologia padrão a ser adotada em um projeto, que seja mais favorável à sua necessidade. 
5. REFERÊNCIAS BIBLIOGRÁFICAS 
ALMEIDA, Rodrigo. Processos de Desenvolvimento Software. PBJUG, 2012. http://ebookbrowse.com/pbjug-tech-day-processos-de-desenvolvimento-de-software-pdf- d296232956. Data de acesso: 12/06/2012; 
BASTOS, Aderson et al. Base de conhecimento em teste software. 2ª edição. São Paulo: Martins Editora, 2007; 
GOMES, André. Desenvolvimento Ágil com kanban. Java magazine, 84. http://www.devmedia.com.br/desenvolvimento-agil-com-kanban-java-magazine-84/18235. Data de acesso: 10/06/2012; 
Manifesto Ágil de Software, 2012. http://www.agilealliance.org/. Data de acesso: 20/06/2012. 
SOMMERVILLE, Ian. Engenharia de Software. 8ª edição. São Paulo: Pearson, 2010; 
ANDERSON, David. Kanban: Successful Evolutionary Change for Your Technology Business. United States, 2010; 
LADAS, Corey. Scrumban - Essays on Kanban Systems for Lean Software Development. United States: Modus Cooperandi, 2008.

Mais conteúdo relacionado

Mais procurados

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
Cris Fidelix
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
Ruan Pozzebon
 
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
 
Plano de projeto de software
Plano de projeto de softwarePlano de projeto de software
Plano de projeto de software
Sigelman Araujo
 
Requisitos Ágeis
Requisitos ÁgeisRequisitos Ágeis
Requisitos Ágeis
André Faria Gomes
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
Wagner Zaparoli
 
Introdução à Iniciação de Projetos de Software
Introdução à Iniciação de Projetos de SoftwareIntrodução à Iniciação de Projetos de Software
Introdução à Iniciação de Projetos de Software
Camilo Almendra
 
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
vanessa finoto
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos Ágeis
Daniel Ferreira
 
Requisitos Ágeis um novo mindset
Requisitos Ágeis um novo mindsetRequisitos Ágeis um novo mindset
Requisitos Ágeis um novo mindset
Fábio Aguiar
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
Facuuldade Norte Sul
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
Aragon Vieira
 
Gestão de Projetos Hibrida
Gestão de Projetos HibridaGestão de Projetos Hibrida
Gestão de Projetos Hibrida
Aragon Vieira
 
Metodologias Ágeis em Gerenciamento de Projetos
Metodologias Ágeis em Gerenciamento de ProjetosMetodologias Ágeis em Gerenciamento de Projetos
Metodologias Ágeis em Gerenciamento de Projetos
Daniel de Amaral
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
elliando dias
 
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL GPROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
jrnavarro
 
Artigo Metodologia ágil: Scrum
Artigo  Metodologia ágil: ScrumArtigo  Metodologia ágil: Scrum
Artigo Metodologia ágil: Scrum
Bruno Teixeira
 
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
Gabriela Giacomini
 
Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando ScrumGerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
Raphael Donaire Albino
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcp
Frank Coelho
 

Mais procurados (20)

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 trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 
Plano de projeto de software
Plano de projeto de softwarePlano de projeto de software
Plano de projeto de software
 
Requisitos Ágeis
Requisitos ÁgeisRequisitos Ágeis
Requisitos Ágeis
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Introdução à Iniciação de Projetos de Software
Introdução à Iniciação de Projetos de SoftwareIntrodução à Iniciação de Projetos de Software
Introdução à Iniciação de Projetos de Software
 
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
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos Ágeis
 
Requisitos Ágeis um novo mindset
Requisitos Ágeis um novo mindsetRequisitos Ágeis um novo mindset
Requisitos Ágeis um novo mindset
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Gestão de Projetos Hibrida
Gestão de Projetos HibridaGestão de Projetos Hibrida
Gestão de Projetos Hibrida
 
Metodologias Ágeis em Gerenciamento de Projetos
Metodologias Ágeis em Gerenciamento de ProjetosMetodologias Ágeis em Gerenciamento de Projetos
Metodologias Ágeis em Gerenciamento de Projetos
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL GPROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
 
Artigo Metodologia ágil: Scrum
Artigo  Metodologia ágil: ScrumArtigo  Metodologia ágil: Scrum
Artigo Metodologia ágil: Scrum
 
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
 
Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando ScrumGerenciando Projetos De Software De Forma áGil Utilizando Scrum
Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcp
 

Semelhante a Desenvolvimento ágil de software: análise sintética a partir de KANBAN

Processos de software
Processos de softwareProcessos de software
Processos de software
Dann Volpato
 
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
Kéllyson Gonçalves da Silva
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
Concurseiro Área de TI
 
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
Kéllyson Gonçalves da Silva
 
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
André Luis Celestino
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
Nécio de Lima Veras
 
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
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
Annkatlover
 
Processos de software
Processos de softwareProcessos de software
Processos de software
Computação Depressão
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
Carlos Henrique Martins da Silva
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
Paulo Ricardo Dalmagro Vinck
 
O uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de softwareO uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de software
Everton vitor
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
GrupoAlves - professor
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
Athena542429
 
O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...
O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...
O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...
Ivo M Michalick Vasconcelos, PMP, PMI-SP, CPCC
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis
 
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
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Rebecca Betwel
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
Alan Carlos
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
wilsonguns
 

Semelhante a Desenvolvimento ágil de software: análise sintética a partir de KANBAN (20)

Processos de software
Processos de softwareProcessos de software
Processos de software
 
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
 
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
Desenvolvimento Ágil: um survey baseado em experiências profissionais @ CONIC...
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
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"
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
O uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de softwareO uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de software
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
 
O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...
O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...
O Gerenciamento de Projetos de Software Desenvolvidos à Luz das Metodologias ...
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
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...
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 

Mais de Fernando Palma

CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves | C...
CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves |  C...CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves |  C...
CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves | C...
Fernando Palma
 
Formação em ciência de dados
Formação em ciência de dadosFormação em ciência de dados
Formação em ciência de dados
Fernando Palma
 
Apostila de Introdução ao Arduino
Apostila de Introdução ao ArduinoApostila de Introdução ao Arduino
Apostila de Introdução ao Arduino
Fernando Palma
 
Apostila Arduino Basico
Apostila Arduino BasicoApostila Arduino Basico
Apostila Arduino Basico
Fernando Palma
 
Cartilha Segurança na Internet - CERT.br
Cartilha Segurança na Internet - CERT.brCartilha Segurança na Internet - CERT.br
Cartilha Segurança na Internet - CERT.br
Fernando Palma
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
Fernando Palma
 
Apostila Zend Framework
Apostila Zend FrameworkApostila Zend Framework
Apostila Zend Framework
Fernando Palma
 
Hacker Ético
Hacker ÉticoHacker Ético
Hacker Ético
Fernando Palma
 
Ebook Governança de TI na Prática
Ebook Governança de TI na PráticaEbook Governança de TI na Prática
Ebook Governança de TI na Prática
Fernando Palma
 
Simulado ITIL Foundation - Questões Comentadas
Simulado ITIL Foundation - Questões ComentadasSimulado ITIL Foundation - Questões Comentadas
Simulado ITIL Foundation - Questões Comentadas
Fernando Palma
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de Máquina
Fernando Palma
 
PDTI - Plano Diretor de Tecnologia da Informação (modelo)
PDTI - Plano Diretor de Tecnologia da Informação (modelo)PDTI - Plano Diretor de Tecnologia da Informação (modelo)
PDTI - Plano Diretor de Tecnologia da Informação (modelo)
Fernando Palma
 
Guia Salarial 2017 Robert Half Brasil
Guia Salarial 2017 Robert Half BrasilGuia Salarial 2017 Robert Half Brasil
Guia Salarial 2017 Robert Half Brasil
Fernando Palma
 
Tutorial memcached
Tutorial memcachedTutorial memcached
Tutorial memcached
Fernando Palma
 
Gerenciamento na nuvem e System Center
Gerenciamento na nuvem e System CenterGerenciamento na nuvem e System Center
Gerenciamento na nuvem e System Center
Fernando Palma
 
SAN: Storage Area Network
SAN: Storage Area NetworkSAN: Storage Area Network
SAN: Storage Area Network
Fernando Palma
 
Linguagem ABAP
Linguagem ABAPLinguagem ABAP
Linguagem ABAP
Fernando Palma
 
Ebook ITIL Na Prática
Ebook ITIL Na PráticaEbook ITIL Na Prática
Ebook ITIL Na Prática
Fernando Palma
 
Exemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MECExemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MEC
Fernando Palma
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHP
Fernando Palma
 

Mais de Fernando Palma (20)

CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves | C...
CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves |  C...CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves |  C...
CRM Gerenciamento Do Relacionamento Com Clientes | Prof. Francisco Alves | C...
 
Formação em ciência de dados
Formação em ciência de dadosFormação em ciência de dados
Formação em ciência de dados
 
Apostila de Introdução ao Arduino
Apostila de Introdução ao ArduinoApostila de Introdução ao Arduino
Apostila de Introdução ao Arduino
 
Apostila Arduino Basico
Apostila Arduino BasicoApostila Arduino Basico
Apostila Arduino Basico
 
Cartilha Segurança na Internet - CERT.br
Cartilha Segurança na Internet - CERT.brCartilha Segurança na Internet - CERT.br
Cartilha Segurança na Internet - CERT.br
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
Apostila Zend Framework
Apostila Zend FrameworkApostila Zend Framework
Apostila Zend Framework
 
Hacker Ético
Hacker ÉticoHacker Ético
Hacker Ético
 
Ebook Governança de TI na Prática
Ebook Governança de TI na PráticaEbook Governança de TI na Prática
Ebook Governança de TI na Prática
 
Simulado ITIL Foundation - Questões Comentadas
Simulado ITIL Foundation - Questões ComentadasSimulado ITIL Foundation - Questões Comentadas
Simulado ITIL Foundation - Questões Comentadas
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de Máquina
 
PDTI - Plano Diretor de Tecnologia da Informação (modelo)
PDTI - Plano Diretor de Tecnologia da Informação (modelo)PDTI - Plano Diretor de Tecnologia da Informação (modelo)
PDTI - Plano Diretor de Tecnologia da Informação (modelo)
 
Guia Salarial 2017 Robert Half Brasil
Guia Salarial 2017 Robert Half BrasilGuia Salarial 2017 Robert Half Brasil
Guia Salarial 2017 Robert Half Brasil
 
Tutorial memcached
Tutorial memcachedTutorial memcached
Tutorial memcached
 
Gerenciamento na nuvem e System Center
Gerenciamento na nuvem e System CenterGerenciamento na nuvem e System Center
Gerenciamento na nuvem e System Center
 
SAN: Storage Area Network
SAN: Storage Area NetworkSAN: Storage Area Network
SAN: Storage Area Network
 
Linguagem ABAP
Linguagem ABAPLinguagem ABAP
Linguagem ABAP
 
Ebook ITIL Na Prática
Ebook ITIL Na PráticaEbook ITIL Na Prática
Ebook ITIL Na Prática
 
Exemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MECExemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MEC
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHP
 

Desenvolvimento ágil de software: análise sintética a partir de KANBAN

  • 1. ISBN 978-85-62830-10-5 VII CONNEPI©2012 Ludmila Varela Arruda1 1Aluna do Curso de Engenharia Telecomunicações – IFCE. e-mail: ludmila_varela@ifce.edu.br DESENVOLVIMENTO ÁGIL DE SOFTWARE: UMA ANÁLISE SINTÉTICA A PARTIR DA METODOLOGIA KANBAN Resumo: Diante da real complexidade encontrada no processo de desenvolvimento de um software, diversas metodologias foram criadas a fim de solucionar tal problema. As que mais tem se destacado são as ágeis, que contemplam ideias mais próximas à realidade dos clientes e empresas e que, portanto, tem adquirido um forte espaço no mercado. A meta desse artigo é situar os leitores contexto dos processos de software e seus métodos, apresentando as sugestões oferecidas por mais um desses procedimentos, que é o Kanban, com o propósito de difundi-lo. Quanto maior o conhecimento sobre as metodologias de elaboração e acompanhamento de um sistema, melhor será a análise fim encontrar uma que seja mais apropriada para o ambiente do projeto que se deseja desenvolver. O kanban, por sua vez, engloba características e estratégias simples que tem atendido de forma satisfatória muitas organizações, na atualidade. Abstract: Given the complexity found in real development process of software, various methodologies have been created to solve this problem. Those most outstanding are the agile ideas that come closer to reality of companies and customers and, therefore, has acquired a strong market share. The goal this paper is to situate the reader in context of software processes and methods, with suggestions offered by most of these procedures, which is the Kanban, in order to spread it. The greater knowledge about methods of preparing and monitoring a system, becomes most easy to analise in order find one that is appropriate for the project environment you want to develop. The kanban, in turn, includes features and simple strategies that satisfy many companies today. Palavras-chave: agilidade, desenvolvimento de software, kanban, metodologias, sistema Toyota de produção 1. PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Construir um software que seja usável e atenda às necessidades de determinado cliente não é uma tarefa simples. A maioria dos sistemas desenvolvidos hoje, no final do processo, não tem todas as suas funcionalidades em uso ou sequer entram em produção. Ao longo dos anos, os estudiosos da área de Engenharia Software tentam aperfeiçoar esse processo, de maneira que o software possa colaborar concretamente com usuário final. Esse é objetivo da automatização das atividades. Cada fase desse processo possui suas particularidades, bem como as dificuldades de execução. Estas estão descritas abaixo: a) Análise e Levantamento de Requisitos: Essa etapa define quais são os problemas enfrentados pelos usuários do futuro sistema e quais as soluções desejos que os mesmos pretendem adquirir. É importante que todo o ambiente do problema seja analisado, a fim de estudar quais são as reais necessidades. Normalmente, os requisitos, se não forem detalhados com clareza, trazem complicações durante todas as outras fases e comprometem os resultados. É também considerada a etapa mais relevante. b) Projeto: Após a fase de análise, os requisitos precisam ser traduzidos para linguagem
  • 2. ISBN 978-85-62830-10-5 VII CONNEPI©2012 computacional, seja qual for a tecnologia utilizada. Assim, os dados devem ser estruturados e a arquitetura do sistema deve ser montada. Ou seja, algumas diretrizes são cumpridas, como a definição de hardware básico, sistema operacional, interfaces, linguagem programação etc. Entretanto, essa representação é abstrata, por enquanto. “O processo de projeto pode envolver o desenvolvimento de vários modelos do sistema em diferentes níveis abstração.” (SOMMERVILLE, 2010, 8 ed, p. 50). c) Implementação ou Codificação: É nesta etapa onde a especificação será convertida em um sistema executável (torna-se possível a compilação e geração de código). Aqui se concentra o objetivo da Engenharia de Software, o que não quer dizer detenha a maior importância. Seja forma interativa ou incremental, o código vai apresentando mudanças e evoluções ao longo do tempo, o que concede forma ao sistema como um todo. d) Teste e Validação: Depois que o software é codificado, necessário sejam realizados diversos testes (funcionais e não funcionais) para certificar-se que os requisitos especificados pelo cliente foram atendidos. Essa fase deve ser contemplada durante todo o processo de desenvolvimento, visto que, quanto mais cedo os erros são descobertos, facilmente estes corrigidos. O grande número de falhas encontradas em um sistema tem sido uma das maiores dificuldades das equipes que constroem software atualmente. Logo, essa etapa caracteriza um dos principais alvos da Engenharia de software, que é a qualidade. e) Manutenção: Entregar o produto devidamente testado não significa a conclusão do trabalho no processo. O código deve ser implementado visando mudanças posteriores, portanto, ele manutenível. Mesmo depois de “pronto”, novos requisitos podem surgir e o sistema deve estar preparado para recebê-los. Figura 1: Fases do modelo de Desenvolvimento Clássico Fonte: Adaptado de Sommerville (2003) A figura 1 sintetiza o processo de desenvolvimento que foi descrito através da definição suas fases. Mesmo com os inúmeros estudos realizados nessa área, a implementação de softwares ainda é uma atividade custosa e delicada. 2. METODOLOGIAS DE DESENVOLVIMENTO ÁGIL
  • 3. ISBN 978-85-62830-10-5 VII CONNEPI©2012 Levando em consideração a dificuldade de desenvolver um sistema, muitas metodologias foram criadas, melhoradas e adaptadas com o objetivo de solucionar esse impasse. O dicionário [WEBSTERS, 1998] define metodologia como um conjunto de métodos, regras e postulados empregados por uma disciplina: um procedimento particular ou conjuntos de procedimentos. Portanto, a maioria das empresas utilizam esses recursos para melhorar seus resultados. Temos como exemplo algumas das principais metodologias aplicadas atualmente: Scrum, XP (Extreme Programming), RUP Rational Unified Process), Kanban, FDD Feature Driven Development), entre outras. Contudo, o conjunto de regras que vem sendo implantado com força maior e que tem evoluído consideravelmente chama-se “Metodologias Ágeis de Software” ou simplesmente “Agilidade”, onde está o foco do estudo desse artigo. Mas, o que vem a ser agilidade? No mundo da Engenharia de Software, este termo nada tem a ver com rapidez na entrega de artefatos, como muitos pensam. Na verdade, trata-se de tentar amenizar os riscos de desenvolvimento através curtas interações. Interações são intervalos reduzidos de tempo, nos quais determinadas funcionalidades do sistema serão desenvolvidas. Quando conseguimos organizar certo número de atividades em um período tempo, torna-se mais facilitada a construção do software, além cliente poder ter acesso livre e rápido ao que está sendo implementado. É como pensarmos em todas as fases descritas no processo de desenvolvimento software acontecendo em vários ciclos de tempo. Os requisitos são analisados e descritos, a arquitetura é planejada, o código feito, os testes são realizados e uma parte do sistema é entregue. Depois, novamente os requisitos são analisados, a arquitetura é replanejada e assim por diante. Esse termo “Metodologias Ágeis” surgiu a partir da criação do Manifesto Ágil, um documento que tem como conceitos principais: - Indivíduos e interações ao invés de processos ferramentas; - Software executável ao invés de documentação; - Colaboração do cliente ao invés de negociação contratos; - Respostas rápidas a mudanças ao invés de seguir planos. As ferramentas, documentações, contratos, por exemplo, não foram excluídos do processo, mas já não recebem tanta importância como em outras metodologias. O foco da agilidade está nas pessoas, nas interações, no sistema, na participação do cliente.
  • 4. ISBN 978-85-62830-10-5 VII CONNEPI©2012 Figura 2: Princípios Ágeis Fonte: http://ebookbrowse.com/pbjug-tech-day-processos-de-desenvolvimento-de-software-pdf-d296232956 Embora seja notável a difusão dos métodos ágeis, isso não indica que as metodologias tradicionais não funcionem. Porém, a estrutura física e organizacional das empresas atuais tem dado preferência à agilidade, por esta se comportar de forma positiva quanto aos requisitos que estão sempre emergindo, aos projetos com um número de pessoas pequeno, ambientes baixa criticidade etc. Dentro desse contexto, umas das metodologias que ganhou grande destaque nos últimos anos foi o Scrum, que se relaciona com conceitos da Engenharia e não possui regras específicas para a fase de desenvolvimento. A partir dessa metodologia, outra tem assumido grande valor no mercado, o Kanban, que é o objeto de estudo desse trabalho. 3. DESENVOLVIMENTO ÁGIL COM KANBAN Primeiramente, o que é kanban? Partindo do princípio se trata de mais uma metodologia ágil de desenvolvimento, qual o seu diferencial? “Kanban é um método de desenvolvimento software com fortes bases em práticas Lean, e que tem como objetivo aperfeiçoar o processo de desenvolvimento de software pré-existente. Este método limita o trabalho em progresso, apresentando a evolução de forma visual, tornando os problemas evidentes e cultivando uma cultura de melhoria contínua.” (GOMES, André. Desenvolvimento Ágil com kanban. Java magazine, 84, pg. 1). As práticas Lean ou Sistema Toyota de produção, como são mais conhecidas, caracterizam a estrutura do kanban. No passado, as indústrias utilizavam o sistema de produção que conhecemos como “produção empurrada”, onde uma atividade era executada, tendo seu resultado “empurrado” para a atividade posterior. Logo, não existia relação entre as atividades produzidas e demanda do cliente. Com o Sistema Toyota ou produção “puxada”, processo passou a ser diferente. Cada atividade executada dependia da demanda atividade anteriormente. Esse sistema tem como princípio eliminar todo e qualquer tipo de desperdício, além ter como primícia o modelo de Just in time, qual determina que exista um momento adequado para cada fase do desenvolvimento. Nada deve ser feito sem que esteja no tempo apropriado e seja necessário. Trazendo esses conceitos para o processo de desenvolvimento software, trabalho construir uma nova funcionalidade para um sistema só é gerado a partir do momento que uma funcionalidade anterior já tenha sido implementada. O kanban, dentro desse contexto, procura aperfeiçoar os processos, as equipes e projetos. É útil para empresas que estão procurando melhorar constantemente, ao passo que melhoram também sua produtividade e relação com os clientes. “Esse método começou a crescer após sua adoção na conferência Agile, em agosto de 2007. Sua primeira aplicação para Engenharia de Software foi na empresa Microsoft em 2004”. (ANDERSON, David. Kanban: Successful Evolutionary Change for Your Technology Business, cap.2). O principal objetivo dessa metodologia é avaliar o trabalho em progresso, chamado WIP (Work in Progress). Essa avaliação tem a proposta de mostrar quando uma funcionalidade do software pode ser arquitetada, codificada, testada etc. Mas quando se percebe que mais trabalho pode ser “puxado”? Ou seja, quando se percebe que outras atividades já podem desenvolvidas
  • 5. ISBN 978-85-62830-10-5 VII CONNEPI©2012 pela equipe? A demonstração vem pela visualização. O kanban, como o próprio nome diz, é uma palavra japonesa que significa “cartão sinalizador”. Através do quadro de atividades, é possível perceber qual a quantidade de esforço que poderá ser adicionada. É importante lembrar que, para isso, é preciso também levar em consideração a indicação de limite e capacidade da equipe do software que está sendo desenvolvido. Algumas das empresas que implantam essa metodologia possuem um quadro com espaços que indicam a capacidade. As vantagens encontradas para adotar o kanban são grandes. A equipe pode fazer entregas a qualquer instante para o cliente e mesmo pode modificar a importância das atividades quando desejar. O desenvolvimento fica mais transparente, já que é possível visualizar o fluxo de trabalho, sem preocupações com as iterações e estimativas, como em outros métodos. Caso isso seja relevante para um projeto, no qual o foco vai estar na implementação do produto ou que tenha a necessidade de ter papéis bem definidos, não é indicada a aplicação do kanban. A figura a seguir retrata a definição de uma ferramenta que auxilia implantação desse método. Com um quadro simples e cartões, pode-se criar um controle de fluxo atividades. Figura 3: Quadro ilustrativo Fonte: http://www.devmedia.com.br/desenvolvimento-agil-com-kanban-java-magazine-84/18235 Para começar, é importante mapear o que mais prioritário dentro do software, estabelecendo pontos estratégicos, definindo o trabalho que deverá estar em progresso e montando a estrutura visual que facilitará o acompanhamento. 4. CONCLUSÕES A dificuldade de desenvolver um software que seja utilizável tem sido amenizada com os novos conceitos e soluções propostas pelas metodologias ágeis. O kanban, alvo desse estudo, tem esse foco. Quando o cliente pode definir a prioridade das atividades e mudá-la a qualquer momento, sua satisfação é maior. Quando a equipe pode acompanhar o fluxo de todas as atividades do processo, podendo também controlar o trabalho que está em progresso, esta trabalha de forma mais produtiva e com qualidade. Objetivos são traçados a simplicidade torna-se lei no desenvolvimento do projeto, o que traz como retorno grandes facilidades para todos. Além disso, o
  • 6. ISBN 978-85-62830-10-5 VII CONNEPI©2012 kanban pode ser combinado com outros métodos, bem como adaptado de acordo a realidade da empresa. Não existe uma metodologia padrão a ser adotada em um projeto, que seja mais favorável à sua necessidade. 5. REFERÊNCIAS BIBLIOGRÁFICAS ALMEIDA, Rodrigo. Processos de Desenvolvimento Software. PBJUG, 2012. http://ebookbrowse.com/pbjug-tech-day-processos-de-desenvolvimento-de-software-pdf- d296232956. Data de acesso: 12/06/2012; BASTOS, Aderson et al. Base de conhecimento em teste software. 2ª edição. São Paulo: Martins Editora, 2007; GOMES, André. Desenvolvimento Ágil com kanban. Java magazine, 84. http://www.devmedia.com.br/desenvolvimento-agil-com-kanban-java-magazine-84/18235. Data de acesso: 10/06/2012; Manifesto Ágil de Software, 2012. http://www.agilealliance.org/. Data de acesso: 20/06/2012. SOMMERVILLE, Ian. Engenharia de Software. 8ª edição. São Paulo: Pearson, 2010; ANDERSON, David. Kanban: Successful Evolutionary Change for Your Technology Business. United States, 2010; LADAS, Corey. Scrumban - Essays on Kanban Systems for Lean Software Development. United States: Modus Cooperandi, 2008.