SlideShare uma empresa Scribd logo
1 de 38
TCC I – IES
Ciência da Computação
Orientador: Cristiano Schwening
Coorientador: Patryck Ramos Martins
TCC I – IES
Hezio Fernandes
Junior Java Web Developer at Digitro
br.linkedin.com/pub/hézio-fernandes/46/627/b39
William Melchior Jablonski
Quality Assurance Specialist at Flexy
br.linkedin.com/in/williamjablonski/
Aplicação do desenvolvimento
orientado a testes e comportamento em
empresas startup como pratica para redução
de custos de manutenção e evolução do
software.
 O número de empreendedores no
Brasil cresceu 44% nos últimos 10 anos.
Fonte: http://g1.globo.com/jornal-hoje/noticia/2013/03/numero-de-empreendedores-do-pais-cresce-mais-de-40-nos-ultimos-anos.html
 48% das empresas brasileiras fecham as portas
depois de três anos.
Fonte: http://portal2.pr.sebrae.com.br/PortalInternet/Noticia/ci.48%25-das-empresas-brasileiras-fecham-as-portas-depois-de-tr%C3%AAs-anos.print
 O 4° maior motivo de falência é o descontrole do
fluxo de caixa das empresas.
Fonte: http://economia.uol.com.br/ultimas-noticias/redacao/2012/04/04/sebrae-lista-os-6-maiores-erros-de-quem-vai-a-falencia-saiba-como-evita-
los.jhtm
Apresentar o conceito e um exemplo do
desenvolvimento de software utilizando práticas de
TDD, ATDD e BDD em uma empresa Startup e seus
benefícios.
TDD, ATDD, BDD, Startup, o que são?
Test Driven Development
Accepted Test Driven Development
Behavior Driven Development
 Apresentar os impactos da falta de qualidade no software como
motivação para o investimento em qualidade, testes e mapeamento das
funcionalidades do software no código fonte.
 Apresentar brevemente alguns tipos de processo de desenvolvimento de
software.
 Apresentar e aplicar o conceito de desenvolvimento orientado a teste
de unidade (TDD) entendendo o papel no processo de desenvolvimento e
evolução do software.
 Apresentar e aplicar o conceito de desenvolvimento orientado a teste
de aceite (ATDD) e entendendo o papel no processo de desenvolvimento e
evolução do software.
 Apresentar e aplicar o conceito de desenvolvimento orientado a
comportamento (BDD) e entendendo o papel no processo de
desenvolvimento e evolução do software.
 Apresentar o conceito de Startup.
 Avaliar o retorno do investimento da utilização das metodologias ágeis
e técnicas de TDD, ATDD e BDD em empresas Startup de desenvolvimento
de software.
 A implantação das técnicas de desenvolvimento
ágil tende a ter um aumento da qualidade.
 A utilização das técnicas de desenvolvimento ágil
tende a ter redução de custos com a manutenção do
software.
 Com a aplicação das técnicas de desenvolvimento
ágil é possível mapear o atendimento dos requisitos
acordados com o cliente.
 O uso das técnicas de desenvolvimento ágil tende
a trazer mais segurança à equipe na manutenção do
código legado.
 “Conjunto de características que devem ser alcançadas em um
determinado grau para que o produto atenda às necessidades
de seus usuários.” Rocha (2001)
 “Totalidade de características de uma entidade que lhe confere
a capacidade de satisfazer a necessidades explícitas e
implícitas.” NBR ISO (1994)
 Conformidade a (Pressman):
• Requisitos funcionais e de desempenho.
• Padrões e convenções de desenvolvimento pré-estabelecidos.
• Atributos implícitos que todo software desenvolvido
profissionalmente deve possuir.
Fonte: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf
O impacto pode ser categorizado:
- Financeiro;
- Humano;
- Moral.
A Explosão do Ariane 5
4 de junho de 1996 o foguete explodiu apenas quarenta segundos
após sua decolagem. O foguete destruído e sua carga foi avaliada em
US $ 500 milhões. Descobriu-se que a causa do fracasso foi um erro
de conversão numérica do software.
Fonte:http://www.ima.umn.edu/~arnold/disasters/ariane.html
Em 2009, um avião da Air France saído do rio de janeiro com destino a Paris
mergulhou no mar e matou mata 228 pessoas após sensor de velocidade congelar e o
alarme não soa assim não advertindo a tripulação da situação. Uma situação não prevista.
Fonte: http://news.nationalpost.com/2012/07/05/air-france-flight-to-paris-from-rio-crashed-because-of-pilot-error-faulty-sensors-report/
Uma atualização lançada em abril de 2013 pela Microsoft, está causando
problemas aos usuários do Windows 7. Uma falha na atualização pode impedir a
inicialização do sistema.
Fonte: http://veja.abril.com.br/blog/tech/curiosidades/falha-em-atualizacao-afeta-usuarios-do-windows-7/
Projetos acima do tempo e orçamento.
Baixa qualidade.
Não atendia os requisitos
Falta de compatibilidade.
Em 1968, especialistas se reúnem na
Alemanha, para discutir os problemas
relacionados com o desenvolvimento de
software.
Fonte: https://sites.google.com/site/labesw/disciplinas/ENG
 Derivado de modelos existentes em outras engenharias
 Sua estrutura é composta por várias etapas que são executadas de forma
sistemática e sequencial.
 Fonte: https://sites.google.com/site/labesw/disciplinas/ENG
Pontos Negativos:
Burocrático.
 Não funciona bem com mudanças.
Apenas o gerente tem uma visão geral do
andamento do projeto.
Entendimento dos requisitos pode ser
falho e causar erros em cascata.
Tempo de entrega.
Surgiu de uma reação contra métodos
ditos "pesados", caracterizados por uma
pesada regulamentação, documentação e
micro gerenciamento.
- Burocrático;
- Lento;
- Contraditório a forma usual com que os
engenheiros de software sempre
realizaram trabalho com eficiência.
1. Comunicação;
2. Simplicidade;
3. Feedback;
4. Coragem.
Fonte: http://www.capgemini.com/sites/default/files/technology-blog/files/2011/05/Grafx-Scrum-Sprint.png
Fonte: http://www.semeru.com.br/blog/wp-content/uploads/2012/09/xp.png
Fonte: http://www.devmedia.com.br/imagens/javamagazine/mpjuiiujfig01.jpg
ATDD
TDD
Metodologia de desenvolvimento de
software com foco em simplicidade e
qualidade.
Fonte: http://reddevnews.com/~/media/ECG/visualstudiomagazine/Images/2007/11/listingsID_148_0711_rdn_tb%20gif.ashx
Vatagens
- Processo de desenvolvimento simples e
incremental;
- Código automaticamente testável;
- Testes constantes;
- Melhor compreensão dos requisitos.
Desvantagem
- Definições de testes não são isentas de erros;
- Manutenção dos testes;
- Limitação financeira e de tempo;
- Não rastreavel as necessidades do cliente.
 Nesta técnica, os testes de aceitação são criados de maneira colaborativa e descritos em
uma linguagem comum a todos os membros da equipe. Dessa forma, toda a equipe
compartilha o mesmo entendimento do que deve ser feito, as restrições e as definições de
"Pronto".
 Essa nova abordagem traz os benefícios do TDD incorporando os critérios do cliente,
dessa forma, uma funcionalidade só estaria completa quando além das necessidades
técnicas, ela também implementasse todos os testes que comprovam que a
implementação está se comportando como o esperado.
 ATDD tem por objetivo capturar os critérios de aceitação para as funcionalidades em
desenvolvimento.
”Em complemento à prática de TDD, que visa garantir que as funcionalidades bases da
aplicação sejam desenvolvidas em conformidade com a arquitetura e projeto, a prática de
ATDD tende a prover feedback sobre o quão perto da conclusão da tarefa a equipe de
desenvolvimento se encontra, demonstrando uma clara visão do progresso.” NADALETE
(2010).
Fonte: http://tasafo.files.wordpress.com/2010/01/dirigindo-o-desenvolvimento-com-testes-atdd-e-tdd.pdf
Vantagens
Da uma visão clara para a equipe do
resultado esperado.
È possivel acompanhar melhor a evolução
do software.
Desvantagens
 Como o TDD é tecnico e dificil de rastrear
as histórias e necessidades do cliente.
Uma técnica de desenvolvimento agil que
visa integrar regras de negocio com
linguagem de programação.
Fonte: http://sobrecodigo.com/wp-content/uploads/2011/03/tdd_bdd.png
Vantagens
- Altamente rastreável (código, testes,
requisitos);
- Foco nos requisitos;
- Mapeamento do status atual das
funcionalidades durante a evolução do
sistema. No caso de uma funcionalidade
nova se sobrepõem ou impactar em outra
funcionalidade que já existia no sistema.
Desvantagens
- Tempo de desenvolvimento do BDD.
- Tempo de manutenção (evolutiva).
“Startup são pequenas empresas montadas em casa ou em faculdades
e que recebem pequenos aportes de capital. Elas exploram áreas
inovadoras de determinado setor (mais comumente a de tecnologia),
possuindo uma aceleração de crescimento muito alta já nos primeiros
meses de existência em virtude de investimentos feitos por fundos de
investimento especializados” Longhi (2011)
- Orçamento apertado;
- Foco em resultado rápido.
Dentre os beneficios já apresentados para este contexto se
destacam:
TDD – Aumento da qualidade do código, efetividade do
código. (só é desenvolvido o que foi vendido)
ATDD – Está definido desde o inicio do desenvolvimento o
conceito de pronto da entrega, ou seja, será desenvolvido
somente o necessário e no menor tempo possivel (foco na
entrega).
BDD – Garantia do entendimento da necessidade do cliente.
Garantia que as funcionalidades ja existente no
sistema vão continuar funcionando nesta nova entrega.
Um artigo apresentado pelo Dr. David Rico em
2008 tendo como base um estudo de caso de 16
empresas concluiu que o custo médio de implantação e
manutenção da metodologia agil ou tradicional é o
mesmo, porem o agil apresenta um aumento de até
200% na qualidade do produto, assim reduzindo
drasticamente o custo do retrabalho. Diminuindo o
retrabalho aumenta-se a produtividade e
consequentemente o lucro da empresa. (entregas
frequentes e maior fluxo de caixa)
Fonte: http://davidfrico.com/rico08b.pdf
BAUER, F. L. Scientific Affairs Division. NATO SCIENCE COMMITTEE, Garmisch, Germany, 1969. p.231.
BECK, K., Extreme Programming Explained: Embrace Change, 1st Edition, Addison-Wesley, 1999.
BECK, Kent et al. Manifesto ágil., 2001.
BISSI, Wilson. Scrum - Metodologia de desenvolvimento ágil. Campo Digital, Campo Mourão, V. 2, n. 1,
BOSSI P., ExtremeProgramming Applied: a case study in the private banking domain, January 2003, OOP2003
Conference, Munich (Germany),
DORNELAS, José Carlos Assis, 1971. Empreendedorismo: Transformando ideias em negócios / José Carlos Assis
Dornelas. – 3.ed. – Rio de Janeiro: Elsevier, 2008.
FOWLER, M., BECK, K., Manifesto for Agile Software Development,
GONÇALVES, André Silva. Gestão de Projetos em Pequenas e Médias Empresas: Principais dificuldades. 2009
GITAHY, Yuri. O que é uma start up?. Empreendedor Online – Empreendedorismo na Internet e negócios online,2011
HERMANSON, Boris. O que é uma start up? São Paulo: Mundo Sebrae,2011
HIGHSMITH, Jim, Agile Project Management, Creating innovative products, AddisonWesley, 2004.
JEFFRIES, Ron, et al.What is Extreme Programming?, 2012.
JOHNSON, D. What is innovation and entrepreneurship? Lessons for larger Organizations. Industrial and Commercial
Training. Press, v. 33, n. 4, 2001.
LONGHI, Fúlvio. A história da revolução das startups, Imasters, 2011.
MARÇAL, Ana Sofia. Estendendo o SCRUM segundo as áreas de processo de gerenciamento de projetos do CMMI.
2007
MYERS, Glenford J., John Wiley & Sons, The Art of Software Testing, 2, Nova Jérsei: 2004.
PEREIRA, Paulo. Entendendo o Scrum para Gerenciar Projetos de Forma Ágil. Mundo PM. 2007.
PRESSMAN, R. S., Engenharia de Software, 5ª Ed., Makron Books, 2002.
SOARES, Michel dos Santos. Comparação entre metodologias ágeis e tradicionais para desenvolvimento de software.
SOMMERVILLE, Ian. Engenharia de Software. 6ed. São Paulo: Prentice Hall, 2003.
STEFFEN, Juliana Berossa. O que são essas tais de metodologias Ágeis?. [S.l.]: IBM, 2012.
TROTT, P. Innovation management and new product development. 2.ed. London: Prentice Hall, 2002.
VIEGA, J. and McManus, J. (2000). The importance of software testing.
WELLS, D., Extreme Programming: A gentle introduction.
.
Fases da
Pesquisa
Ação Escala temporal
1 Estruturar Projeto de Pesquisa TCCI Abril/2013
2 Validar Projeto de Pesquisa TCCI Abril/2013
3 Pesquisa Bibliográfica e iniciação teórica do TCCI Abril/2013
4 Desenvolvimento da Pesquisa TCCI Maio/2013
5 Entrega da Pesquisa TCCI Maio/2013
6 Apresentação do TCCI a banca Junho/2013
7 Complementar os temas Startup e retorno de investimento na
implantação de técnicas ágeis
Junho/2013
8 Desenvolver melhorias no TCCI Julho/2013 -
Setembro/2013
9 Desenvolver o protótipo para exemplificação da aplicação das técnicas
ágeis
Julho/2013 -
Setembro/2013
10 Desenvolver uma funcionalidade utilizando o TDD e documentar este
desenvolvimento para posteriormente ser apresentado.
Julho/2013 -
Setembro/2013
11 Desenvolver uma funcionalidade utilizando o ATDD e documentar este
desenvolvimento para posteriormente ser apresentado.
Julho/2013 -
Setembro/2013
12 Desenvolver uma funcionalidade utilizando o BDD e documentar este
desenvolvimento para posteriormente ser apresentado.
Julho/2013 -
Setembro/2013
13 Elaborar apresentação das praticas de desenvolvimento Julho/2013 -
Setembro/2013
14 Entrega da Pesquisa TCCII Julho/2013 -
Setembro/2013
15 Apresentação do TCCII para a banca Julho/2013 -
Setembro/2013
Apresentação:
http://prezi.com/cj8il3sbbgwy/
http://www.4shared.com/file/jA5t4K3x/TCCI-williamHezio-IES-2013.html
Trabalho teórico:
http://www.4shared.com/file/7waKTQl1/TCCI-WilliamHezio-IES.html

Mais conteúdo relacionado

Mais procurados

Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...Christian Gut
 
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de SoftwareQATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de SoftwareWelington Monteiro
 
Palestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MGPalestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MGWelington Monteiro
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágilDaniel Brandão
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de SoftwareRobson Silva Espig
 
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
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...Rogério Batista
 
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWAREQUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWAREFabiano Souza
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWAREDESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARECloves da Rocha
 

Mais procurados (20)

Startup em Scrum
Startup em ScrumStartup em Scrum
Startup em Scrum
 
Nós, consultores especialistas v 0
Nós, consultores especialistas v 0Nós, consultores especialistas v 0
Nós, consultores especialistas v 0
 
Métodos ágeis
Métodos ágeisMétodos ágeis
Métodos ágeis
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...
 
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de SoftwareQATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
 
Palestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MGPalestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MG
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágil
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos 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...
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWAREQUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE
 
Então, precisamos mesmo de QA em projetos Ágeis?
Então, precisamos mesmo de QA em projetos Ágeis?Então, precisamos mesmo de QA em projetos Ágeis?
Então, precisamos mesmo de QA em projetos Ágeis?
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de Software
 
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWAREDESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
 

Semelhante a TCC I - Aplicação do TDD, ATDD e BDD em Startups

MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O MODELO DE QUALIDADE MPS.BR NOS N...
MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O  MODELO DE QUALIDADE MPS.BR NOS N...MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O  MODELO DE QUALIDADE MPS.BR NOS N...
MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O MODELO DE QUALIDADE MPS.BR NOS N...Adson Wendel
 
5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwares5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwaresEbix Latin America
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareEmerson Henrique
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareLuciano Almeida
 
Gerenciamento PDS
Gerenciamento PDSGerenciamento PDS
Gerenciamento PDSFatec Jales
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Fernando Vargas
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
Microsoft - Application Lifecycle Management - Visão Geral
Microsoft - Application Lifecycle Management - Visão GeralMicrosoft - Application Lifecycle Management - Visão Geral
Microsoft - Application Lifecycle Management - Visão GeralAlan Carlos
 
Engenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaEngenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaTathiana Machado
 
O que as empresas inovadoras sabem sobre DevOps?
O que as empresas inovadoras sabem sobre DevOps?O que as empresas inovadoras sabem sobre DevOps?
O que as empresas inovadoras sabem sobre DevOps?Welington Monteiro
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeisComunidade Tá safo!
 
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 ManagerAlan Carlos
 
Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)Caroline Seara
 

Semelhante a TCC I - Aplicação do TDD, ATDD e BDD em Startups (20)

MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O MODELO DE QUALIDADE MPS.BR NOS N...
MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O  MODELO DE QUALIDADE MPS.BR NOS N...MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O  MODELO DE QUALIDADE MPS.BR NOS N...
MAPEAMENTO ENTRE A METODOLOGIA ÁGIL FDD E O MODELO DE QUALIDADE MPS.BR NOS N...
 
5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwares5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwares
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Lean software
Lean software Lean software
Lean software
 
Aula 5 semana
Aula 5 semanaAula 5 semana
Aula 5 semana
 
Gerenciamento PDS
Gerenciamento PDSGerenciamento PDS
Gerenciamento PDS
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Microsoft - Application Lifecycle Management - Visão Geral
Microsoft - Application Lifecycle Management - Visão GeralMicrosoft - Application Lifecycle Management - Visão Geral
Microsoft - Application Lifecycle Management - Visão Geral
 
Engenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaEngenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-Dia
 
Pim 4
Pim 4Pim 4
Pim 4
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
O que as empresas inovadoras sabem sobre DevOps?
O que as empresas inovadoras sabem sobre DevOps?O que as empresas inovadoras sabem sobre DevOps?
O que as empresas inovadoras sabem sobre DevOps?
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeis
 
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
 
Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)Artigo Pós graduação_Caroline Seara (2)
Artigo Pós graduação_Caroline Seara (2)
 
Metodologias de desenvolvimento
Metodologias de desenvolvimentoMetodologias de desenvolvimento
Metodologias de desenvolvimento
 
Jucelir
JucelirJucelir
Jucelir
 

Mais de William Melchior Jablonski, CTFL

Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...
Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...
Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...William Melchior Jablonski, CTFL
 
Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...
Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...
Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...William Melchior Jablonski, CTFL
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...William Melchior Jablonski, CTFL
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...William Melchior Jablonski, CTFL
 
Apresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de testeApresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de testeWilliam Melchior Jablonski, CTFL
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...William Melchior Jablonski, CTFL
 
Apresentação projeto de evolução do banco de dados de homologação e produção ...
Apresentação projeto de evolução do banco de dados de homologação e produção ...Apresentação projeto de evolução do banco de dados de homologação e produção ...
Apresentação projeto de evolução do banco de dados de homologação e produção ...William Melchior Jablonski, CTFL
 
Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...
Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...
Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...William Melchior Jablonski, CTFL
 

Mais de William Melchior Jablonski, CTFL (11)

Ppt git-ibm-oi
Ppt git-ibm-oiPpt git-ibm-oi
Ppt git-ibm-oi
 
Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...
Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...
Apresentação do trabalho de conclusão de curso - Estudo de caso da aplicação ...
 
Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...
Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...
Apresentação implatação do Jira como ferramenta de gestão de bpmn das demanda...
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
 
Apresentação sobre planejamento de testes
Apresentação sobre planejamento de testesApresentação sobre planejamento de testes
Apresentação sobre planejamento de testes
 
Apresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de testeApresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de teste
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
 
Apresentação projeto de evolução do banco de dados de homologação e produção ...
Apresentação projeto de evolução do banco de dados de homologação e produção ...Apresentação projeto de evolução do banco de dados de homologação e produção ...
Apresentação projeto de evolução do banco de dados de homologação e produção ...
 
Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...
Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...
Apresentação projeto de evolução do banco de dados na maquina do desenvolvedo...
 
Processo de implantação de testes automatizados
Processo de implantação de testes automatizadosProcesso de implantação de testes automatizados
Processo de implantação de testes automatizados
 

TCC I - Aplicação do TDD, ATDD e BDD em Startups

  • 1. TCC I – IES Ciência da Computação Orientador: Cristiano Schwening Coorientador: Patryck Ramos Martins
  • 2. TCC I – IES Hezio Fernandes Junior Java Web Developer at Digitro br.linkedin.com/pub/hézio-fernandes/46/627/b39 William Melchior Jablonski Quality Assurance Specialist at Flexy br.linkedin.com/in/williamjablonski/
  • 3. Aplicação do desenvolvimento orientado a testes e comportamento em empresas startup como pratica para redução de custos de manutenção e evolução do software.
  • 4.  O número de empreendedores no Brasil cresceu 44% nos últimos 10 anos. Fonte: http://g1.globo.com/jornal-hoje/noticia/2013/03/numero-de-empreendedores-do-pais-cresce-mais-de-40-nos-ultimos-anos.html  48% das empresas brasileiras fecham as portas depois de três anos. Fonte: http://portal2.pr.sebrae.com.br/PortalInternet/Noticia/ci.48%25-das-empresas-brasileiras-fecham-as-portas-depois-de-tr%C3%AAs-anos.print  O 4° maior motivo de falência é o descontrole do fluxo de caixa das empresas. Fonte: http://economia.uol.com.br/ultimas-noticias/redacao/2012/04/04/sebrae-lista-os-6-maiores-erros-de-quem-vai-a-falencia-saiba-como-evita- los.jhtm
  • 5. Apresentar o conceito e um exemplo do desenvolvimento de software utilizando práticas de TDD, ATDD e BDD em uma empresa Startup e seus benefícios.
  • 6. TDD, ATDD, BDD, Startup, o que são? Test Driven Development Accepted Test Driven Development Behavior Driven Development
  • 7.  Apresentar os impactos da falta de qualidade no software como motivação para o investimento em qualidade, testes e mapeamento das funcionalidades do software no código fonte.  Apresentar brevemente alguns tipos de processo de desenvolvimento de software.  Apresentar e aplicar o conceito de desenvolvimento orientado a teste de unidade (TDD) entendendo o papel no processo de desenvolvimento e evolução do software.  Apresentar e aplicar o conceito de desenvolvimento orientado a teste de aceite (ATDD) e entendendo o papel no processo de desenvolvimento e evolução do software.  Apresentar e aplicar o conceito de desenvolvimento orientado a comportamento (BDD) e entendendo o papel no processo de desenvolvimento e evolução do software.  Apresentar o conceito de Startup.  Avaliar o retorno do investimento da utilização das metodologias ágeis e técnicas de TDD, ATDD e BDD em empresas Startup de desenvolvimento de software.
  • 8.  A implantação das técnicas de desenvolvimento ágil tende a ter um aumento da qualidade.  A utilização das técnicas de desenvolvimento ágil tende a ter redução de custos com a manutenção do software.  Com a aplicação das técnicas de desenvolvimento ágil é possível mapear o atendimento dos requisitos acordados com o cliente.  O uso das técnicas de desenvolvimento ágil tende a trazer mais segurança à equipe na manutenção do código legado.
  • 9.  “Conjunto de características que devem ser alcançadas em um determinado grau para que o produto atenda às necessidades de seus usuários.” Rocha (2001)  “Totalidade de características de uma entidade que lhe confere a capacidade de satisfazer a necessidades explícitas e implícitas.” NBR ISO (1994)  Conformidade a (Pressman): • Requisitos funcionais e de desempenho. • Padrões e convenções de desenvolvimento pré-estabelecidos. • Atributos implícitos que todo software desenvolvido profissionalmente deve possuir. Fonte: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf
  • 10. O impacto pode ser categorizado: - Financeiro; - Humano; - Moral.
  • 11. A Explosão do Ariane 5 4 de junho de 1996 o foguete explodiu apenas quarenta segundos após sua decolagem. O foguete destruído e sua carga foi avaliada em US $ 500 milhões. Descobriu-se que a causa do fracasso foi um erro de conversão numérica do software. Fonte:http://www.ima.umn.edu/~arnold/disasters/ariane.html
  • 12. Em 2009, um avião da Air France saído do rio de janeiro com destino a Paris mergulhou no mar e matou mata 228 pessoas após sensor de velocidade congelar e o alarme não soa assim não advertindo a tripulação da situação. Uma situação não prevista. Fonte: http://news.nationalpost.com/2012/07/05/air-france-flight-to-paris-from-rio-crashed-because-of-pilot-error-faulty-sensors-report/
  • 13. Uma atualização lançada em abril de 2013 pela Microsoft, está causando problemas aos usuários do Windows 7. Uma falha na atualização pode impedir a inicialização do sistema. Fonte: http://veja.abril.com.br/blog/tech/curiosidades/falha-em-atualizacao-afeta-usuarios-do-windows-7/
  • 14. Projetos acima do tempo e orçamento. Baixa qualidade. Não atendia os requisitos Falta de compatibilidade.
  • 15. Em 1968, especialistas se reúnem na Alemanha, para discutir os problemas relacionados com o desenvolvimento de software. Fonte: https://sites.google.com/site/labesw/disciplinas/ENG
  • 16.  Derivado de modelos existentes em outras engenharias  Sua estrutura é composta por várias etapas que são executadas de forma sistemática e sequencial.  Fonte: https://sites.google.com/site/labesw/disciplinas/ENG
  • 17. Pontos Negativos: Burocrático.  Não funciona bem com mudanças. Apenas o gerente tem uma visão geral do andamento do projeto. Entendimento dos requisitos pode ser falho e causar erros em cascata. Tempo de entrega.
  • 18. Surgiu de uma reação contra métodos ditos "pesados", caracterizados por uma pesada regulamentação, documentação e micro gerenciamento. - Burocrático; - Lento; - Contraditório a forma usual com que os engenheiros de software sempre realizaram trabalho com eficiência.
  • 19. 1. Comunicação; 2. Simplicidade; 3. Feedback; 4. Coragem.
  • 23. Metodologia de desenvolvimento de software com foco em simplicidade e qualidade.
  • 25. Vatagens - Processo de desenvolvimento simples e incremental; - Código automaticamente testável; - Testes constantes; - Melhor compreensão dos requisitos. Desvantagem - Definições de testes não são isentas de erros; - Manutenção dos testes; - Limitação financeira e de tempo; - Não rastreavel as necessidades do cliente.
  • 26.  Nesta técnica, os testes de aceitação são criados de maneira colaborativa e descritos em uma linguagem comum a todos os membros da equipe. Dessa forma, toda a equipe compartilha o mesmo entendimento do que deve ser feito, as restrições e as definições de "Pronto".  Essa nova abordagem traz os benefícios do TDD incorporando os critérios do cliente, dessa forma, uma funcionalidade só estaria completa quando além das necessidades técnicas, ela também implementasse todos os testes que comprovam que a implementação está se comportando como o esperado.  ATDD tem por objetivo capturar os critérios de aceitação para as funcionalidades em desenvolvimento. ”Em complemento à prática de TDD, que visa garantir que as funcionalidades bases da aplicação sejam desenvolvidas em conformidade com a arquitetura e projeto, a prática de ATDD tende a prover feedback sobre o quão perto da conclusão da tarefa a equipe de desenvolvimento se encontra, demonstrando uma clara visão do progresso.” NADALETE (2010).
  • 28. Vantagens Da uma visão clara para a equipe do resultado esperado. È possivel acompanhar melhor a evolução do software. Desvantagens  Como o TDD é tecnico e dificil de rastrear as histórias e necessidades do cliente.
  • 29. Uma técnica de desenvolvimento agil que visa integrar regras de negocio com linguagem de programação.
  • 31. Vantagens - Altamente rastreável (código, testes, requisitos); - Foco nos requisitos; - Mapeamento do status atual das funcionalidades durante a evolução do sistema. No caso de uma funcionalidade nova se sobrepõem ou impactar em outra funcionalidade que já existia no sistema.
  • 32. Desvantagens - Tempo de desenvolvimento do BDD. - Tempo de manutenção (evolutiva).
  • 33. “Startup são pequenas empresas montadas em casa ou em faculdades e que recebem pequenos aportes de capital. Elas exploram áreas inovadoras de determinado setor (mais comumente a de tecnologia), possuindo uma aceleração de crescimento muito alta já nos primeiros meses de existência em virtude de investimentos feitos por fundos de investimento especializados” Longhi (2011) - Orçamento apertado; - Foco em resultado rápido.
  • 34. Dentre os beneficios já apresentados para este contexto se destacam: TDD – Aumento da qualidade do código, efetividade do código. (só é desenvolvido o que foi vendido) ATDD – Está definido desde o inicio do desenvolvimento o conceito de pronto da entrega, ou seja, será desenvolvido somente o necessário e no menor tempo possivel (foco na entrega). BDD – Garantia do entendimento da necessidade do cliente. Garantia que as funcionalidades ja existente no sistema vão continuar funcionando nesta nova entrega.
  • 35. Um artigo apresentado pelo Dr. David Rico em 2008 tendo como base um estudo de caso de 16 empresas concluiu que o custo médio de implantação e manutenção da metodologia agil ou tradicional é o mesmo, porem o agil apresenta um aumento de até 200% na qualidade do produto, assim reduzindo drasticamente o custo do retrabalho. Diminuindo o retrabalho aumenta-se a produtividade e consequentemente o lucro da empresa. (entregas frequentes e maior fluxo de caixa) Fonte: http://davidfrico.com/rico08b.pdf
  • 36. BAUER, F. L. Scientific Affairs Division. NATO SCIENCE COMMITTEE, Garmisch, Germany, 1969. p.231. BECK, K., Extreme Programming Explained: Embrace Change, 1st Edition, Addison-Wesley, 1999. BECK, Kent et al. Manifesto ágil., 2001. BISSI, Wilson. Scrum - Metodologia de desenvolvimento ágil. Campo Digital, Campo Mourão, V. 2, n. 1, BOSSI P., ExtremeProgramming Applied: a case study in the private banking domain, January 2003, OOP2003 Conference, Munich (Germany), DORNELAS, José Carlos Assis, 1971. Empreendedorismo: Transformando ideias em negócios / José Carlos Assis Dornelas. – 3.ed. – Rio de Janeiro: Elsevier, 2008. FOWLER, M., BECK, K., Manifesto for Agile Software Development, GONÇALVES, André Silva. Gestão de Projetos em Pequenas e Médias Empresas: Principais dificuldades. 2009 GITAHY, Yuri. O que é uma start up?. Empreendedor Online – Empreendedorismo na Internet e negócios online,2011 HERMANSON, Boris. O que é uma start up? São Paulo: Mundo Sebrae,2011 HIGHSMITH, Jim, Agile Project Management, Creating innovative products, AddisonWesley, 2004. JEFFRIES, Ron, et al.What is Extreme Programming?, 2012. JOHNSON, D. What is innovation and entrepreneurship? Lessons for larger Organizations. Industrial and Commercial Training. Press, v. 33, n. 4, 2001. LONGHI, Fúlvio. A história da revolução das startups, Imasters, 2011. MARÇAL, Ana Sofia. Estendendo o SCRUM segundo as áreas de processo de gerenciamento de projetos do CMMI. 2007 MYERS, Glenford J., John Wiley & Sons, The Art of Software Testing, 2, Nova Jérsei: 2004. PEREIRA, Paulo. Entendendo o Scrum para Gerenciar Projetos de Forma Ágil. Mundo PM. 2007. PRESSMAN, R. S., Engenharia de Software, 5ª Ed., Makron Books, 2002. SOARES, Michel dos Santos. Comparação entre metodologias ágeis e tradicionais para desenvolvimento de software. SOMMERVILLE, Ian. Engenharia de Software. 6ed. São Paulo: Prentice Hall, 2003. STEFFEN, Juliana Berossa. O que são essas tais de metodologias Ágeis?. [S.l.]: IBM, 2012. TROTT, P. Innovation management and new product development. 2.ed. London: Prentice Hall, 2002. VIEGA, J. and McManus, J. (2000). The importance of software testing. WELLS, D., Extreme Programming: A gentle introduction.
  • 37. . Fases da Pesquisa Ação Escala temporal 1 Estruturar Projeto de Pesquisa TCCI Abril/2013 2 Validar Projeto de Pesquisa TCCI Abril/2013 3 Pesquisa Bibliográfica e iniciação teórica do TCCI Abril/2013 4 Desenvolvimento da Pesquisa TCCI Maio/2013 5 Entrega da Pesquisa TCCI Maio/2013 6 Apresentação do TCCI a banca Junho/2013 7 Complementar os temas Startup e retorno de investimento na implantação de técnicas ágeis Junho/2013 8 Desenvolver melhorias no TCCI Julho/2013 - Setembro/2013 9 Desenvolver o protótipo para exemplificação da aplicação das técnicas ágeis Julho/2013 - Setembro/2013 10 Desenvolver uma funcionalidade utilizando o TDD e documentar este desenvolvimento para posteriormente ser apresentado. Julho/2013 - Setembro/2013 11 Desenvolver uma funcionalidade utilizando o ATDD e documentar este desenvolvimento para posteriormente ser apresentado. Julho/2013 - Setembro/2013 12 Desenvolver uma funcionalidade utilizando o BDD e documentar este desenvolvimento para posteriormente ser apresentado. Julho/2013 - Setembro/2013 13 Elaborar apresentação das praticas de desenvolvimento Julho/2013 - Setembro/2013 14 Entrega da Pesquisa TCCII Julho/2013 - Setembro/2013 15 Apresentação do TCCII para a banca Julho/2013 - Setembro/2013