Neste artigo o leitor será apresentado ao mundo do desenvolvimento e manutenção
de software envolvendo técnicas e práticas do Gerenciamento do Ciclo de Vida da
Aplicação ALM da sigla em inglês para Application Lifecycle Management e a cultura
Desenvolvedor/Operação (DevOps), será abordado um breve histórico de como
surgiu essas práticas, o que se deseja alcançar com a implantação, os principais
pilares de cada técnica e como implantar essas técnicas e práticas em uma fábrica
de software. Ao final deste artigo o leitor terá o conhecimento para iniciar a discursão
em sua organização para a implantação dessas técnicas e práticas com
embasamento.
Este documento apresenta o crescimento da cultura DevOps no mercado de tecnologia da informação. Ele descreve os principais conceitos de DevOps como automação, colaboração entre equipes de desenvolvimento e operações, e entrega contínua. Além disso, explica ferramentas populares de DevOps como Docker, Chef e Puppet que auxiliam na automação de processos.
Este documento compara diferentes técnicas de desenvolvimento ágil e práticas Lean, e discute os desafios e benefícios de cada uma. Ele também propõe um plano de ação para implementar essas técnicas em uma equipe de desenvolvedores de software.
Este artigo analisa as metodologias híbridas de desenvolvimento de software baseadas em publicações de autores que já contribuíram com a comunidade científica e acadêmica através de pesquisas e estudos de casos abordando o tema. Primeiramente, aborda-se uma série de acontecimentos, em ordem cronológica, que vão desde as primeiras soluções pensadas para fazer frente à crise de software até o surgimento dos métodos híbridos. Em seguida, são detalhadas algumas metodologias mais conhecidas, tanto tradicionais, quanto ágeis. Feito isso o uso dos paradigmas híbridos é descrito, e por fim, o trabalho é concluído com a análise dos trabalhos analisados.
O documento discute os processos de desenvolvimento de software, definindo-os como conjuntos de atividades que levam à produção de um produto de software. Descreve três modelos genéricos de processo - cascata, evolucionário e baseado em componentes - e explica que nenhum é ideal e as organizações devem customizar seus próprios processos.
O documento descreve o processo de criação de uma fábrica de software open-source chamada USINA, destacando as lições aprendidas. A fábrica está desenvolvendo um estudo de caso de um simulador de aquário para validar seu processo. O documento discute a infraestrutura, processo, artefatos e lições como a necessidade de processos leves e integração contínua em projetos open-source.
O documento discute a jornada da Powerlogic em alcançar certificações MPS.BR utilizando metodologias ágeis como Scrum. Apresenta a história da empresa com o uso de métodos tradicionais e ágeis ao longo dos anos, culminando na certificação nível C em 2010 utilizando Scrum.
O documento descreve os principais conceitos de engenharia de software, incluindo: (1) as camadas de engenharia de software focadas em qualidade, processos, métodos e ferramentas; (2) os modelos de processo de desenvolvimento de software como linear seqüencial, prototipação, incremental e espiral; (3) o Rational Unified Process (RUP) como um modelo de processo iterativo e incremental baseado em componentes e casos de uso.
O documento discute as motivações para o uso de Java EE Open Source e SAP NetWeaver para desenvolvimento de aplicações. Algumas vantagens incluem acesso a uma grande comunidade de desenvolvedores Java EE, custo benefício, melhoria contínua da qualidade e produtividade, e suporte da SAP para a plataforma Java EE. A arquitetura proposta utiliza ferramentas open source como Eclipse, Maven e frameworks como o jCompany dentro da plataforma SAP NetWeaver para desenvolvimento, gerenciamento de mudanças, teste e execução de aplic
Este documento apresenta o crescimento da cultura DevOps no mercado de tecnologia da informação. Ele descreve os principais conceitos de DevOps como automação, colaboração entre equipes de desenvolvimento e operações, e entrega contínua. Além disso, explica ferramentas populares de DevOps como Docker, Chef e Puppet que auxiliam na automação de processos.
Este documento compara diferentes técnicas de desenvolvimento ágil e práticas Lean, e discute os desafios e benefícios de cada uma. Ele também propõe um plano de ação para implementar essas técnicas em uma equipe de desenvolvedores de software.
Este artigo analisa as metodologias híbridas de desenvolvimento de software baseadas em publicações de autores que já contribuíram com a comunidade científica e acadêmica através de pesquisas e estudos de casos abordando o tema. Primeiramente, aborda-se uma série de acontecimentos, em ordem cronológica, que vão desde as primeiras soluções pensadas para fazer frente à crise de software até o surgimento dos métodos híbridos. Em seguida, são detalhadas algumas metodologias mais conhecidas, tanto tradicionais, quanto ágeis. Feito isso o uso dos paradigmas híbridos é descrito, e por fim, o trabalho é concluído com a análise dos trabalhos analisados.
O documento discute os processos de desenvolvimento de software, definindo-os como conjuntos de atividades que levam à produção de um produto de software. Descreve três modelos genéricos de processo - cascata, evolucionário e baseado em componentes - e explica que nenhum é ideal e as organizações devem customizar seus próprios processos.
O documento descreve o processo de criação de uma fábrica de software open-source chamada USINA, destacando as lições aprendidas. A fábrica está desenvolvendo um estudo de caso de um simulador de aquário para validar seu processo. O documento discute a infraestrutura, processo, artefatos e lições como a necessidade de processos leves e integração contínua em projetos open-source.
O documento discute a jornada da Powerlogic em alcançar certificações MPS.BR utilizando metodologias ágeis como Scrum. Apresenta a história da empresa com o uso de métodos tradicionais e ágeis ao longo dos anos, culminando na certificação nível C em 2010 utilizando Scrum.
O documento descreve os principais conceitos de engenharia de software, incluindo: (1) as camadas de engenharia de software focadas em qualidade, processos, métodos e ferramentas; (2) os modelos de processo de desenvolvimento de software como linear seqüencial, prototipação, incremental e espiral; (3) o Rational Unified Process (RUP) como um modelo de processo iterativo e incremental baseado em componentes e casos de uso.
O documento discute as motivações para o uso de Java EE Open Source e SAP NetWeaver para desenvolvimento de aplicações. Algumas vantagens incluem acesso a uma grande comunidade de desenvolvedores Java EE, custo benefício, melhoria contínua da qualidade e produtividade, e suporte da SAP para a plataforma Java EE. A arquitetura proposta utiliza ferramentas open source como Eclipse, Maven e frameworks como o jCompany dentro da plataforma SAP NetWeaver para desenvolvimento, gerenciamento de mudanças, teste e execução de aplic
O JAGUAR é um framework Java EE 5 de código aberto lançado pela Powerlogic para desenvolvimento de aplicações web. Ele fornece uma arquitetura reutilizável baseada em frameworks como Spring e Hibernate, além de gerar artefatos e oferecer padrões para casos comuns de uso. O JAGUAR pode ser licenciado gratuitamente ou por meio de assinatura que fornece suporte.
O documento descreve o desenvolvimento de um sistema de gestão de informações chamado G-INFO usando Scrum. Detalha a criação de um ambiente de desenvolvimento com ferramentas como NetBeans, Grails e Visual Paradigm e o desenvolvimento do sistema com base nos requisitos levantados e nos diagramas de classe e banco de dados. Conclui que os objetivos de criar o ambiente e sistema foram alcançados e a qualidade do software desenvolvido foi assegurada.
Entrega Contínua - 2º Encontro Rational de Desenvolvimento de SoftwareFelipe Freire
O documento discute a entrega contínua de software na prática. Apresenta os desafios em adotar DevOps nas empresas, como ambientes heterogêneos e desenvolvimento em silos. Defende que DevOps promove a inovação através do feedback contínuo entre desenvolvimento, testes e operações. Demonstra ferramentas da IBM como o UrbanCode e o Jazz.net para automatizar a implantação e release de aplicações.
O documento discute três fases da evolução da ergonomia e do processo de projeto, normas de qualidade de software como a ISO 9126, e métricas para medir a usabilidade de interfaces.
Este documento apresenta um experimento acadêmico para implementar um processo de desenvolvimento de software livre adaptado ao modelo OSS em uma fábrica de software distribuída. O projeto piloto desenvolveu um sistema chamado Canto Livre para compartilhamento de conteúdo artístico usando licenças Creative Commons. O processo baseado no RUP envolveu papéis como analista, arquiteto e programadores dentro da fábrica, com contribuições da comunidade externa por meio de um integrador.
Mudando a Cultura de umaOrganização para o Pensamento ÁgilLuiz C. Parzianello
O documento descreve a mudança da cultura organizacional da empresa ThyssenKrupp Elevadores para o pensamento ágil, utilizando métodos como Scrum e Extreme Programming. Inicialmente, a unidade de sistemas enfrentava demandas conflitantes e baixa produtividade. Após seis meses de melhoria contínua, metade da equipe adotou Scrum, com alguns desafios. Novos projetos também usaram as ferramentas, mas enfrentaram interferências. A empresa busca consolidar a unidade como centro de lucro e servir de modelo para out
1. O documento discute a seleção de ferramentas para um DevOps toolchain, incluindo os requisitos, taxonomias e pontos importantes a serem considerados para cada categoria de ferramenta.
2. Um DevOps toolchain é um conjunto de ferramentas que ajuda no desenvolvimento, implantação e gerenciamento de aplicativos durante todo o ciclo de vida do software.
3. É importante realizar uma avaliação inicial para entender o contexto atual e definir metas antes de selecionar as ferramentas.
O documento descreve o desenvolvimento da aplicação G-INFO usando Scrum em três etapas:
1) Criação de um ambiente de desenvolvimento usando ferramentas como NetBeans, Grails e Visual Paradigm.
2) Desenvolvimento da aplicação G-INFO com foco em qualidade usando requisitos, diagramas de classe e banco de dados.
3) Resultados atingiram os objetivos de criar o ambiente e aplicação, demonstrando a aquisição de novos conhecimentos.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
Este documento fornece uma introdução à engenharia de software, discutindo sua importância, características e desafios. Em três frases:
O documento introduz o conceito de engenharia de software, definindo-a como um processo sistemático e disciplinado para desenvolver software de forma econômica e confiável. Também discute os principais paradigmas de engenharia de software, como cascata e prototipação, e identifica a necessidade de métodos para lidar com os problemas crônicos no desenvolvimento de software, como atrasos e
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
1. O documento discute vários modelos e métodos ágeis como Scrum, SAFe, FDD, TDD, XP e Kanban.
2. A metodologia ágil visa acelerar o desenvolvimento de software através de entregas frequentes e adaptação aos requisitos mudando.
3. O Extreme Programming (XP) é uma metodologia ágil focada em equipes pequenas com requisitos flexíveis, envolvendo práticas como programação em pares e testes automatizados.
ALM (Application Management Lifecycle) é o processo de gerenciar o ciclo de vida de uma aplicação, desde da sua concepção até o momento em que ela deixa de ser usada. Esta trilha irá discutir técnicas ágeis para a construção e gerencimento de projetos de software, além de apresentar as ferramentas e dicas mais bacanas para que o seu projeto tenha sucesso não só durante a construção, mas também durante a produção.
Como aplicar ALM em projetos de metodologia tradicional e métodos ágeis de forma a obter resultados em Projetos de Desenvolvimento de Software. Ferramentas e suas aplicações em gestão de projetos e gestão de serviços.
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
O documento descreve diferentes modelos de desenvolvimento de software, incluindo o modelo cascata, incremental e RAD. O modelo cascata é linear e sequencial, enquanto os modelos incremental e RAD dividem o projeto em incrementos/partes menores com entregas parciais ao cliente.
O documento descreve vários métodos ágeis de desenvolvimento de software, incluindo RAD, DSDM, UP, RUP, XP, FDD, MSF e SCRUM. Estes métodos enfatizam a colaboração com o cliente, entregas frequentes e adaptação às mudanças.
O documento discute a utilização de sistemas de gestão integrada (ERP) utilizando software livre como alternativa para pequenas e médias empresas. Apresenta o histórico do surgimento dos sistemas ERP e suas vantagens para o controle e tomada de decisão em empresas. Também descreve soluções de software livre como o OpenBravo e Freedom ERP que podem atender às necessidades dessas empresas a um custo menor do que soluções proprietárias.
Palestra Gerenciamento Ágil de Projetos: desafios para a aplicação no desenvo...branchrp
O documento discute a aplicação de práticas ágeis de gerenciamento de projetos em produtos físicos. Apresenta seis práticas ágeis identificadas na literatura e os resultados de uma pesquisa empírica com empresas que indicaram a adoção de três dessas práticas. Também discute desafios como a dificuldade em alocar equipes dedicadas e co-localizadas, e conclui sugerindo modelos híbridos que balanceiem agilidade e formalização.
2 - Organizações e normas ISO - Prof.ª Cristiane FidelixCris Fidelix
O documento discute conceitos de qualidade de software e normas relacionadas. Aborda definições de qualidade, controle e garantia da qualidade, normas ISO como ISO 9000 e 9126, e modelos de maturidade como CMMI.
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
O documento discute o desenvolvimento ágil de software usando a metodologia Kanban. Apresenta as dificuldades do desenvolvimento de software tradicional e como as metodologias ágeis, incluindo Kanban, buscam solucionar esses problemas com foco em pessoas, interações e satisfação do cliente. Kanban usa um quadro visual para limitar o trabalho em progresso e melhorar o fluxo e a produtividade da equipe.
O documento discute o termo DevOps e como ele promove a união entre os departamentos de desenvolvimento, operações e qualidade de software. DevOps envolve a colaboração entre essas equipes através da automação, métricas, feedback e comunicação para entregar software de forma mais rápida e segura. O profissional DevOps trabalha para integrar essas equipes e garantir que a infraestrutura evolua para atender às necessidades do desenvolvimento ágil.
O JAGUAR é um framework Java EE 5 de código aberto lançado pela Powerlogic para desenvolvimento de aplicações web. Ele fornece uma arquitetura reutilizável baseada em frameworks como Spring e Hibernate, além de gerar artefatos e oferecer padrões para casos comuns de uso. O JAGUAR pode ser licenciado gratuitamente ou por meio de assinatura que fornece suporte.
O documento descreve o desenvolvimento de um sistema de gestão de informações chamado G-INFO usando Scrum. Detalha a criação de um ambiente de desenvolvimento com ferramentas como NetBeans, Grails e Visual Paradigm e o desenvolvimento do sistema com base nos requisitos levantados e nos diagramas de classe e banco de dados. Conclui que os objetivos de criar o ambiente e sistema foram alcançados e a qualidade do software desenvolvido foi assegurada.
Entrega Contínua - 2º Encontro Rational de Desenvolvimento de SoftwareFelipe Freire
O documento discute a entrega contínua de software na prática. Apresenta os desafios em adotar DevOps nas empresas, como ambientes heterogêneos e desenvolvimento em silos. Defende que DevOps promove a inovação através do feedback contínuo entre desenvolvimento, testes e operações. Demonstra ferramentas da IBM como o UrbanCode e o Jazz.net para automatizar a implantação e release de aplicações.
O documento discute três fases da evolução da ergonomia e do processo de projeto, normas de qualidade de software como a ISO 9126, e métricas para medir a usabilidade de interfaces.
Este documento apresenta um experimento acadêmico para implementar um processo de desenvolvimento de software livre adaptado ao modelo OSS em uma fábrica de software distribuída. O projeto piloto desenvolveu um sistema chamado Canto Livre para compartilhamento de conteúdo artístico usando licenças Creative Commons. O processo baseado no RUP envolveu papéis como analista, arquiteto e programadores dentro da fábrica, com contribuições da comunidade externa por meio de um integrador.
Mudando a Cultura de umaOrganização para o Pensamento ÁgilLuiz C. Parzianello
O documento descreve a mudança da cultura organizacional da empresa ThyssenKrupp Elevadores para o pensamento ágil, utilizando métodos como Scrum e Extreme Programming. Inicialmente, a unidade de sistemas enfrentava demandas conflitantes e baixa produtividade. Após seis meses de melhoria contínua, metade da equipe adotou Scrum, com alguns desafios. Novos projetos também usaram as ferramentas, mas enfrentaram interferências. A empresa busca consolidar a unidade como centro de lucro e servir de modelo para out
1. O documento discute a seleção de ferramentas para um DevOps toolchain, incluindo os requisitos, taxonomias e pontos importantes a serem considerados para cada categoria de ferramenta.
2. Um DevOps toolchain é um conjunto de ferramentas que ajuda no desenvolvimento, implantação e gerenciamento de aplicativos durante todo o ciclo de vida do software.
3. É importante realizar uma avaliação inicial para entender o contexto atual e definir metas antes de selecionar as ferramentas.
O documento descreve o desenvolvimento da aplicação G-INFO usando Scrum em três etapas:
1) Criação de um ambiente de desenvolvimento usando ferramentas como NetBeans, Grails e Visual Paradigm.
2) Desenvolvimento da aplicação G-INFO com foco em qualidade usando requisitos, diagramas de classe e banco de dados.
3) Resultados atingiram os objetivos de criar o ambiente e aplicação, demonstrando a aquisição de novos conhecimentos.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
Este documento fornece uma introdução à engenharia de software, discutindo sua importância, características e desafios. Em três frases:
O documento introduz o conceito de engenharia de software, definindo-a como um processo sistemático e disciplinado para desenvolver software de forma econômica e confiável. Também discute os principais paradigmas de engenharia de software, como cascata e prototipação, e identifica a necessidade de métodos para lidar com os problemas crônicos no desenvolvimento de software, como atrasos e
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
1. O documento discute vários modelos e métodos ágeis como Scrum, SAFe, FDD, TDD, XP e Kanban.
2. A metodologia ágil visa acelerar o desenvolvimento de software através de entregas frequentes e adaptação aos requisitos mudando.
3. O Extreme Programming (XP) é uma metodologia ágil focada em equipes pequenas com requisitos flexíveis, envolvendo práticas como programação em pares e testes automatizados.
ALM (Application Management Lifecycle) é o processo de gerenciar o ciclo de vida de uma aplicação, desde da sua concepção até o momento em que ela deixa de ser usada. Esta trilha irá discutir técnicas ágeis para a construção e gerencimento de projetos de software, além de apresentar as ferramentas e dicas mais bacanas para que o seu projeto tenha sucesso não só durante a construção, mas também durante a produção.
Como aplicar ALM em projetos de metodologia tradicional e métodos ágeis de forma a obter resultados em Projetos de Desenvolvimento de Software. Ferramentas e suas aplicações em gestão de projetos e gestão de serviços.
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
O documento descreve diferentes modelos de desenvolvimento de software, incluindo o modelo cascata, incremental e RAD. O modelo cascata é linear e sequencial, enquanto os modelos incremental e RAD dividem o projeto em incrementos/partes menores com entregas parciais ao cliente.
O documento descreve vários métodos ágeis de desenvolvimento de software, incluindo RAD, DSDM, UP, RUP, XP, FDD, MSF e SCRUM. Estes métodos enfatizam a colaboração com o cliente, entregas frequentes e adaptação às mudanças.
O documento discute a utilização de sistemas de gestão integrada (ERP) utilizando software livre como alternativa para pequenas e médias empresas. Apresenta o histórico do surgimento dos sistemas ERP e suas vantagens para o controle e tomada de decisão em empresas. Também descreve soluções de software livre como o OpenBravo e Freedom ERP que podem atender às necessidades dessas empresas a um custo menor do que soluções proprietárias.
Palestra Gerenciamento Ágil de Projetos: desafios para a aplicação no desenvo...branchrp
O documento discute a aplicação de práticas ágeis de gerenciamento de projetos em produtos físicos. Apresenta seis práticas ágeis identificadas na literatura e os resultados de uma pesquisa empírica com empresas que indicaram a adoção de três dessas práticas. Também discute desafios como a dificuldade em alocar equipes dedicadas e co-localizadas, e conclui sugerindo modelos híbridos que balanceiem agilidade e formalização.
2 - Organizações e normas ISO - Prof.ª Cristiane FidelixCris Fidelix
O documento discute conceitos de qualidade de software e normas relacionadas. Aborda definições de qualidade, controle e garantia da qualidade, normas ISO como ISO 9000 e 9126, e modelos de maturidade como CMMI.
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
O documento discute o desenvolvimento ágil de software usando a metodologia Kanban. Apresenta as dificuldades do desenvolvimento de software tradicional e como as metodologias ágeis, incluindo Kanban, buscam solucionar esses problemas com foco em pessoas, interações e satisfação do cliente. Kanban usa um quadro visual para limitar o trabalho em progresso e melhorar o fluxo e a produtividade da equipe.
O documento discute o termo DevOps e como ele promove a união entre os departamentos de desenvolvimento, operações e qualidade de software. DevOps envolve a colaboração entre essas equipes através da automação, métricas, feedback e comunicação para entregar software de forma mais rápida e segura. O profissional DevOps trabalha para integrar essas equipes e garantir que a infraestrutura evolua para atender às necessidades do desenvolvimento ágil.
Fundamentos da Integraçāo Contínua: Automaçāo na Geraçāo de Binários e Implan...Átilla Silva Barros
Este documento discute os fundamentos da integração contínua, que envolve a automação do processo de geração de binários e implantação de software. Ele apresenta os benefícios da automação desses processos, como entregas mais frequentes e confiáveis, feedback constante e aumento da qualidade do código. Um estudo de caso com um projeto open source é usado como exemplo para demonstrar como a automação pode ser implementada.
O documento descreve a implementação do framework SAFe em uma equipe de TI para melhorar os processos ágeis. Detalha como critérios de aceite mal escritos estavam causando atrasos e bugs, e como a empresa melhorou ao envolver toda a equipe na criação dos critérios seguindo padrões similares a casos de uso.
Este artigo relata como foi abordada a metodologia ágil SCRUM, durante a elaboração de um software, apresentado como resultado de um TCC para obtenção do título de bacharel em Sistemas de Informação.
Microsoft - Application Lifecycle Management - Visão GeralAlan Carlos
O documento discute Application Lifecycle Management (ALM), que é o processo de gerenciar o ciclo de vida de uma aplicação desde sua concepção até manutenção. ALM busca reduzir gastos com atrasos, retrabalho e testes inadequados. O documento também descreve os pilares de pessoas, processos e ferramentas envolvidos no ALM, assim como suas principais fases de definição, construção e operação.
TechNet - e-Book- Artigos sobre Test ManagerAlan Carlos
O documento discute abordagens de testes de software, incluindo testes analíticos, convencionais e baseados em qualidade. Testes analíticos são rigorosos e baseados em matemática, enquanto testes convencionais medem o progresso do desenvolvimento e testes de qualidade focam no processo de desenvolvimento. Várias técnicas de teste são discutidas para cada abordagem.
A cultura DevOps enfatiza a colaboração entre desenvolvimento e operações, promovendo equipes autônomas e compartilhando responsabilidades. A automação é fundamental para facilitar a colaboração ao liberar tempo para outras atividades e reduzir erros. O Docker auxilia tanto desenvolvedores quanto operações, permitindo ambientes independentes da infraestrutura e agilidade no deploy de aplicações.
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de SoftwareWelington Monteiro
A abordagem ágil trouxe ganhos significativos para as organizações no que tange o desenvolvimento de software, sendo que com relação aos defeitos de software, algo em torno de 10% de melhoria da qualidade.
Porém, ainda existe uma parcela significativa de problemas relacionados a ambientes e todo o processo de publicação em produção nas diversas fases do ciclo de desenvolvimento do software. Pesquisa apontada pelo TMMI (Test Maturity Model integration) em alguns casos que 53% dos problemas estão relacionados a ambiente.
Além qualidade, produtividade, segurança e redução de riscos, existem outros importantes benefícios do DevOps:
- Sinergia: a sinergia entre as equipes é fundamental para atingir agilidade e qualidade nos resultados;
- Proatividade e prevenção: soluções são desenvolvidas e implantadas de forma colaborativa, a TI consegue ser proativa, resolvendo eventuais problemas antes que causem impacto negativo ao negócio;
- Menos custo e mais qualidade: com processos de entregas cada vez mais automatizados, é possível reduzir consideravelmente os custos e diminuir as falhas humanas.
Empresas inovadoras como Facebook, Amazon e Google são exemplos de organizações que aplicam DevOps e apresentam números impressionantes. A Amazon, por exemplo, faz uma mudança em seus sistemas, em média, uma vez a cada 11,6 segundos. Já com relação a taxa de falhas, apenas 0,001% dos deployments causaram uma pane no sistema da multinacional.
Desta forma, com o DevOps - que é o 'agile' entre desenvolvimento e produção - é possível identificar fatores que contribuem para reduzir os riscos destas falhas e assim prover uma maior qualidade de software, potencializando a disseminação e o uso do DevOps nas organizações, e por conseqüência trazendo ao desenvolvimento ágil, um resultado mais efetivo junto ao cliente.
1) Engenharia de software estuda a construção de software com base em pilares como gerenciamento de processo, processo de software e qualidade de software.
2) Processo de software é a sequência de atividades, métodos e ferramentas para produção efetiva de software.
3) Os principais modelos de ciclo de vida incluem cascata, em V, incrementais e evolutivos/iterativos como espiral e ágil, cada um com vantagens e desvantagens.
O documento discute as origens do movimento DevOps e as tensões entre as equipes de desenvolvimento (Devel) e infraestrutura (Infra). Originalmente, Devel e Infra trabalhavam de forma descoordenada e conflituosa, com Infra se recusando a atender às demandas de Devel. Isso gerava atrasos e incidentes frequentes. DevOps surgiu para promover a colaboração entre as equipes e permitir que ambas trabalhem de forma automatizada e contínua.
Proposta De Um Protótipo Para Avaliação Da Maturidade em Gestão Da Inovação D...Diógenes Almeida
Para se destacar perante a concorrência, as empresas do segmento de tecnologia têm investido na área de inovação e em métodos ágeis, que são baseados na entrega contínua. Os métodos ágeis utilizam pouca documentação, com isso muitas informações levantadas são armazenadas em meios informais de comunicação, o que acarreta em perda de informações. Levando em consideração os métodos ágeis, o tema inovação e o problema da perda da informação, este trabalho propõe um protótipo para avaliação da maturidade em gestão da inovação de projetos baseados em metodologias ágeis. O protótipo trouxe vários benefícios, como: apoio à melhora contínua do projeto e auxílio a fiscalização do andamento do projeto.
O documento descreve como um ambiente de desenvolvimento de software foi criado utilizando ferramentas como Netbeans, Grails e Visual Paradigm para UML. O ambiente foi usado para desenvolver a aplicação G-INFO utilizando Scrum. Diagramas de classe e banco de dados foram criados para especificar os requisitos da aplicação.
Este documento resume as principais novidades e benefícios da Versão 12 da linha RM da TOTVS, incluindo melhorias no modelo de desenvolvimento incremental, na ferramenta de atualização de versão da base de dados e na integração com o Fluig. As soluções para Construção & Projetos, Educação e Recursos Humanos receberam atualizações significativas com foco em usabilidade, mobilidade, pagamentos online e gestão de estágios e competências.
TDC2018FLN | Trilha Agile - ALM e ATLM, a importância dos LifeCycles no desen...tdc-globalcode
O documento discute a importância dos processos do Application Lifecycle Management (ALM) e do Application Testing Lifecycle Management (ATLM) no desenvolvimento de software. O ALM engloba processos e ferramentas que integram as disciplinas do ciclo de vida da aplicação, desde a definição dos requisitos até a implantação em produção. Já o ATLM descreve um processo estruturado para preparar, definir, construir e executar testes automatizados.
O documento discute a importância dos processos do Application Lifecycle Management (ALM) e do Application Testing Lifecycle Management (ATLM) no desenvolvimento de software. O ALM engloba processos e ferramentas que integram as disciplinas do ciclo de vida da aplicação, desde a definição dos requisitos até a implantação em produção. Já o ATLM descreve um processo estruturado para preparar, definir, construir e executar testes automatizados de forma a evitar erros comuns nesse processo.
[1] O documento discute como as práticas de Integração Contínua e Testes Automatizados podem melhorar o desenvolvimento de software, tornando-o mais confiável para o usuário final. [2] Ele apresenta uma pesquisa realizada em uma empresa que analisou a implementação dessas técnicas e propôs mudanças no processo de desenvolvimento. [3] Os resultados sugerem que essas práticas podem contribuir para a construção de um software de maior qualidade.
DevOps é um movimento que prega a maximização da comunicação entre equipes de desenvolvimento e operações, além da automação da infraestrutura e monitoração de software. Isso traz benefícios como agilidade nos testes e ambientes confiáveis. Na abordagem DevOps, testadores contribuem automatizando testes e infraestrutura, melhorando a qualidade e velocidade de entrega de software.
Semelhante a Desenvolvimento e manutenção de software usando práticas do gerenciamento do ciclo de vida da aplicação e desenvolvedor/operação (20)
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
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
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.
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).
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Desenvolvimento e manutenção de software usando práticas do gerenciamento do ciclo de vida da aplicação e desenvolvedor/operação
1. DESENVOLVIMENTO E MANUTENÇÃO DE SOFTWARE USANDO
PRÁTICAS DO GERENCIAMENTO DO CICLO DE VIDA DA
APLICAÇÃO E DESENVOLVEDOR/OPERAÇÃO
Washington Clemente dos Santos Borges1
Orientador: Gustavo Monti Rocha2
RESUMO
Neste artigo o leitor será apresentado ao mundo do desenvolvimento e manutenção
de software envolvendo técnicas e práticas do Gerenciamento do Ciclo de Vida da
Aplicação ALM da sigla em inglês para Application Lifecycle Management e a cultura
Desenvolvedor/Operação (DevOps), será abordado um breve histórico de como
surgiu essas práticas, o que se deseja alcançar com a implantação, os principais
pilares de cada técnica e como implantar essas técnicas e práticas em uma fábrica
de software. Ao final deste artigo o leitor terá o conhecimento para iniciar a discursão
em sua organização para a implantação dessas técnicas e práticas com
embasamento.
PALAVRAS-CHAVE: ALM, DevOps, Desenvolvimento e Manutenção de Software.
INTRODUÇÃO
Segundo Durães (2012) estamos na era do engajamento, da tecnologia. Hoje
os consumidores de tecnologia estão cada vez mais exigentes com os produtos que
consomem, e se faz necessário que o mercado de software acompanhe essas
mudanças. Desta forma, as empresas que desenvolvem softwares tem a missão de
alinhar seus processos de desenvolvimento e a operação de tal forma que seja
possível entregar software de maneira rápida mantendo a continuidade dos serviços.
Washington Clemente dos Santos Borges, concluinte do curso de Pós-Graduação em
Engenharia de Software Centrada em Métodos Ágeis, Analista de Sistemas na Maxprocess
Consultoria, ton.borges@gmail.com.
Gustavo Monti Rocha, Analista de Sistemas no Serviço Federal de Processamento de
Dados - SERPRO
2. Sendo assim, existem atualmente algumas disciplinas e técnicas que podemos
aplicar para que seja possível atingir esses objetivos.
PROBLEMA
Atualmente o tamanho dos softwares desenvolvidos tem sido cada vez maior.
Há cerca de 30 anos eles eram setoriais, contudo, nos dias de hoje eles controlam
toda a operação de uma empresa. Devido a esta mudança, se faz necessário cuidar
melhor de toda a cadeia produtiva do software, ou seja, desde como e onde
armazenar os códigos fontes à maneira como ele é entregue.
JUSTIFICATIVA
Neste artigo vamos introduzir o leitor ao mundo do desenvolvimento ágil de
software, através do gerenciamento do ciclo de vida da aplicação (ALM) e
Operação/Desenvolvimento (DevOps). O leitor irá compreender as técnicas
utilizadas por essas disciplinas e verá como é possível unir estas de forma que
possa ajudar no processo de desenvolvimento/manutenção de software de forma a
atender o mercado de forma mais rápida e dinâmica.
DEVOPS
HISTÓRIA
O termo DevOps foi criado em 2009 na conferência Velocity da O'Reilly com a
apresentação do trabalho 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
por John Allspaw e Paul Hammond. Entretanto, Carvalho (2013) relata que em 2008
já se discutia sobre o assunto com o termo “infraestrutura ágil”.
Willis (2011) relata que no Agile 2008 surgiram conversas sobre como
incorporar a metodologia ágil na infraestrutura, e a lista de discussão agile-sysadmin
foi quem iniciou a construção da ponte entre desenvolvedores e administradores de
sistemas. Patrick Debois era um dos participantes desta lista e um grande entusiasta
do assunto. Após assistir a palestra de John e Paul ele ficou tão animado que criou
3. ainda em 2009 o evento chamado DevOpsDay. Para Carvalho (2013) foi nesse
encontro na cidade Ghent – Bélgica no final de 2009 que tudo começou. Esse
evento continua acontecendo em várias partes do mundo ano após ano.
COMO FUNCIONA A INFRAESTRUTURA E O DESENVOLVIMENTO DE
SOFTWARE HOJE
Carvalho (2013) faz um relato sobre as atividades desses departamentos hoje
em dia: a infraestrutura é responsável pela manutenção dos sistemas sendo ela
quem faz todos os deploys e rollbacks. É também responsável por monitorar cada
um, verificando disponibilidade, carga em servidores e se preocupar com os SLA
(acordo de nível de serviço). Como consequência, o impacto de uma parada na
aplicação é grande, podendo gerar grandes prejuízos financeiros.
Com esse cenário, Carvalho (2013) afirma que a preocupação da
infraestrutura é proteger o valor do negócio.
Os desenvolvedores estão constantemente criando e aprimorando suas
aplicações, com isto novas versões são criadas e precisam ser
disponibilizadas, assim seus clientes poderão usufruir dos recursos
solicitados. (CARVALHO, 2013)
Nesta citação de Carvalho (2013) é fácil perceber que irá existir um
conflito entre desenvolvimento e infraestrutura, pois o desenvolvimento precisa que
suas alterações tenham suas builds realizadas de maneira rápida de forma a
aumentar do valor do negócio.
Nessa cultura, a equipe de operações normalmente é isolada da de
desenvolvimento, e as interações entre as duas é evitada ou forçada. A
característica marcante desse extremo é que o desenvolvimento e as
operações têm objetivos marcadamente contrários. A equipe de
desenvolvimento é comprometida e recompensada com entregas de novas
funcionalidades e em levar o produto adiante. O objetivo da equipe de
operações é manter a estabilidade acima de tudo. Sem a comunicação
correta, os objetivos entram em conflito, pois o interesse da equipe de
operações é não entregar novas funcionalidades, e o maior interesse do
desenvolvimento é entregar novas funcionalidades o mais rápido possível.
(HASHIMOTO, 2013),
4. Hashimoto (2013) confirma a visão de Carvalho sobre esse conflito existente
hoje entre infraestrutura e desenvolvimento onde cada setor somente se preocupa
com os resultados a serem entregues de seus respectivos setores.
MUDANÇAS NECESSÁRIAS
Carvalho (2013) relata sobre a necessidade da evolução na infraestrutura de
forma rápida e que o desenvolvimento precisa ter controle de todas as fases das
gerações das builds e deploy. Na infraestrutura isso se dá na parte de
automatização de tarefas, ela deve prover meios para que o desenvolvedor consiga
fazer deploy de forma automática, sem necessidade de interversão da infraestrutura.
Sete (2013) ainda comenta sobre a necessidade do feedback contínuo, seja
ele de pessoa ou de máquina, onde infraestrutura e desenvolvimento tenham uma
melhor comunicação.
CULTURA DEVOPS
Carvalho (2013) relata que Patrick Debois diz que DevOps é uma cultura, e
que essa seria dividida em 4 partes, a saber:
•
Cultura
o
o
Fim das divisões
o
Relação saudável entre as áreas
o
•
Colaboração
Mudança de comportamento
Automação
o
Deploy
o
Controle
5. o
o
Gerência de configuração
o
•
Monitoração
Orquestração
Avaliação
o
o
Medições
o
Performance
o
•
Métricas
Logs e integração
Compartilhamento
o
O feedback é tudo
o
Boa comunicação entre a equipe
APPLICATION LIFECYCLE MANAGEMENT (ALM)
HISTÓRIA
O ALM (Gerenciamento do Ciclo de Vida da Aplicação) surgiu da necessidade
de controlar toda a cadeia produtiva do software. Farias (2012) lembra que com o
avanço da tecnologia em diversos campos, o software tem ficado cada dia mais
complexo e gerando cada vez mais valor aos negócios dos clientes. Essa
complexidade a que Farias (2012) se refere vem da necessidade da integração do
software com outros softwares, e/ou alteração em softwares críticos que já estão em
produção.
Farias define todo esse processo de construção de novos softwares e
alteração dos que já existem de ALM.
6. PILARES PARA ALM
Condé (2009) define que o ALM é estruturado em cima de três pilares que se
complementam. São eles: pessoas, processos e ferramentas, que quando unidos
fornecem os recursos necessários para que as empresas possam gerenciar todo o
ciclo de vida de uma aplicação.
•
PILAR PESSOAS
Pessoas
bem
treinadas
e
capacitadas
formam
a
cola
que
unem
adequadamente as ferramentas e os processos do ALM.
•
PILAR PROCESSOS
O pilar “processos” é identificado como todo o conjunto de boas práticas,
artefatos, guias e manuais que conduzem a construção e manutenção de uma
aplicação.
•
PILAR FERRAMENTAS
Por último, as “ferramentas” são os meios/equipamentos/tecnologias que
automatizam e facilitam a condução dos processos pelas pessoas.
DISCIPLINAS PRESENTES NO ALM
Vamos analisar abaixo todas as disciplinas que Condé (2009) classifica como
disciplinas presentes e essenciais ao ALM.
GERENCIAMENTO DE REQUISITOS
Condé (2009) define o gerenciamento de requisitos como a prática de
documentar e manter a rastreabilidade dos requisitos ao longo do ciclo de vida da
aplicação. Dentro do gerenciamento de requisitos temos algumas funcionalidades:
•
Documentar os funcionais e não funcionais;
•
Identificar se estão aderentes com as necessidades de negócio;
•
Priorizar os requisitos;
7. •
Selecionar os que serão implementados no projeto ou em fase específica;
•
Identificar a dependência entre os mesmos;
•
Mapeá-los com a arquitetura;
•
Mapeá-los com as funcionalidades da aplicação;
•
Verificar se foram atendidos e estão em conformidade com as necessidades
dos usuários.
GERENCIAMENTO DA CONFIGURAÇÃO DE SOFTWARE
Dantas (2012) define a gerencia de configuração como uma disciplina que
controla e notificam as inúmeras correções, extensões e adaptações aplicadas
durante o ciclo de vida do software de forma a assegurar um processo de
desenvolvimento e evolução sistemático e rastreável, sendo indispensável quando
equipes manipulam, muitas vezes em conjunto, artefatos comuns.
Condé (2009) ainda define algumas funcionalidades realizadas pela gerencia de
configuração, a saber:
•
Controlar o acesso aos artefatos;
•
Armazenar as múltiplas versões de cada artefato;
•
Rastrear as modificações de cada versão;
•
Comparar versões;
•
Identificar a versão dos artefatos que estão diretamente ligados a uma
versão final da aplicação;
•
Restaurar versões especificas dos artefatos baseados em uma versão
específica da aplicação.
MONTAGEM E INTEGRAÇÃO
Para Condé (2009) A disciplina de Montagem e Integração consiste na prática de
unir todos estes componentes em apenas um único pacote, a fim de ser testado e
distribuído na infraestrutura de TI. Algumas das funcionalidades da disciplina são:
•
Recuperar todos os artefatos do repositório de código-fonte;
•
Mapear os artefatos com a nova versão da aplicação;
8. •
Compilar o código-fonte;
•
Organizar o código compilado em um específico layout conforme definido;
•
Criar um pacote de instalação (setup) para ser testado;
•
Abortar o processo de build caso encontre algum erro ou inconsistência
nos artefatos.
ENGENHARIA E DISTRIBUIÇÃO
Para Condé (2009) a disciplina de Engenharia de Distribuição é responsável
por garantir a consistência das diversas versões da aplicação:
•
Documentação das dependências externas de cada versão;
•
Minimizar o tempo entre as atualizações de versões;
•
Utilização de ferramentas para automatizar a distribuição das versões ou
correções;
•
Tratar rapidamente as falhas de distribuição.
GERENCIAMENTO DE DEFEITOS
Quintela e Araújo (2012) definem que a gerência de defeitos tem como
objetivo definir práticas para prevenir os defeitos e minimizar os riscos de um projeto.
Condé (2009) define algumas ações da disciplina de Gerenciamento de
Defeitos:
•
Descrever o comportamento esperado;
•
Descrever o comportamento ocorrido;
•
Descrever os passos necessários para reproduzir o defeito;
•
Priorizar os defeitos conforme a demanda;
•
Direcionar o defeito para ser corrigido por um desenvolvedor;
•
Registrar se o defeito foi corrigido.
9. TESTE UNITÁRIO, INTEGRADO E DE REGRESSÃO
O teste unitário é o teste isolado e exercido apenas sobre um componente,
que pode ser uma classe ou um método. Os testes integrados atuam sobre módulos,
é uma tarefa normalmente executada pelos programadores. Os testes de regressão
verificam se as alterações introduzidas a cada novo build não geraram novos
defeitos. O benefício de aplicar estes testes é o de garantir a qualidade do software
e sua conformidade com os requisitos definidos. Algumas ações:
•
Criação de testes unitários para cada componente;
•
Criação dos testes integrados no nível de módulos lógicos e casos de uso;
•
Os testes são também considerados artefatos, e assim devem ser
armazenados dentro do repositório;
•
Uso de ferramentas para automatizar a geração de relatórios e logs de
erros.
ANALISE DE CÓDIGO
A disciplina Análise de Código é responsável em identificar se o código escrito
está aderente a padrões e políticas da empresa. Algumas ações realizadas por esta
disciplina:
•
Validar o formato e estilo de codificação;
•
Verificar a documentação interna do código;
•
Garantir o uso de “design patterns”;
•
Detectar problemas de desempenho;
•
Identificar vulnerabilidades conforme as políticas de segurança;
•
Garantir a proteção e privacidade das informações que a aplicação
manipula;
•
Identificar a compatibilidade da aplicação em conformidade com normas
de mercado.
10. TESTE DE SISTEMA
Condé (2009) afirma que a disciplina Teste de Sistema envolve o teste da
aplicação quando completada. Os testes funcionais, conhecidos como testes “de
caixa preta”, são executados por esta disciplina. Eles procuram identificar se a
aplicação está aderente aos requisitos, além de serem usados como ferramentas
para aceitação ou não da aplicação construída. Os testes de sistema são facilitados
quando as disciplinas de gerenciamento de requisitos, configuração de software,
análise de código e gerenciamento de defeitos são executadas corretamente.
Algumas ações típicas desta disciplina:
•
Detectar problemas em desempenho;
•
Detectar se os requisitos estão presentes na aplicação.
METODOLOGIA
Criar um roteiro de implantação do ALM e DevOps para uma fábrica de
software de Belo Horizonte, Minas Gerais, que trabalha com tecnologia Microsoft e
Eclipse com o SDK Android.
Atualmente na empresa já existe uma instalação do Team Foundation Server
(TFS) na versão 2012 que é usado como controle de versão, sem nenhum benefício
adicional.
Para o rastreamento de defeitos e lançamentos de tarefas, hoje é usado o
Redmine, que posteriormente será substituído pelo TFS usando a estrutura de itens
de trabalho.
Abaixo serão descritos 7 passos para a implantação deste roteiro,
considerando a realização de apenas um passo por mês.
Passo 1:
Configuração do Controle de Versão: Será configurado para cada projeto
específico, branchings, garantindo assim, que sempre exista um branching para
Produção, Homologação e Desenvolvimento. Cada projeto especifico receberá suas
11. configurações de segurança, ou seja, somente membros da equipe do projeto
poderão ter acesso aos arquivos, podendo também controlar quais arquivos terão
check outs exclusivos evitando que seja necessário realizar merge em arquivos com
alto grau de complexidade para essa operação.
Passo 2:
Configuração dos Itens de Trabalho: Nesta etapa serão lançadas todas as
tarefas, sejam de defeitos, implementação ou até mesmo de testes. Com o item de
trabalho configurado e sendo usado da maneira correta, será possível criar a
rastreabilidade do código, pois ao fazer o check in de alguma alteração no código,
será necessário informar a qual item de trabalho pertence determinada alteração
mantendo principalmente a rastreabilidade entre os mesmos.
Serão configurados alguns relatórios e gráficos, para que se possa saber: os
itens
de
trabalho
pendentes
de
implementação,
quantos
são
de
erros,
acompanhamento em tempo real do andamento dos itens de trabalho, product
backlog concluído e outros.
Passo 3:
Testes unitários: Serão realizados workshops sobre como implementar de
forma correta testes unitários, quando e onde aplicar para que com isso a qualidade
dos códigos sejam melhorada.
Passo 4:
Ainda referente a testes, será implementado o teste funcional, usando o Test
Manager do Visual Studio. Com ele é possível trabalhar com o conceito de defeitos
ricos, pois isso acaba com o dilema de que isso "funciona na minha máquina”. O
Test Manager coleta dados da aplicação enquanto realiza os testes, inclusive
criando um IntelliTrace, que é a pilha de execução da aplicação que em casos de
erros o desenvolvedor pode ver o que estava na memória no momento do erro.
Passo 5:
Configuração do Lab Manager: Esse passo terá um grande envolvimento da
equipe de Infraestrutura, onde será criada uma biblioteca de máquinas virtuais, para
que os testadores possam ter ambientes distintos para testes.
12. O Lab Manager é um gerenciador de ambientes virtuais, que estende o TFS,
onde os testadores de software podem criar e gerenciar seus ambientes, conforme a
necessidade de cada software a ser testado.
Com o Lab Manager a cada erro encontrado o testador pode realizar um
snapshot da máquina virtual e enviar para o desenvolvedor que irá receber a
máquina no estado que ocorreu o erro.
Passo 6:
Configuração de Testes de Interface: Até o momento já temos alguns
processos de testes implantados, agora deve-se aprimorar essas técnicas usando o
Coded UI Test.
Com o Coded UI Test é possível gravar uma macro com os itens a serem
testados na interface do aplicativo, com isso, é gerado o código de teste onde o
Visual Studio é capaz de executar.
Passo 7:
Configuração do Team Build: O build da aplicação será realizado de forma
automatizada, ou seja, a cada build que o TFS realizar será executada toda a bateria
de testes, sejam eles unitários ou funcionais. Ainda neste passo será configurado o
deploy continuo em ambiente de homologação. A cada build realizado com sucesso,
todos os itens de trabalhos que pertencem ao build gerado serão integrados no
branching de homologação e será realizado o deploy no servidor de homologação.
CONCLUSÃO
A implantação do ALM e DevOps, causa uma mudança de cultura muito
grande na empresa. Ela deve sempre ser realizada de forma que minimize os
impactos para a equipe de forma que não atrapalhe o andamento dos projetos e que
todos os envolvidos se sintam confortáveis com essa mudança. Ela deve ser
realizada e pensada à longo prazo, pois os resultados serão percebidos conforme o
avanço de cada etapa.
É importante ressaltar que, a implantação irá variar de empresa para empresa
conforme a demanda e/ou necessidade de cada uma. Sendo assim, é necessário
13. realizar uma análise do ambiente. Nem todas as políticas do ALM precisam ser
implantadas. Deve-se realizar uma análise empresarial para identificar os pontos de
carência e onde as práticas do ALM agregam maior valor.
Devido ao prazo estimado para implantação completa deste trabalho (em
torno de 7 meses), não será possível apresentar neste artigo os resultados obtidos
com a implantação aqui proposta.
REFERÊNCIAS
CARVALHO, J. A. 2013. Disponível em: <http://gutocarvalho.net/octopress/2013/03/
16/o-que-e-um-devops-afinal/> Acesso em: 10/10/2013
HASHIMOTO, M. 2013. Disponível em: <http://www.infoq.com/br/articles/wide-rangedevops> Acesso em: 13/10/2013
DURÃES, R. Disponível em: <http://www.microsoftvirtualacademy.com/Content/
ViewContent.aspx?et=2170&m=2166&ct=14599#?fbid=zloEhVZMcNU> Acesso em:
01/10/2013
SETE, M. 2013. Palestra ALM Pratices.
FARIAS, W. 2012. Disponível em: <https://www.ibm.com/developerworks/
community/blogs/rationalbrasil/entry/alm?lang=en> Acesso em: 16/11/2013
CONDÉ,
L.
2009.
Disponível
em:
<http://msdn.microsoft.com/pt-br/
library/ee156630.aspx#item2> Acesso em: 15/11/2013.
DANTAS, C. 2012. Disponível em: <http://www.devmedia.com.br/gerencia-deconfiguracao-de-software/9145#ixzz2kscbTc5z> Acesso em: 16/11/2013
QUINTELA, B 2012 E ARAÚJO, M. 2012. Engenharia de Software Magazine Edição
47.
WILLIS, J 2011. Disponível em: http://itrevolution.com/the-convergence-of-devops/
Acesso em: 16/11/2013.
14. TRABALHO DE CONCLUSÃO DE CURSO PÓS-GRADUAÇÃO LATO SENSU
Aluno (a):
Washington Clemente dos Santos Borges
Curso:
Turma:
Engenharia de Software Centrada em Métodos Ágeis
2013/4
Título do Artigo:
DESENVOLVIMENTO E MANUTENÇÃO DE SOFTWARE USANDO PRÁTICAS DO GERENCIAMENTO DO
CICLO DE VIDA DA APLICAÇÃO E DESENVOLVEDOR/OPERAÇÃO
Professor Orientador:
Gustavo Monti Rocha
Coordenador do curso:
Yoris Linhares
Data:
16 de Dezembro de 2013
Resumo:
Neste artigo o leitor será apresentado ao mundo do desenvolvimento e manutenção
de software envolvendo técnicas e práticas do Gerenciamento do Ciclo de Vida da
Aplicação ALM da sigla em inglês para Application Lifecycle Management e a cultura
Desenvolvedor/Operação (DevOps), será abordado um breve histórico de como
surgiu essas práticas, o que se deseja alcançar com a implantação, os principais
pilares de cada técnica e como implantar essas técnicas e práticas em uma fábrica de
software. Ao final deste artigo o leitor terá o conhecimento para iniciar a discursão em
sua organização para a implantação dessas técnicas e práticas com embasamento.
Total de pontos:
Situação Final: (
)Aprovado
(
)Reprovado
________________________
________________________
Professor Orientador
Coordenador
15. DECLARAÇÃO DE RECEBIMENTO DO TRABALHO DE CONCLUSÃO DE CURSO
Declaro, para os devido fins, que recebi a ata de avaliação com dados e resumo do TCCTrabalho de Conclusão de Curso do(a) aluno(a) Washington Clemente dos Santos Borges, da
turma 2013/4, do Curso de Pós-Graduação Lato Sensu Engenharia de Software Centrada em
Métodos Ágeis, devidamente datada e assinada pelo professor orientador, com indicação de
aprovação do aluno no TCC.
Declaro ainda ser de minha responsabilidade encaminhar ao NTCC (Núcleo de Trabalho
de Conclusão de Curso) o documento citado acima.
Belo Horizonte, ___ de _______________ de ______.
Nome do Coordenador(a): Yoris Linhares_____________________________
Recebido por:___________________________________________________
Assinatura: _____________________________________________________