O artigo descreve uma empresa portuguesa de tecnologia, YDreams, localizada em Monte da Caparica, que está seguindo um modelo semelhante às empresas de tecnologia da Califórnia, conhecido como "Silicon Valley".
1) O documento discute integração contínua, incluindo testes, controle de versão e processos de integração.
2) A integração contínua consiste em integrar o trabalho diversas vezes ao dia para manter a base de código consistente.
3) Ferramentas como Hudson, Cruise Control e Jenkins podem automatizar o processo de integração contínua.
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em vocetdc-globalcode
O documento discute testes instáveis ("flaky") em automação de testes, identificando possíveis causas como internet, ferramentas, colegas e cobertura fraca de testes. Ele também apresenta princípios SACRED para criar testes mais confiáveis, focando no estado da aplicação, algoritmos, validações e execução determinística. Por fim, enfatiza a importância de refletir sobre a necessidade de cada teste e melhorar a testabilidade do produto.
Pensar em performance nos dias atuais é indispensável se você quer manter uma aplicação de sucesso na internet sem imprevistos durante os picos de acesso. Vamos mostrar como entender o comportamento da API sob stress utilizando o Gatling como ferramenta.
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
Palestra apresentada no TDC Florianópolis 2017.
Fazer o startup de aplicações Web com Java Stack tem custado muitas horas de engenheiros experientes. Quem nunca sofreu ou gastou muito tempo com configurações de frameworks, bibliotecas, gerenciador de dependências, entre outros ao criar um projeto Java web? Aprenda a gerar toda sua arquitetura com JHipster com apenas alguns comandos e economizar seu tempo.
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
Esta apresentação aborda um estudo sobre testes de software, seus paradigmas e a aplicação da automação de testes em um sistema legado. Para a aplicação da metodologia de testes apresentada, foi utilizado como estudo de caso o sistema Sienge, sistema de gestão voltado a Indústria da Construção, desenvolvido em ambiente web. Este estudo apresenta e aplica técnicas de testes relacionadas a sistemas isentos de padrões que impedem a garantia da qualidade do sistema ao todo. Entretanto, o trabalho visa compreender como inserir as práticas de testes automatizados no ciclo de vida de desenvolvimento de um software utilizando uma abordagem pragmática.
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...tdc-globalcode
O documento discute inovação em qualidade de software, transformação digital, DevOps e automação. Ele também aborda ganhos de produtividade com automação de testes, como redução de tempo para resolução de tickets e aumento de casos de teste cobertos com menos tempo.
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
O documento resume as estratégias e ferramentas para testes de performance, incluindo: (1) testes de carga, desempenho e stress; (2) a ferramenta JMeter para automatizar testes; (3) exemplos de melhorias detectadas em testes como aumento de hardware e otimização de código.
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-sourceRaphael Paiva
Apresentado no Scrum Gathering Rio 2015.
Nesta apresentação falo sobre os princípios de Continuous Delivery e como implementar um release pipeline apenas com ferramentas gratuitas e de código aberto, como Docker, Fabric e Jenkins.
1) O documento discute integração contínua, incluindo testes, controle de versão e processos de integração.
2) A integração contínua consiste em integrar o trabalho diversas vezes ao dia para manter a base de código consistente.
3) Ferramentas como Hudson, Cruise Control e Jenkins podem automatizar o processo de integração contínua.
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em vocetdc-globalcode
O documento discute testes instáveis ("flaky") em automação de testes, identificando possíveis causas como internet, ferramentas, colegas e cobertura fraca de testes. Ele também apresenta princípios SACRED para criar testes mais confiáveis, focando no estado da aplicação, algoritmos, validações e execução determinística. Por fim, enfatiza a importância de refletir sobre a necessidade de cada teste e melhorar a testabilidade do produto.
Pensar em performance nos dias atuais é indispensável se você quer manter uma aplicação de sucesso na internet sem imprevistos durante os picos de acesso. Vamos mostrar como entender o comportamento da API sob stress utilizando o Gatling como ferramenta.
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
Palestra apresentada no TDC Florianópolis 2017.
Fazer o startup de aplicações Web com Java Stack tem custado muitas horas de engenheiros experientes. Quem nunca sofreu ou gastou muito tempo com configurações de frameworks, bibliotecas, gerenciador de dependências, entre outros ao criar um projeto Java web? Aprenda a gerar toda sua arquitetura com JHipster com apenas alguns comandos e economizar seu tempo.
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
Esta apresentação aborda um estudo sobre testes de software, seus paradigmas e a aplicação da automação de testes em um sistema legado. Para a aplicação da metodologia de testes apresentada, foi utilizado como estudo de caso o sistema Sienge, sistema de gestão voltado a Indústria da Construção, desenvolvido em ambiente web. Este estudo apresenta e aplica técnicas de testes relacionadas a sistemas isentos de padrões que impedem a garantia da qualidade do sistema ao todo. Entretanto, o trabalho visa compreender como inserir as práticas de testes automatizados no ciclo de vida de desenvolvimento de um software utilizando uma abordagem pragmática.
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...tdc-globalcode
O documento discute inovação em qualidade de software, transformação digital, DevOps e automação. Ele também aborda ganhos de produtividade com automação de testes, como redução de tempo para resolução de tickets e aumento de casos de teste cobertos com menos tempo.
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
O documento resume as estratégias e ferramentas para testes de performance, incluindo: (1) testes de carga, desempenho e stress; (2) a ferramenta JMeter para automatizar testes; (3) exemplos de melhorias detectadas em testes como aumento de hardware e otimização de código.
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-sourceRaphael Paiva
Apresentado no Scrum Gathering Rio 2015.
Nesta apresentação falo sobre os princípios de Continuous Delivery e como implementar um release pipeline apenas com ferramentas gratuitas e de código aberto, como Docker, Fabric e Jenkins.
O documento apresenta uma palestra sobre DevOps. Aborda tópicos como a história do DevOps, suas definições e princípios-chave, o ciclo DevOps, práticas iniciais e avançadas, níveis de maturidade e ferramentas. O objetivo é fornecer uma visão geral do que é DevOps e como iniciar sua implementação de forma gradual.
Desenvolvendo aplicações orientadas a testes de aceitação: um caso práticoelliando dias
O documento discute o desenvolvimento orientado a testes de aceitação, descrevendo como eles podem resolver problemas de comunicação e especificações obscuras. A ferramenta EasyAccept permite escrever testes de aceitação sob a forma de scripts executáveis que verificam as funcionalidades conforme implementadas. Um caso prático mostra como os testes reduziram bugs em dois sistemas desenvolvidos por estudantes.
Essa palestra aborda sobre o planejamento de testes em equipes ágeis e mostra como isso impacta na qualidade final do produto, inserindo o papel do Agile Tester na equipe de desenvolvimento. Serão abordados os diferentes tipos e categorias de testes e como são introduzidos no processo de desenvolvimento de software de uma forma colaborativa, responsável e sem desperdícios.
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
Apresentação do hangout da 4Linux sobre a cultura Devops e as formas como o Zend Server pode facilitar a sua implementação.
Saiba mais em: http://www.4linux.com.br/screencast/praticas-devops-com-zend-server
O Impacto da adoção de DevOps na qualidadeAntônio Carlos
O documento discute o impacto da adoção de DevOps na qualidade de software. Relata que estudos mostraram que a adoção de DevOps levou a aumentos de 30x nas releases, redução de 50% em falhas, e melhorias significativas em métricas como tempo entre deploys e correção de falhas. DevOps institui uma cultura de colaboração entre equipes que melhora a qualidade e produtividade.
O documento descreve o desenvolvimento guiado por testes (Test-Driven Development - TDD), incluindo suas regras fundamentais, etapas, tipos de testes, demonstração de um exemplo e conclusões sobre os benefícios do TDD.
Como organizar as interações (humanas) entre devs e ops num contexto de entrega contínua? Em uma pesquisa com 46 pessoas, de 44 empresas, em 8 países, em meu doutorado na USP, identifiquei 4 estruturas organizacionais. Entre elas, destaca-se a que denominei de ?times de plataforma?: o time de infra passa a fornecer serviços altamente automatizados para empoderar os desenvolvedores, que por sua vez se tornam responsáveis pela operação de seus serviços. Apesar dos desafios, esse esquema contribui para um alto desempenho de entrega. Nesta palestra, você entenderá o que é um time de plataforma e suas consequências; somada à minha experiência no Serpro, discutirei essa abordagem para as empresas.
No meu último projeto me deparei com o desafio de automatizar testes para gráficos onde as cores, formatos e detalhes eram muito importantes para a funcionalidade. A solução foi aplicar Visual Regression Testing e garantir que esses aspectos visuais estavam de acordo com o esperado. Nessa palestra vamos ver o que é Visual Regression Testing e exemplos de como automatizar usando algumas ferramentas de mercado (Percy, Lineup, Visual Review, AppliTools, GalenFramework) e também que é possível implementar a sua própria.
Testes de regressão visual são scripts de teste que tiram screenshots de uma aplicação e comparam com screenshots previamente aprovados para identificar diferenças visuais introduzidas por mudanças no código. O documento discute como o BackstopJS pode ser usado para automatizar esses testes de forma rápida e confiável, executando os testes em diferentes momentos do ciclo de desenvolvimento.
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
O documento discute a entrega contínua de software, incluindo:
1) A importância de automatizar o processo de desenvolvimento, teste e implantação;
2) Exemplos de empresas que fazem implantações várias vezes por dia;
3) Os princípios e práticas de entrega contínua, como automação, controle de versão e melhoria contínua.
Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas já que processos de desenvolvimento são muitas vezes burocráticos Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas:Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...minastestingconference
O documento discute vários "tests smells", que são indícios de problemas no código de teste, como testes lentos devido a esperas fixas, testes com nomes ruins que não fazem asserções claras, tratamento incorreto de exceções e lógica condicional complexa. Exemplos específicos discutidos incluem "Sleepy Test", "Unknown Test", "Exception Handling" e "Conditional Test Logic", com explicações de como identificar e corrigir cada um.
O documento descreve o desenvolvimento guiado por testes (TDD), definindo suas regras e etapas. Ele explica que TDD envolve escrever testes antes da implementação para forçar um design melhor e encontrar bugs mais rápido, resultando em código de maior qualidade apesar de possivelmente demorar mais no início.
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Leonardo Ferreira Leite
O documento discute integração contínua e entrega contínua no pipeline de implantação, incluindo commits frequentes, branches curtas, merges frequentes, feature flags, retrocompatibilidade, microsserviços, compilação, testes de unidade, análise de qualidade, implantação em validação, testes de aceitação, testes de carga, verificações de segurança, testes manuais e implantação em produção com entrega contínua e implantação contínua. Exemplos reais de pipelines são fornecidos de projetos
Quem nunca ouviu, "mas é só mais campinho na tela?". Nesta palestra compartilharemos com vocês como estamos conscientizando a equipe e os demais setores da empresa da importância de avaliar o impacto de alterações nos sistemas, mesmo que sendo apenas uma linha de código. Iremos apresentar os aprendizados, desafios e erros que já enfrentamos nestes 12 meses de uso e evolução do processo de desenvolvimento na HostGator America Latina com fases/atividades mais bem definidas e a importância de perpetuar esta visão para os demais setores da empresa. Além disso, apresentar sobre o presente, o crescimento e o futuro desta nova cultura voltada a usabilidade, qualidade, escala e segurança.
O documento discute a importância de testes automatizados para sustentar Continuous Delivery e DevOps. Ele explica os benefícios de testes automatizados, como feedback rápido e menos erros, e discute vários tipos de testes como testes unitários, de serviço, funcionais e de desempenho. Também fornece exemplos de ferramentas para cada tipo de teste.
Consumer APPs: 25 mil downloads em um fim de semanaGeneXus
O documento discute o lançamento de um aplicativo para o festival Virada Cultural de São Paulo que teve 25 mil downloads no primeiro fim de semana. Detalha as etapas de publicação do app nas lojas Apple Store e Google Play e infraestrutura para suportar 6 milhões de requisições. Aponta bons resultados com 15 mil downloads no Apple Store e 10 mil no Google Play.
GeneXus: Aportando valor al desarrollo de aplicaciones en ecosistemas SAP - D...GeneXus
Presentación del programa ProSur de Bunge Argentina.
GeneXus, una elección estratégica para gestionar el portafolio de aplicaciones corporativas, con SAP como "core business"
O documento apresenta uma palestra sobre DevOps. Aborda tópicos como a história do DevOps, suas definições e princípios-chave, o ciclo DevOps, práticas iniciais e avançadas, níveis de maturidade e ferramentas. O objetivo é fornecer uma visão geral do que é DevOps e como iniciar sua implementação de forma gradual.
Desenvolvendo aplicações orientadas a testes de aceitação: um caso práticoelliando dias
O documento discute o desenvolvimento orientado a testes de aceitação, descrevendo como eles podem resolver problemas de comunicação e especificações obscuras. A ferramenta EasyAccept permite escrever testes de aceitação sob a forma de scripts executáveis que verificam as funcionalidades conforme implementadas. Um caso prático mostra como os testes reduziram bugs em dois sistemas desenvolvidos por estudantes.
Essa palestra aborda sobre o planejamento de testes em equipes ágeis e mostra como isso impacta na qualidade final do produto, inserindo o papel do Agile Tester na equipe de desenvolvimento. Serão abordados os diferentes tipos e categorias de testes e como são introduzidos no processo de desenvolvimento de software de uma forma colaborativa, responsável e sem desperdícios.
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
Apresentação do hangout da 4Linux sobre a cultura Devops e as formas como o Zend Server pode facilitar a sua implementação.
Saiba mais em: http://www.4linux.com.br/screencast/praticas-devops-com-zend-server
O Impacto da adoção de DevOps na qualidadeAntônio Carlos
O documento discute o impacto da adoção de DevOps na qualidade de software. Relata que estudos mostraram que a adoção de DevOps levou a aumentos de 30x nas releases, redução de 50% em falhas, e melhorias significativas em métricas como tempo entre deploys e correção de falhas. DevOps institui uma cultura de colaboração entre equipes que melhora a qualidade e produtividade.
O documento descreve o desenvolvimento guiado por testes (Test-Driven Development - TDD), incluindo suas regras fundamentais, etapas, tipos de testes, demonstração de um exemplo e conclusões sobre os benefícios do TDD.
Como organizar as interações (humanas) entre devs e ops num contexto de entrega contínua? Em uma pesquisa com 46 pessoas, de 44 empresas, em 8 países, em meu doutorado na USP, identifiquei 4 estruturas organizacionais. Entre elas, destaca-se a que denominei de ?times de plataforma?: o time de infra passa a fornecer serviços altamente automatizados para empoderar os desenvolvedores, que por sua vez se tornam responsáveis pela operação de seus serviços. Apesar dos desafios, esse esquema contribui para um alto desempenho de entrega. Nesta palestra, você entenderá o que é um time de plataforma e suas consequências; somada à minha experiência no Serpro, discutirei essa abordagem para as empresas.
No meu último projeto me deparei com o desafio de automatizar testes para gráficos onde as cores, formatos e detalhes eram muito importantes para a funcionalidade. A solução foi aplicar Visual Regression Testing e garantir que esses aspectos visuais estavam de acordo com o esperado. Nessa palestra vamos ver o que é Visual Regression Testing e exemplos de como automatizar usando algumas ferramentas de mercado (Percy, Lineup, Visual Review, AppliTools, GalenFramework) e também que é possível implementar a sua própria.
Testes de regressão visual são scripts de teste que tiram screenshots de uma aplicação e comparam com screenshots previamente aprovados para identificar diferenças visuais introduzidas por mudanças no código. O documento discute como o BackstopJS pode ser usado para automatizar esses testes de forma rápida e confiável, executando os testes em diferentes momentos do ciclo de desenvolvimento.
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
O documento discute a entrega contínua de software, incluindo:
1) A importância de automatizar o processo de desenvolvimento, teste e implantação;
2) Exemplos de empresas que fazem implantações várias vezes por dia;
3) Os princípios e práticas de entrega contínua, como automação, controle de versão e melhoria contínua.
Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas já que processos de desenvolvimento são muitas vezes burocráticos Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas:Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...minastestingconference
O documento discute vários "tests smells", que são indícios de problemas no código de teste, como testes lentos devido a esperas fixas, testes com nomes ruins que não fazem asserções claras, tratamento incorreto de exceções e lógica condicional complexa. Exemplos específicos discutidos incluem "Sleepy Test", "Unknown Test", "Exception Handling" e "Conditional Test Logic", com explicações de como identificar e corrigir cada um.
O documento descreve o desenvolvimento guiado por testes (TDD), definindo suas regras e etapas. Ele explica que TDD envolve escrever testes antes da implementação para forçar um design melhor e encontrar bugs mais rápido, resultando em código de maior qualidade apesar de possivelmente demorar mais no início.
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Leonardo Ferreira Leite
O documento discute integração contínua e entrega contínua no pipeline de implantação, incluindo commits frequentes, branches curtas, merges frequentes, feature flags, retrocompatibilidade, microsserviços, compilação, testes de unidade, análise de qualidade, implantação em validação, testes de aceitação, testes de carga, verificações de segurança, testes manuais e implantação em produção com entrega contínua e implantação contínua. Exemplos reais de pipelines são fornecidos de projetos
Quem nunca ouviu, "mas é só mais campinho na tela?". Nesta palestra compartilharemos com vocês como estamos conscientizando a equipe e os demais setores da empresa da importância de avaliar o impacto de alterações nos sistemas, mesmo que sendo apenas uma linha de código. Iremos apresentar os aprendizados, desafios e erros que já enfrentamos nestes 12 meses de uso e evolução do processo de desenvolvimento na HostGator America Latina com fases/atividades mais bem definidas e a importância de perpetuar esta visão para os demais setores da empresa. Além disso, apresentar sobre o presente, o crescimento e o futuro desta nova cultura voltada a usabilidade, qualidade, escala e segurança.
O documento discute a importância de testes automatizados para sustentar Continuous Delivery e DevOps. Ele explica os benefícios de testes automatizados, como feedback rápido e menos erros, e discute vários tipos de testes como testes unitários, de serviço, funcionais e de desempenho. Também fornece exemplos de ferramentas para cada tipo de teste.
Consumer APPs: 25 mil downloads em um fim de semanaGeneXus
O documento discute o lançamento de um aplicativo para o festival Virada Cultural de São Paulo que teve 25 mil downloads no primeiro fim de semana. Detalha as etapas de publicação do app nas lojas Apple Store e Google Play e infraestrutura para suportar 6 milhões de requisições. Aponta bons resultados com 15 mil downloads no Apple Store e 10 mil no Google Play.
GeneXus: Aportando valor al desarrollo de aplicaciones en ecosistemas SAP - D...GeneXus
Presentación del programa ProSur de Bunge Argentina.
GeneXus, una elección estratégica para gestionar el portafolio de aplicaciones corporativas, con SAP como "core business"
Lo que se viene: ¿Cómo escribirás tu futuro? - Laura VoglinoGeneXus
El mundo de hoy, marcado por las siguientes shifts en tecnología que conviven al mismo tiempo -los datos, la nube y la movilidad, ¿cómo podemos preveer la construcción de una diferenciación sostenible para ofrecer valor durarero en el tiempo? ¿Qué vamos a hacer de este momento como empresas, como individuos, como comunidades?
•Explotar los datos para redefinir su posición en la industria
•Capitalizar en la Nube para la reinvención de un modelo de negocios
•Involucrarse con su ecosistema -socios, desarrolladores y empleados- para lograr una ágil innovación.
Boliches Uy - De idea a realidad con GeneXus. - Martín TorradoGeneXus
En esta charla les contaremos cómo fue el proceso para crear Boliches Uy, una aplicación multiplataforma desarrollada con GeneXus para Android, iOS y Windows Phone. Desafíos, experiencia y el aprendizaje que este camino como emprendedores nos ha dejado. ¡Los esperamos!
Boliches Uy es una aplicación multiplataforma desarrollada 100% con GeneXus para Android, iOS y Windows Phone. Brinda la información actualizada y centralizada de la movida nocturna en Uruguay: boliches, pubs, discotecas, conciertos y ¡mucho más! Uruguay está cambiando la forma en la que sale. ¿y vos? ¿te vas a quedar afuera?.
Como aproveitar a revolução Web+Mobile com soluções multi-plataforma na Comun...GeneXus
Depois de mais de um ano e meio desenvolvendo soluções de Mobilidade, a W5 apresentará suas soluções mostrando as diversas possibilidades que se apresentam nesse segmento MOBILE que vem explodindo nos últimos anos e a integração Web + Mobile se torna essencial para criar aplicações multi-plataforma e multi-device de alto impacto.
Com soluções de notícias para empresas do segmento de Turismo PANROTAS e também na mão do cidadão na Praia Grande, passando pelo aprendizado de idiomas a W5 mostrará diversas soluções que integram o mundo Web/Mobile, estando assim cada vez mais perto do usuário.
Soluções que serão mostradas:
- MyCompany: uma solução para divulgação de noticias/blogs/fotos/videos/aniversários e eventos
- Q2L: um framework de aprendizado
- Ouvidoria: uma gestão participativa do cidadão para a melhoria da cidade
- TDA: visualizando dashboards de informação na Web e Mobile
GeneXus é uma plataforma de desenvolvimento que evoluiu ao longo do tempo para acompanhar as mudanças tecnológicas. Ela permite desenvolver aplicações para dispositivos móveis como BlackBerry, iPhone e Android. A plataforma oferece ferramentas para desenvolvimento, gestão de projetos e qualidade.
O documento resume a experiência da empresa Assessor Público com a plataforma GeneXus, tendo iniciado seu uso em 2007 e evoluído para versões mais recentes. Apresenta os benefícios da plataforma para o desenvolvimento de aplicações para a gestão da saúde pública municipal, como multiplataforma, independência tecnológica e facilidade de uso.
Tecnisa: Una visión del negocio y la tecnología utilizando GeneXus X Evolutio...GeneXus
O documento apresenta como a TECNISA, uma construtora e incorporadora brasileira, utiliza o GeneXus Evolution 3 em seu negócio e sistemas, incluindo o sistema WSIT e um projeto de migração desse sistema da versão 1 para a versão 3 do GeneXus. Apresenta também os benefícios do conector SAP implementado no GeneXus para integrar os sistemas da TECNISA com o ERP SAP.
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...GeneXus
El documento presenta la experiencia en el desarrollo de aplicaciones móviles para el sector salud en México. Se describen las ineficiencias del uso de formatos de papel que llevaron al desarrollo de una aplicación móvil, incluyendo errores en la captura de datos, pérdida de tiempo por desplazamientos y costos asociados. La solución implementada fue una aplicación con formularios digitales que precargan datos para su llenado en dispositivos móviles con arquitectura escalable y disponible en múltiples pl
O documento discute os principais pré-requisitos e decisões iniciais para a construção de software, incluindo a definição correta do problema, especificação de requisitos, projeto de arquitetura e escolha da linguagem de programação e convenções a serem utilizadas.
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Daniel Wildt
O documento discute técnicas e motivação para testes de software, incluindo: 1) A importância de criar um ambiente propício à qualidade e testes através de padronização, boas práticas e ferramentas; 2) Diferentes técnicas de teste como teste unitário, funcional, de estresse e integração; 3) Como métricas e revisões podem melhorar a qualidade do código. O objetivo final é demonstrar na prática exemplos desses testes.
Django é um framework web escrito em Python lançado em 2005 que promove princípios como DRY e separação de preocupações através do padrão MVC. Ele fornece funcionalidades como ORM, templates e administração para auxiliar no desenvolvimento rápido de aplicações web.
Os beneficios da automatização.
Victor Hugo Germano apresenta sua visão do processo IC para projetos em java.
Na apresentação são listados inúmeras ferramentas que se integram, garantindo uma melhor qualidade de software.
Introdução ao Windows Azure - Sessão 1 (mais teórica)Giovanni Bassi
O documento apresenta Giovanni Bassi, arquiteto de software, e seu seminário sobre Windows Azure. O seminário é dividido em duas sessões, a primeira sobre o que é computação na nuvem e Azure, e a segunda sobre os serviços do Azure como hosting, armazenamento e service bus.
Software Configuration Management Problemas e Soluçõeselliando dias
O documento discute problemas e soluções relacionados à gerência de configuração de software. Apresenta os conceitos básicos de gerência de configuração e problemas clássicos como falhas de comunicação, compartilhamento de dados e manutenção múltipla. Também aborda soluções como padronização, sistemas de controle de versão e processos, além de problemas menos comuns como linhas instáveis e manutenção em produção.
O documento apresenta os principais paradigmas de engenharia de software, como desenvolvimento clássico (cascata), prototipagem, modelo iterativo e espiral. Discute as etapas do ciclo de vida de desenvolvimento de software, como levantamento de requisitos, análise, projeto, implementação, testes e implantação. Também aborda os pontos positivos e negativos de cada paradigma.
1. O documento apresenta uma introdução ao framework Ruby on Rails, descrevendo suas principais características e funcionalidades.
2. É apresentado um exemplo prático de desenvolvimento de um sistema de blog usando Rails, cobrindo tópicos como geração de projeto, controllers, views e models.
3. O documento fornece instruções passo-a-passo para configurar e executar a aplicação de exemplo.
O documento apresenta Giovanni Bassi e sua palestra sobre ASP.Net MVC. A palestra irá explicar o que é ASP.Net MVC, quando usá-lo, seu padrão arquitetônico MVC e demonstrar criando controllers, views e rotas.
Scrum é um framework ágil para gestão e desenvolvimento de projetos. Origem no rugby, utiliza sprints, reuniões diárias e artefatos como product backlog para entregar valor de forma incremental. Equipes self-organized constroem software funcionando em colaboração estreita com clientes.
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
O documento discute a importância dos testes de software para garantir a qualidade e evitar bugs caros. Ele explica que testes devem ser realizados em três momentos: antes do desenvolvimento, durante o desenvolvimento e depois que o software é implantado. O documento também fornece exemplos de como práticas ágeis e testes automatizados podem melhorar a qualidade e reduzir custos.
O documento discute a importância da qualidade de software e como alcançá-la. Apresenta os desafios comuns entre testadores e desenvolvedores e como a automação de testes com ferramentas como o Visual Studio podem ajudar a superá-los, melhorando a comunicação, reprodutibilidade de defeitos e agilidade.
O documento fornece uma introdução ao Netbeans, um ambiente de desenvolvimento integrado (IDE) Java gratuito e de código aberto. Resume as principais funcionalidades do Netbeans, incluindo suporte a várias linguagens de programação, ferramentas visuais para construção de interfaces gráficas e colaboração em tempo real entre desenvolvedores. Finaliza apresentando recursos de treinamento e certificação da Sun para aprimorar carreira em Java.
Integracao Contínua com CruiseControl e phpUnderControlDiego Tremper
O documento descreve o processo de integração contínua para projetos PHP utilizando as ferramentas CruiseControl, phpUnderControl, PHPUnit, PHP_CodeSniffer e phpDocumentor. O resumo apresenta os principais pontos sobre como configurar e utilizar essas ferramentas para automatizar builds, execução de testes, análise de código e geração de relatórios e métricas.
Integração Contínua com CruiseControl e phpUnderControlManuel Lemos
O documento apresenta as ferramentas de integração contínua CruiseControl e phpUnderControl, descrevendo sua instalação, configuração e funcionalidades como a geração de documentação, execução de testes, análise de padrões e métricas de código.
Gerenciamento de Projeto para Desenvolvimento de Sistemaelliando dias
A metodologia SDEM90 fornece um conjunto sistematizado de tarefas para o desenvolvimento de software, dividindo o projeto em fases, categorias, subcategorias e atividades. O objetivo é melhorar a comunicação entre usuários e desenvolvedores e auxiliar o gerenciamento do projeto.
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
O documento discute a importância dos testes automatizados para entrega contínua e DevOps. Ele explica diferentes tipos de testes como testes unitários, de serviço e de interface do usuário e ferramentas para cada um. Também aborda tópicos como pirâmide de testes, antipadrões, cobertura de código e testes de mutação.
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
O documento descreve as ferramentas de integração contínua CruiseControl e phpUnderControl, explicando sua instalação e configuração para automatizar builds de projetos PHP. Também discute como essas ferramentas permitem geração de documentação, execução de testes, análise de código e métricas.
O documento discute as melhores práticas para o desenvolvimento de aplicações Java, abordando tópicos como processo de construção, gerenciamento, monitoramento, performance, disponibilidade, evolutividade, prazo, custo e qualidade. O autor enfatiza a importância de seguir padrões, especificações, modelagem, testes e arquitetura adequados.
O documento discute paradigmas de projeto de software, incluindo o modelo em cascata, prototipagem, espiral e incremental. Aborda as vantagens e desvantagens de cada paradigma, além de técnicas de 4a geração que automatizam parte do desenvolvimento.
Semelhante a Gestão de Projeto de Desenvolvimento Agil(XP) (20)
ClojureScript allows developers to use the Clojure programming language to build applications that compile to JavaScript. This enables Clojure code to run in environments where JavaScript is supported, like web browsers and mobile apps. ClojureScript leverages the Google Closure compiler and library to provide whole program optimization of Clojure code compiling to JavaScript.
Why you should be excited about ClojureScriptelliando dias
ClojureScript allows Clojure code to compile to JavaScript. Created by Rich Hickey and friends, it provides optimizations for performance while maintaining readability and abstraction. As a Lisp for JavaScript, ClojureScript controls complexity on the web and benefits from JavaScript's status as a compilation target for many languages.
Functional Programming with Immutable Data Structureselliando dias
1. The document discusses the advantages of functional programming with immutable data structures for multi-threaded environments. It argues that shared mutable data and variables are fundamentally flawed concepts that can lead to bugs, while immutable data avoids these issues.
2. It presents Clojure as a functional programming language that uses immutable persistent data structures and software transactional memory to allow for safe, lock-free concurrency. This approach allows readers and writers to operate concurrently without blocking each other.
3. The document makes the case that Lisp parentheses in function calls uniquely define the tree structure of computations and enable powerful macro systems, homoiconicity, and structural editing of code.
O documento lista e descreve as principais partes de um contêiner de carga seco, incluindo o painel frontal, laterais, traseira, teto, piso e estrutura inferior. Muitos componentes como painéis laterais, travessas do teto e fundo são numerados de acordo com sua localização. As portas traseiras contêm quadros, painéis, dobradiças e barras de fechamento.
O documento discute a história da geometria projetiva, desde Euclides até seu uso em computação gráfica. Aborda figuras-chave como Pascal, que foi pioneiro na área, e como a perspectiva foi aplicada nas artes ao longo dos séculos.
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
This document discusses the benefits of polyglot and poly-paradigm programming approaches for building more agile applications. It describes how using multiple languages and programming paradigms can optimize both performance and developer productivity. Specifically, it suggests that statically-typed compiled languages be used for core application components while dynamically-typed scripting languages connect and customize these components. This approach allows optimizing areas that require speed/efficiency separately from those requiring flexibility. The document also advocates aspects and functional programming to address cross-cutting concerns and concurrency challenges that arise in modern applications.
This document discusses JavaScript libraries and frameworks. It provides an overview of some popular options like jQuery, Prototype, Dojo, MooTools, and YUI. It explains why developers use libraries, such as for faster development, cross-browser compatibility, and animation capabilities. The document also discusses how libraries resemble CSS and use selector syntax. Basic examples are provided to demonstrate common tasks like hover effects and row striping. Factors for choosing a library are outlined like maturity, documentation, community, and licensing. The document concludes by explaining how to obtain library code from project websites or Google's AJAX Libraries API.
How to Make an Eight Bit Computer and Save the World!elliando dias
This document summarizes a talk given to introduce an open source 8-bit computer project called the Humane Reader. The talk outlines the goals of providing a cheap e-book reader and computing platform using open source tools. It describes the hardware design which uses an AVR microcontroller and interfaces like video output, SD card, and USB. The talk also covers using open source tools for development and sourcing low-cost fabrication and assembly. The overall goals are to create an inexpensive device that can provide educational resources in developing areas.
Ragel is a parser generator that compiles to various host languages including Ruby. It is useful for parsing protocols and data formats and provides faster parsing than regular expressions or full LALR parsers. Several Ruby projects like Mongrel and Hpricot use Ragel for tasks like HTTP request parsing and HTML parsing. When using Ragel with Ruby, it can be compiled to Ruby code directly, which is slow, or a C extension can be written for better performance. The C extension extracts the parsed data from Ragel and makes it available to Ruby.
A Practical Guide to Connecting Hardware to the Webelliando dias
This document provides an overview of connecting hardware devices to the web using the Arduino platform. It discusses trends in electronics and computing that make this easier, describes the Arduino hardware and software, and covers various connection methods including directly to a computer, via wireless modems, Ethernet shields, and services like Pachube that allow sharing sensor data over the internet. The document aims to demonstrate how Arduinos can communicate with other devices and be used to build interactive systems.
O documento introduz o Arduino, uma plataforma de desenvolvimento open-source. Discute as características e componentes do Arduino, incluindo microcontroladores, software e exemplos de código. Também fornece instruções básicas sobre como programar o Arduino usando linguagem C.
O documento apresenta um mini-curso introdutório sobre Arduino, abordando o que é a plataforma Arduino, como é estruturado seu hardware, como programá-lo, exemplos básicos de código e aplicações possíveis como controle residencial e robótica.
The document discusses various functions for working with datasets in the Incanter library for Clojure. It describes how to create, read, save, select rows and columns from, and sort datasets. Functions are presented for building datasets from sequences, reading datasets from files and URLs, saving datasets to files and databases, selecting single or multiple columns, and filtering rows based on conditions. The document also provides an overview of the Incanter library and its various namespaces for statistics, charts, and other functionality.
Rango is a lightweight Ruby web framework built on Rack that aims to be more robust than Sinatra but smaller than Rails or Merb. It is inspired by Django and Merb, uses Ruby 1.9, and supports features like code reloading, Bundler, routing, rendering, and HTTP error handling. The documentation provides examples and details on using Rango.
Fab.in.a.box - Fab Academy: Machine Designelliando dias
This document describes the design of a multifab machine called MTM. It includes descriptions of the XY stage and Z axis drive mechanisms, as well as the tool heads and network used to control the machine. Key aspects of the design addressed include the stepper motor selection, drive electronics, motion control firmware, and use of a virtual machine environment and circular buffer to enable distributed control of the machine. Strengths of the design include low inertia enabling high acceleration, while weaknesses include low basic resolution and stiffness unsuitable for heavy milling.
The Digital Revolution: Machines that makeselliando dias
The document discusses the results of a study on the effects of a new drug on memory and cognitive function in older adults. The double-blind study involved giving either the new drug or a placebo to 100 volunteers aged 65-80 over a 6 month period. Testing showed those receiving the drug experienced statistically significant improvements in short-term memory retention and processing speed compared to the placebo group.
The document discusses using Clojure for Hadoop programming. Clojure is a dynamic functional programming language that runs on the Java Virtual Machine. The document provides an overview of Clojure and how its features like immutability and concurrency make it well-suited for Hadoop. It then shows examples of implementing Hadoop MapReduce jobs using Clojure by defining mapper and reducer functions.
This document provides an overview of Hadoop, including:
1) Hadoop solves the problems of analyzing massively large datasets by distributing data storage and analysis across multiple machines to tolerate node failure.
2) Hadoop uses HDFS for distributed data storage, which shards massive files across data nodes with replication for fault tolerance, and MapReduce for distributed data analysis by sending code to the data.
3) The document demonstrates MapReduce concepts like map, reduce, and their composition with an example job.
Hadoop and Hive Development at Facebookelliando dias
Facebook generates large amounts of user data daily from activities like status updates, photo uploads, and shared content. This data is stored in Hadoop using Hive for analytics. Some key facts:
- Facebook adds 4TB of new compressed data daily to its Hadoop cluster.
- The cluster has 4800 cores and 5.5PB of storage across 12TB nodes.
- Hive is used for over 7500 jobs daily and by around 200 engineers/analysts monthly.
- Performance improvements to Hive include lazy deserialization, map-side aggregation, and joins.
Multi-core Parallelization in Clojure - a Case Studyelliando dias
The document describes a case study on using Clojure for multi-core parallelization of the K-means clustering algorithm. It provides background on parallel programming concepts, an introduction to Clojure, and details on how the authors implemented a parallel K-means algorithm in Clojure using agents and software transactional memory. They present results showing speedups from parallelization and accuracy comparable to R's implementation on both synthetic and real-world datasets.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
1. “Silicon Valley at Monte da Caparica.”
- PC World, June 2001
Gestão de projectos e desenvolvimento ágil
eXtreme Programming
ENEI 2006
Antão Almada
Strategic Software Development Director
2. eXtreme Programming
• Apresentação não formal.
• Há muitos livros e web sites com descrições enfadonhas sobre o
assunto.
• Há muita gente que não acredita nesta metodologia.
• Todas as metodologias têm vantagens e desvantagens.
• É possível combinar metodologias.
• “Gestão de projectos e desenvolvimento ágil”
3. YDreams
• Fundada em Junho de 2000.
– 1 gestor de projectos
– 4 programadores
– 1 designer
• Início de 2006
– 4 gestores de projectos
– 13 programadores
– 6 designers
– 2 electrotécnicos
• Fim de 2006
– 14 gestores de projectos
– 44 programadores
– 23 designers
– 5 electrotécnicos
– 7 controlo de qualidade
4. Problemas
• Derrapagens de prazos – durante o projecto torna-se claro que
não é possível cumprir os prazos.
• Cancelamento do projecto – cliente investiu e pode ficar com algo
que não funciona.
• Não aceitação – é apresentado ao cliente uma solução que não o
satisfaz.
• Complexidade técnica – plataformas e ferramentas não testadas.
• Número elevado de “defeitos” – foram deixados acumular até
tarde demais .
5. Soluções
• Derrapagens de prazos – ciclos muito curtos.
• Cancelamento do projecto – desenvolvimento é começado muito
cedo.
• Não aceitação – o cliente é incluído no ciclo de desenvolvimento.
• Complexidade técnica – integração contínua, standards de
código, programação a pares, posse colectiva, refactorização.
• Número elevado de “defeitos” – utilização de testes automáticos.
6. Práticas
• Testes
• Refactorização
• Programação a pares
• Posse colectiva
• Integração contínua
• Regras de codificação
7. Testes
• Escrita dos testes antes do desenvolvimento - “unit tests”
• Qualquer alteração no código é validada de imediato
• Aconselhamos o uso:
– NUnit (http://www.nunit.org/)
– MbUnit (http://www.testdriven.net/)
– TestDriven (http://www.testdriven.net/)
– NCover (http://www.ncover.org/)
8. Refactorização
• Técnica de melhorar o código sem alterar as funcionalidades.
• Assume que faz parte do ciclo de desenvolvimento.
• Alguns IDEs já permitem a modificação automática dos nomes de
variáveis, classes, funções, etc.
9. Programação a pares
• Dois programadores partilham o mesmo computador.
• Duas cabeças pensam melhor que uma.
• Pelo menos dois programadores estão familiarizados com essa
parte do código.
• Menos hipóteses dos testes falharem.
• Incentiva a partilha de conhecimento.
• Revisão do código feita continuamente.
• Um programador foca-se nos detalhes enquanto o outro foca-se
nos conceitos.
10. Posse colectiva
• Membros da equipa têm acesso a todo o código.
• “Revision Control System”
• Repositório centralizado de código fonte e recursos do projecto
• Permite backups periódicos
• Guarda histórico
• Possibilita o trabalho em equipa
• Aconselhamos o uso:
– Subversion (http://subversion.tigris.org/)
– TortoiseSVN (http://tortoisesvn.tigris.org/)
– AnkhSVN (http://ankhsvn.tigris.org/)
11. Revision Control System
• “Checkout” – vai buscar a última versão.
• “Commit” – coloca actualizações no servidor.
– Se entretanto o ficheiro tiver sido alterado faz “merge” do
ficheiro.
• “Tag” – guarda uma versão.
• “Branch” – cria “ramo” de desenvolvimento paralelo.
• “Merge” – insere “ramo” no “tronco” principal.
12. Integração contínua
• Validação automática de cada alteração.
– Compila
– Testa
– Gera documentação
– Analisa código
• Aconselhamos o uso:
– CruiseControl.NET (http://ccnet.thoughtworks.com/)
– CCTray (http://ccnet.thoughtworks.com/)
– NAnt (http://nant.sourceforge.net/)
– NDoc (http://ndoc.sourceforge.net/)
– FxCop (http://www.gotdotnet.com/team/fxcop/)
13. Regras de codificação
• Definição de regras para cada linguagem usada:
– Formatação
– Estrutura do projecto
– Nomes
– Processamento de erros
– Comentários
• Podem ser divididas nas seguintes categorias:
– Obrigatorias
– Directivas
– Recomendações
• Devem ser especificadas num Wiki
14. Registo de tarefas e problemas
• Não é possível testar tudo com “unit tests”
• Podem faltar testes para certas condições
• Controlo de qualidade deve detectar estas situações
• “Issue Tracking System”
• Fica tudo registado
• Histórico
• Permite:
– Atribuição de tarefas a membros da equipa
– Trabalho em equipa
– Estimar o progresso do projecto
15. Issue Tracking System
• Classificação por gravidade:
– Sai da aplicação
– Não há alternativa
– Há alternativa
– Pormenor
– Sugestão
• Tarefa passa por vários estados até ser resolvida:
– Criado
– Atribuído
– Resolvido
– Testado
– Fechado
16. Issue Tracking System
• Aconselhamos o uso:
– Trac (http://www.edgewall.com/trac/)
• Wiki – documentação, feedback e discussão
• Issue Tracker – registo de “problemas”
• Project Timeline – definição de “milestones”
• Code Browser – integração com o Subversion
• Changeset Viewer – histórico do projecto
• Plugins – extensível...
17. Rotina diária do programador
Escolher par
Escolher tarefa
Desenhar solução
Escrever teste
Escrever código Refractorar código
Integrar
Ir para casa
18. Princípios
• Semanas de 40 horas
– Programadores cansados:
• Produzem menos
• Criam mais “bugs”
• Programar apenas o necessário, nada mais...
19. eXtreme Programming
• Não é apenas uma metodologia
• É apoiada por uma série de ferramentas
• Estas ferramentas podem e devem ser usadas noutras
metodologias
• Simplifica o trabalho dos programadores (testes vs
documentação)
• Melhora a qualidade das aplicações
• Reduz os pontos de falha