Palestra ministrada na semana acadêmica da UFPR, para o curso Tecnologia em Informação.
Temas abordados: divida técnica, code smells, como identificar, monitorar e tomar ação.
Apresentação sobre code smells, dívida técnica, refatoração, métricas para qualidade de código fonte e sonar.
Apresentado na DB1 Informática e no Agile Tour Maringá (2013 - Ignite Talk)
Padrão de estrangulamento na prática – A jornada de modernização de um legado...ThoughtWorks Brasil
O documento descreve a jornada de modernização de um sistema legado de 20 anos em Perl através da estratégia de estrangulamento. O time priorizou as capacidades de negócio, identificando os domínios mais críticos e migrando-os gradualmente para novas aplicações enquanto mantinha a funcionalidade original. Eles validaram o progresso a cada etapa e observaram melhorias na qualidade, velocidade e satisfação do time.
O documento discute a integração contínua e as ferramentas para implementá-la. Resume que a integração contínua automatiza o processo de desenvolvimento através de commits frequentes, builds e testes automatizados para reduzir riscos e aumentar a qualidade do código.
Este documento fornece um resumo da metodologia de desenvolvimento de software chamada Feature Driven Development (FDD). A FDD combina as melhores práticas de gerenciamento ágil de projetos com uma abordagem orientada a objetos. Ela consiste em cinco fases principais: desenvolver um modelo abrangente, construir uma lista de funcionalidades, planejar por funcionalidade e detalhar e construir por funcionalidade. A FDD enfatiza o trabalho em equipe, a propriedade individual de classes e o desenvolvimento incremental focado em funcionalidades valiosas para o cliente.
Progic webinar players para tv corporativaEric Vazzoler
● A estrutura de uma TV Corporativa envolve hardware distribuído como monitores e players.
● Players são importantes porque qualquer necessidade de manipulação gera custos, sendo o hardware um fator crítico.
● As plataformas mais recomendadas são aquelas gerenciadas por software para automatização e distribuição de conteúdo.
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
Material para palestra sobre a Metodologia de desenvolvimento Extreme Programming, ministrada no 1º ENDESDISMO - Encontro de Desenvolvimento de Software p/ Dispositivos Móveis - UNOPAR CCET LONDRINA/PR
O documento descreve a metodologia ágil de desenvolvimento de software FDD (Desenvolvimento guiado por funcionalidades), incluindo sua história, problemas que resolveu e os cinco processos centrais: 1) Desenvolver um modelo abrangente, 2) Construir uma lista de funcionalidades, 3) Planejar por funcionalidade, 4) Detalhar por funcionalidade e 5) Construir por funcionalidade.
O documento discute a importância da qualidade de software em empresas de desenvolvimento interno de software (TI interna) versus empresas de desenvolvimento de software externo (software houses). A qualidade de software tende a ser mais enfocada em software houses do que em TIs internas devido à natureza dos clientes (externos versus internos). A colaboração entre a equipe de TI e o cliente interno é essencial para assegurar a qualidade do software.
Apresentação sobre code smells, dívida técnica, refatoração, métricas para qualidade de código fonte e sonar.
Apresentado na DB1 Informática e no Agile Tour Maringá (2013 - Ignite Talk)
Padrão de estrangulamento na prática – A jornada de modernização de um legado...ThoughtWorks Brasil
O documento descreve a jornada de modernização de um sistema legado de 20 anos em Perl através da estratégia de estrangulamento. O time priorizou as capacidades de negócio, identificando os domínios mais críticos e migrando-os gradualmente para novas aplicações enquanto mantinha a funcionalidade original. Eles validaram o progresso a cada etapa e observaram melhorias na qualidade, velocidade e satisfação do time.
O documento discute a integração contínua e as ferramentas para implementá-la. Resume que a integração contínua automatiza o processo de desenvolvimento através de commits frequentes, builds e testes automatizados para reduzir riscos e aumentar a qualidade do código.
Este documento fornece um resumo da metodologia de desenvolvimento de software chamada Feature Driven Development (FDD). A FDD combina as melhores práticas de gerenciamento ágil de projetos com uma abordagem orientada a objetos. Ela consiste em cinco fases principais: desenvolver um modelo abrangente, construir uma lista de funcionalidades, planejar por funcionalidade e detalhar e construir por funcionalidade. A FDD enfatiza o trabalho em equipe, a propriedade individual de classes e o desenvolvimento incremental focado em funcionalidades valiosas para o cliente.
Progic webinar players para tv corporativaEric Vazzoler
● A estrutura de uma TV Corporativa envolve hardware distribuído como monitores e players.
● Players são importantes porque qualquer necessidade de manipulação gera custos, sendo o hardware um fator crítico.
● As plataformas mais recomendadas são aquelas gerenciadas por software para automatização e distribuição de conteúdo.
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
Material para palestra sobre a Metodologia de desenvolvimento Extreme Programming, ministrada no 1º ENDESDISMO - Encontro de Desenvolvimento de Software p/ Dispositivos Móveis - UNOPAR CCET LONDRINA/PR
O documento descreve a metodologia ágil de desenvolvimento de software FDD (Desenvolvimento guiado por funcionalidades), incluindo sua história, problemas que resolveu e os cinco processos centrais: 1) Desenvolver um modelo abrangente, 2) Construir uma lista de funcionalidades, 3) Planejar por funcionalidade, 4) Detalhar por funcionalidade e 5) Construir por funcionalidade.
O documento discute a importância da qualidade de software em empresas de desenvolvimento interno de software (TI interna) versus empresas de desenvolvimento de software externo (software houses). A qualidade de software tende a ser mais enfocada em software houses do que em TIs internas devido à natureza dos clientes (externos versus internos). A colaboração entre a equipe de TI e o cliente interno é essencial para assegurar a qualidade do software.
O documento discute os princípios do Manifesto do Artesanato de Software, incluindo entregar software funcionando, responder às mudanças, valorizar indivíduos e interações, colaboração com o cliente, agregar valor constantemente e formar uma comunidade de profissionais. Ele também destaca a importância de não apenas entregar software funcionando, mas sim software de alta qualidade através de práticas como TDD, programação em pares e revisão de código.
The document summarizes a case study conducted on technical debt in a technology company with over 350 developers. The study analyzed 4 projects to understand how technical debt was considered, where it arose from, and its impacts over time. Key findings were that technical debt was known but not formally considered in project management. Strategic decisions commonly introduced technical debt, resulting in code rewrites, team divisions to maintain old systems, and customer dissatisfaction. The study validated the importance of managing technical debt and communication between technical and business teams to consider it during decision making. Threats to validity included relying only on interviews and lacking detailed cost impact calculations.
The document discusses refactoring legacy PHP code, specifically dealing with code that has no separation between PHP and HTML. It recommends separating code into controllers and views by gathering all code, separating controller and view code, assigning variables to a view object, changing variable references in the view code, and splitting the files. Specific problems in legacy PHP code like no separation of concerns, global variables, and reliance on includes can be addressed through techniques like creating view classes, encapsulating logic in objects, and wrapping includes in functions to untangle dependency webs. The goal is to safely change code implementation without changing behavior through refactoring.
O documento discute os princípios e benefícios de uma abordagem ágil em empresas, enfatizando que agilidade é uma cultura, não apenas um processo. Apresenta exemplos de como a Lambda3 implementou práticas ágeis como times multidisciplinares, tomada de decisões compartilhadas e transparência. Conclui que problemas devem levar a adaptação rápida, alinhando expectativas por meio de comprometimento e autonomia.
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?tdc-globalcode
O documento discute como melhorar códigos ruins através de boas práticas de programação como Test Driven Development (TDD), princípios SOLID e uso de comentários. Ele também explica porque códigos tendem a piorar com o tempo devido à saída de desenvolvedores experientes e medo de novos desenvolvedores modificarem o código.
O documento apresenta um resumo da palestra "Refatorar é Preciso! Uma visão Técnica e Filosófica" de Daniel Archer na PHP Conference 2015. A palestra discute a importância do refactoring para manter códigos limpos, reutilizáveis e de fácil entendimento. O palestrante também apresenta princípios como S.O.L.I.D e padrões de projeto como estratégias para melhorar a qualidade do código.
This document summarizes a journal article about the role of non-fuel retailing services in India's petroleum retail industry. It finds that petroleum retailers in India face challenges like low margins and increasing costs, and are offering additional non-fuel services like convenience stores and ATMs to increase customer loyalty and profits. A survey of 100 customers found that strategic location, quality assurance, and infrastructure/amenities were important factors for customers visiting particular gas stations. Most customers still prefer paying in cash, and evenings are a popular time to visit. Non-fuel services like ATMs are attracting some additional customers and sales to gas stations, though not all ATM users purchase other items. Regulations have gradually liberalized fuel pricing in
O documento descreve o padrão Strategy para refatorar código que calcula impostos aplicados sobre receitas. Originalmente, o código usava muitos if/else para determinar qual taxa aplicar para cada tipo de imposto. Ao invés disso, o padrão Strategy cria classes separadas para cada imposto que implementam uma interface comum, permitindo calcular o imposto de forma flexível e extensível.
O documento discute refatoração de código. Apresenta alguns pontos sobre o que não é considerado refatoração, como otimização e correção de bugs. Também aborda motivação para refatoração como código difícil de entender e backlog de bugs crescente. Por fim, exemplifica algumas ferramentas para análise e refatoração de código como PHPMD, PHPUnit e PHPCS.
Refatoração é um processo que torna o código mais organizado, limpo e gerenciável.
Com este webinar, apresentamos recursos valiosos para a refatoração em PHP, como o Solid e Design Patterns. Além de explorar a compreensão conceitual, o Archer, que é um de nossos colaboradores, apresentou um workshop em que todos os participantes puderam observar ao vivo um código PHP sendo refatorado.
We've all been faced with legacy code and often decided to rewrite, feeling it will be easier. There are many reasons this can be wrong. Adam Culp will talks about the entire journey of refactoring a legacy code base. He will begin with assessment and why, move on to planning how and when, cover execution and testing, give step-by-step examples, and even show how to manage the process effectively. Attendees will gain insight and tips on how to handle their own pile of code and refactor happy.
O documento apresenta os conceitos e práticas de automação, integração contínua, deploy contínuo e entrega contínua. Ele descreve a ferramenta Jenkins e como ela permite implementar essas práticas de desenvolvimento de software. A apresentação inclui uma demonstração ao vivo de como essas técnicas funcionam.
Este documento presenta un análisis semiótico de una nota periodística del periódico mexicano Milenio. Describe los elementos estructurales del periódico como su formato, secciones y distribución de contenido. Analiza específicamente una nota sobre el actor mexicano Alex García y su nominación a los premios Emmy, describiendo sus componentes plásticos, mensajes lingüísticos y connotativos. Concluye que Milenio es un periódico formal y de importancia para informar a la sociedad.
El documento describe 7 tipos de búsquedas que se pueden realizar en Google, incluyendo usar frases exactas o con restricciones de palabras, buscar por rangos de números, por definición de palabras, por tipo de archivo, en sitios específicos utilizando "site", y otros tipos de búsquedas avanzadas.
Este documento presenta una serie de prácticas sobre búsquedas avanzadas en Google y Google Académico y Libros. Incluye explicaciones sobre cómo realizar búsquedas en estas herramientas y encontrar artículos académicos. El estudiante Jesús Raúl Iglesias concluye disculpándose por la falta de tiempo para esmerarse más y agradeciendo a la gente de buena voluntad.
Object-oriented software engineering: Example (for teaching purposes) of a refactoring case study based on a very simple Java example of a Local Area Network. Used as part of the software engineering and software evolution courses of the University of Mons, taught by Prof. Tom Mens, Software Engineering Lab.
Este documento describe los virus informáticos y antivirus. Explica que los virus son programas dañinos que se replican a sí mismos para infectar otras computadoras y dañar información. Detalla varios tipos de virus y cómo se propagan. También explica que los antivirus son programas diseñados para detectar, prevenir y eliminar virus mediante la vacunación, detección y eliminación. Resalta la importancia de mantener actualizado el antivirus y tomar otras precauciones para protegerse de los virus.
Este documento discute como a ferramenta SonarQube pode ser usada para melhorar a qualidade do código, monitorando sete eixos da qualidade do código e gerenciando débitos técnicos. Explica como configurar o SonarQube, integrá-lo ao ambiente de desenvolvimento e usá-lo para identificar problemas e melhorar a qualidade do código ao longo do tempo.
O documento apresenta SonarQube, uma ferramenta open source para análise estática de código e gerenciamento de débito técnico. Apresenta como SonarQube mede sete eixos da qualidade de código, como arquitetura, testes e complexidade, e integrações possíveis com TFS e IDEs. Demonstra como SonarQube ajuda equipes a identificar e reduzir débitos técnicos para melhorar a qualidade do código.
O documento discute os princípios do Manifesto do Artesanato de Software, incluindo entregar software funcionando, responder às mudanças, valorizar indivíduos e interações, colaboração com o cliente, agregar valor constantemente e formar uma comunidade de profissionais. Ele também destaca a importância de não apenas entregar software funcionando, mas sim software de alta qualidade através de práticas como TDD, programação em pares e revisão de código.
The document summarizes a case study conducted on technical debt in a technology company with over 350 developers. The study analyzed 4 projects to understand how technical debt was considered, where it arose from, and its impacts over time. Key findings were that technical debt was known but not formally considered in project management. Strategic decisions commonly introduced technical debt, resulting in code rewrites, team divisions to maintain old systems, and customer dissatisfaction. The study validated the importance of managing technical debt and communication between technical and business teams to consider it during decision making. Threats to validity included relying only on interviews and lacking detailed cost impact calculations.
The document discusses refactoring legacy PHP code, specifically dealing with code that has no separation between PHP and HTML. It recommends separating code into controllers and views by gathering all code, separating controller and view code, assigning variables to a view object, changing variable references in the view code, and splitting the files. Specific problems in legacy PHP code like no separation of concerns, global variables, and reliance on includes can be addressed through techniques like creating view classes, encapsulating logic in objects, and wrapping includes in functions to untangle dependency webs. The goal is to safely change code implementation without changing behavior through refactoring.
O documento discute os princípios e benefícios de uma abordagem ágil em empresas, enfatizando que agilidade é uma cultura, não apenas um processo. Apresenta exemplos de como a Lambda3 implementou práticas ágeis como times multidisciplinares, tomada de decisões compartilhadas e transparência. Conclui que problemas devem levar a adaptação rápida, alinhando expectativas por meio de comprometimento e autonomia.
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?tdc-globalcode
O documento discute como melhorar códigos ruins através de boas práticas de programação como Test Driven Development (TDD), princípios SOLID e uso de comentários. Ele também explica porque códigos tendem a piorar com o tempo devido à saída de desenvolvedores experientes e medo de novos desenvolvedores modificarem o código.
O documento apresenta um resumo da palestra "Refatorar é Preciso! Uma visão Técnica e Filosófica" de Daniel Archer na PHP Conference 2015. A palestra discute a importância do refactoring para manter códigos limpos, reutilizáveis e de fácil entendimento. O palestrante também apresenta princípios como S.O.L.I.D e padrões de projeto como estratégias para melhorar a qualidade do código.
This document summarizes a journal article about the role of non-fuel retailing services in India's petroleum retail industry. It finds that petroleum retailers in India face challenges like low margins and increasing costs, and are offering additional non-fuel services like convenience stores and ATMs to increase customer loyalty and profits. A survey of 100 customers found that strategic location, quality assurance, and infrastructure/amenities were important factors for customers visiting particular gas stations. Most customers still prefer paying in cash, and evenings are a popular time to visit. Non-fuel services like ATMs are attracting some additional customers and sales to gas stations, though not all ATM users purchase other items. Regulations have gradually liberalized fuel pricing in
O documento descreve o padrão Strategy para refatorar código que calcula impostos aplicados sobre receitas. Originalmente, o código usava muitos if/else para determinar qual taxa aplicar para cada tipo de imposto. Ao invés disso, o padrão Strategy cria classes separadas para cada imposto que implementam uma interface comum, permitindo calcular o imposto de forma flexível e extensível.
O documento discute refatoração de código. Apresenta alguns pontos sobre o que não é considerado refatoração, como otimização e correção de bugs. Também aborda motivação para refatoração como código difícil de entender e backlog de bugs crescente. Por fim, exemplifica algumas ferramentas para análise e refatoração de código como PHPMD, PHPUnit e PHPCS.
Refatoração é um processo que torna o código mais organizado, limpo e gerenciável.
Com este webinar, apresentamos recursos valiosos para a refatoração em PHP, como o Solid e Design Patterns. Além de explorar a compreensão conceitual, o Archer, que é um de nossos colaboradores, apresentou um workshop em que todos os participantes puderam observar ao vivo um código PHP sendo refatorado.
We've all been faced with legacy code and often decided to rewrite, feeling it will be easier. There are many reasons this can be wrong. Adam Culp will talks about the entire journey of refactoring a legacy code base. He will begin with assessment and why, move on to planning how and when, cover execution and testing, give step-by-step examples, and even show how to manage the process effectively. Attendees will gain insight and tips on how to handle their own pile of code and refactor happy.
O documento apresenta os conceitos e práticas de automação, integração contínua, deploy contínuo e entrega contínua. Ele descreve a ferramenta Jenkins e como ela permite implementar essas práticas de desenvolvimento de software. A apresentação inclui uma demonstração ao vivo de como essas técnicas funcionam.
Este documento presenta un análisis semiótico de una nota periodística del periódico mexicano Milenio. Describe los elementos estructurales del periódico como su formato, secciones y distribución de contenido. Analiza específicamente una nota sobre el actor mexicano Alex García y su nominación a los premios Emmy, describiendo sus componentes plásticos, mensajes lingüísticos y connotativos. Concluye que Milenio es un periódico formal y de importancia para informar a la sociedad.
El documento describe 7 tipos de búsquedas que se pueden realizar en Google, incluyendo usar frases exactas o con restricciones de palabras, buscar por rangos de números, por definición de palabras, por tipo de archivo, en sitios específicos utilizando "site", y otros tipos de búsquedas avanzadas.
Este documento presenta una serie de prácticas sobre búsquedas avanzadas en Google y Google Académico y Libros. Incluye explicaciones sobre cómo realizar búsquedas en estas herramientas y encontrar artículos académicos. El estudiante Jesús Raúl Iglesias concluye disculpándose por la falta de tiempo para esmerarse más y agradeciendo a la gente de buena voluntad.
Object-oriented software engineering: Example (for teaching purposes) of a refactoring case study based on a very simple Java example of a Local Area Network. Used as part of the software engineering and software evolution courses of the University of Mons, taught by Prof. Tom Mens, Software Engineering Lab.
Este documento describe los virus informáticos y antivirus. Explica que los virus son programas dañinos que se replican a sí mismos para infectar otras computadoras y dañar información. Detalla varios tipos de virus y cómo se propagan. También explica que los antivirus son programas diseñados para detectar, prevenir y eliminar virus mediante la vacunación, detección y eliminación. Resalta la importancia de mantener actualizado el antivirus y tomar otras precauciones para protegerse de los virus.
Este documento discute como a ferramenta SonarQube pode ser usada para melhorar a qualidade do código, monitorando sete eixos da qualidade do código e gerenciando débitos técnicos. Explica como configurar o SonarQube, integrá-lo ao ambiente de desenvolvimento e usá-lo para identificar problemas e melhorar a qualidade do código ao longo do tempo.
O documento apresenta SonarQube, uma ferramenta open source para análise estática de código e gerenciamento de débito técnico. Apresenta como SonarQube mede sete eixos da qualidade de código, como arquitetura, testes e complexidade, e integrações possíveis com TFS e IDEs. Demonstra como SonarQube ajuda equipes a identificar e reduzir débitos técnicos para melhorar a qualidade do código.
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.
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
Apresentado para o Pop-ES e NPD da Ufes. Conheça o significado de DevOps e como ele pode apoiar entregas mais rápidas de software por meio da mudança de cultura, automatização entre outras...
O documento fornece informações sobre a história e o crescimento de uma empresa de tecnologia ao longo de 15 anos, desde o lançamento da primeira versão de seu framework Java EE até investimentos, clientes, certificações e presença geográfica atual.
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.
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
Empresas no mundo inteiro têm cada vez mais dificuldade para desenvolver e entregar software de qualidade. Os desafios são vários, tais como gerenciar as expectativas do usuário e as mudanças constantes de requisitos, bem como garantir a coesão e o foco do time. Venha ver como o desenvolvimento ágil de aplicações, apoiado sobre o Scrum e o Team Foundation Server 2012, podem ajudar times de desenvolvimento a melhorar seu dia-a-dia de trabalho para entregar software de qualidade a seus clientes.
Palestra falando sobre métricas de código, como linhas de código, complexidade ciclomática, coesão e acomplamento. Também fala dos tipos de visualizações existentes e das ferramentas que existem para extração e visualização de métricas.
O documento discute como automatizar sistemas legados utilizando ferramentas de DevOps. Primeiro, descreve as características problemáticas dos sistemas legados e a necessidade de tratá-los da melhor forma possível. Em seguida, apresenta como a HypeFlame/Agibank modularizou seu sistema legado, escolheu ferramentas adequadas e implementou pipelines de integração e entrega contínuas para tratá-lo de forma semelhante a microsserviços.
O documento discute processos de desenvolvimento de software, incluindo: 1) Processos de software definem atividades parcialmente ordenadas para obter software de qualidade; 2) Atividades incluem especificação, projeto, implementação, teste e evolução; 3) Dois modelos básicos são cascata e iterativo/incremental.
Este documento apresenta uma aula introdutória sobre engenharia de requisitos. Aborda tópicos como definição de requisitos, processos de engenharia de requisitos, etapas da engenharia de requisitos e métodos ágeis. Inclui exemplos reais para ilustrar a importância de se entender corretamente as necessidades dos usuários desde o início.
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
O documento descreve um contrato pedagógico para a disciplina de Engenharia de Software, definindo horários, regras sobre equipamentos eletrônicos, avaliações, webclasses, sugestões, metodologia de avaliação e ementa da disciplina.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC
O documento discute a qualidade de software, definindo-a como a conformidade aos requisitos dos clientes. Apresenta diferentes visões de qualidade de software e discute padrões e normas importantes como ISO 9126 para garantir a qualidade. Também descreve exemplos históricos de bugs caros que ocorreram por falta de qualidade.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC.
"Apresentação atualizada, pois o SlideShare não permite re-upload."
Vídeo da primeira parte - Apresentação
https://youtu.be/ZWQO0bLB8gU
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Alvaro Brognoli
A apresentação discute a gestão ágil de projetos de software usando Scrum e o Team Foundation Server. Ela explica como o Scrum promove entregas incrementais com foco nas pessoas e na criação de valor. Também demonstra como o TFS apoia todo o ciclo de vida do software, incluindo planejamento com Scrum, controle de versão, build e testes automatizados.
A palestra discute os problemas de código ruim e dívida técnica, como sintomas como perda de satisfação do cliente e demora em entregas, e a importância de fundamentos como Orientação a Objetos, princípios como SOLID e práticas ágeis para melhorar a qualidade do código e a produtividade.
Roteiro
- O que é Entrega Contínua e DevOps?
- O que é Integração Contínua?
- Erros Comuns em Entrega de Software;
- Princípios de Entrega Contínua;
- Práticas em Arquitetura de Software;
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
Semelhante a O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede! (20)
O documento discute vários aspectos relacionados à dívida técnica, incluindo como identificá-la, mensurá-la e pagá-la de forma efetiva ao longo do tempo para manter a qualidade e agilidade do software.
Palesrtra apresentada no The Developers Conference 2020 Florianópolis 2020, edição Online.
Falo sobre qualidade em software buscando quebrar alguns mitos sobre qualidade e propondo que ela deve ser de forma contínua em software e não mais uma etapa.
O documento discute como falhar é parte inerente do desenvolvimento ágil de software e que times e organizações precisam ser lugares seguros para aprender com falhas. Também menciona o 12o princípio ágil de times refletirem regularmente sobre como melhorar sua efetividade e se ajustarem de acordo.
Palestra apresentada para os colaboradores da MJV no dia 13/05/2020.
Conteúdo:
- fundamentos e orientação a objetos
- dívida técnica
- princípios ágeis e extreme programming
Palestra ministrada no dia 09/03 na PUCPR, campus Maringá sobre agilidade, agile coach, agilista e scrum master. O objetivo desta palestra é falar a mensagem de sermos ágeis e não fazermos ágil e qual o papel de um agile coach na organização.
Management 3.0 - Redefinindo liderança: Gerenciando o sistema e não as pessoasWagner Mendes Voltz Fusca
Gerenciar sistemas, não pessoas, é a nova abordagem para liderança. Líderes devem se concentrar em processos e fluxos de trabalho em vez de controlar indivíduos. Uma mudança na mentalidade de liderança é necessária para acompanhar as transformações no mundo do trabalho.
O documento discute estratégias para gerenciar a dívida técnica em projetos de software, incluindo a importância da refatoração contínua, métricas para medir a dívida e quando pode ser aceitável ignorá-la.
O documento discute vários aspectos relacionados à dívida técnica em software, incluindo: 1) A diferença entre dívida técnica e código desorganizado, 2) Como medir e gerenciar a dívida técnica de forma efetiva, 3) A importância de se ter disciplina e qualidade de código para lidar com a dívida técnica.
O documento discute a importância da coragem como um valor ágil. A coragem é necessária para falhar em ambientes seguros, aprender com os erros e se adaptar às mudanças. Desenvolver coragem requer ter uma causa na qual se acredita e enfrentar desafios em pequena escala primeiro.
Patrick Lencioni em seu livro ""os 5 desafios das equipes"" apresenta através de uma pirâmide as cinco disfunções que toda equipe tem e isto impede elas de serem equipes de alta performance.
Através de storytelling contarei as disfunções que tenho diariamente com a minha principal equipe (minha família).
Através desta equipe irei falar da falta de confiança, medo dos conflitos, falta de comprometimento, evitar responsabilizar os outros e falta de atenção aos resultados.
Ao final do storytelling irei apresentar um link de cada disfunção com algumas práticas ágeis que podem ajudar em cada tema.
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...Wagner Mendes Voltz Fusca
O documento descreve o jogo Cornucópia, um jogo de cartas para facilitar a codificação segura em times de desenvolvimento de software. O jogo é baseado em padrões de segurança como OWASP e ajuda a identificar requisitos de segurança e gerar um backlog para o time. O documento explica as regras, cartas e objetivo do jogo de promover a disseminação do conhecimento de segurança no time de desenvolvimento.
Um estudo de caso (atualizado com os dados de 2018) sobre os eventos ágeis no Brasil e sobre o que os desenvolvedores acham sobre agilidade.
Apresentado no dia 10/11/2018 no Agile Curitiba Conference -
https://agile.curitiba.br/
O documento descreve várias metodologias ágeis como Scrum, Kanban, e Extreme Programming. Ele também discute princípios como o Manifesto Ágil, que valoriza indivíduos, software funcionando, colaboração com clientes e adaptação a mudanças. Por fim, fornece dicas para começar a aprender sobre metodologias ágeis, como participar de eventos e ler blogs e livros confiáveis.
Um estudo de caso (atualizado com os dados de 2018) sobre os eventos ágeis no Brasil e sobre o que os desenvolvedores acham sobre agilidade.
Após isto, foi aberto o espaço para um fishbowl
Apresentado no dia 03/10/2018 na Agile Brazil 2018 - Campinas
https://agilebrazil2018.sched.com/event/Fl0I/agilidade-nao-e-para-desenvolvedores
Slides da apresentação sobre codificação segura no evento Scrum Gathering Rio 2018 - 26/07/2018
OWASP Cornucopia é um game para facilitar o assunto codificação segura
Cornucopia é um game mantido pela OWASP e o objetivo dele é gerar um backlog com vulnerabilidades e falhas de segurança
Cornucopia é um jogo de cartas gratuito mantido pela OWASP para ajudar times de desenvolvimento a identificar requisitos de segurança e gerar um backlog de segurança. O jogo usa naipes de cartas para descrever ataques comuns e ajuda os jogadores a pontuarem cartas que representem possíveis vulnerabilidades em seu sistema.
O documento discute a percepção do autor de que desenvolvedores não estão totalmente engajados com práticas ágeis e como isso pode ser melhorado. Ele valida esta percepção com dados de eventos e comunidades ágeis e alerta que desenvolvedores precisam ter mais coragem para inspecionar e adaptar seu trabalho. O autor também sugere que desenvolvedores devem se capacitar mais com conteúdos ágeis, como XP e programação em pares, para produzir software de melhor qualidade.
Um estudo de caso sobre os eventos ágeis no Brasil e sobre o que os desenvolvedores acham sobre agilidade.
Apresentado no dia 13/12/2017 na semana da agilidade.
http://agilidade.org/blog/2017/12/10/agilidade-e-para-desenvolvedores/
O documento discute se projetos ágeis falham e como times e organizações podem aprender com falhas de forma segura. Ele também menciona que de acordo com o 12o princípio ágil, times devem regularmente refletir sobre como podem se tornar mais eficientes e se ajustar de acordo.
3. Apresentação
• Curitibano e paranista!
• Formado em Tecnologia em Informática –
UFPR – 2005
• Especialização em Gestão da informação
– FAE Business School
• Desenvolvedor de sistemas desde 2005
• Java, Android, Agile
• CSM – Certified ScrumMaster
4. • Atualmente gerente de projetos/scrum
master
• twitter.com/tiofusca
• wagnerfusca@gmail.com
• http://www.devparana.org/
5.
6. Dívida técnica
Toda e qualquer alteração no código fonte,
realizada por um time de desenvolvimento
de software que não gera melhoria em
sua qualidade
9. Dívida técnica
“A dívida técnica é similar à dívida financeira. Assim como
a dívida financeira, a dívida técnica exige o pagamento
de juros. Estes vem na forma de esforço extra, que
devem ser pagos em desenvolvimentos futuros por
conta da escolha de um design mais rápido e de baixa
qualidade.
Nós podemos optar por continuar pagando estes juros ou
quitar de uma vez a dívida fazendo uma refatoração,
transformando um design de baixa qualidade em um
design melhor. Apesar dos custos para saldar a dívida,
ganhamos reduzindo os juros no futuro.”
Martin Fowler
11. Divida técnica - sintomas
• Perda de satisfação do cliente quanto a
primeira entrega
• Demora para entregar o software
• Atrasos nas entregas
• Erros de estimativas com frequência
• Entrega de software com bug em
produção
12. Divida técnica - sintomas
• Projeto engessado
• Time frustrado
• Cobertura de testes fraca
• Suíte de testes que demora para ser
executada
• //TODO E //FIXME
• Problemas de comunicação na equipe
13. Code Smells
Definição: sintoma de que algo no código
pode estar errado.
Geralmente indica a necessidade de um
refactoring ou de alteração estrutural da
aplicação.
14. Exemplo de codes smells
• Comentários
• Método longo
• Classe longa
• Longa lista de parâmetros
• Código duplicado
• Complexidade condicional
• Nomes inconsistentes
• Obsessão primitiva
18. Dois indicadores simples
• Complexidade ciclomática (condicional)
– mede a quantidade de caminhos de execução
independentes a partir de um código fonte
• NCSS
– Determina o numero de linhas que um
método deve ter
19. Dinâmica do dois chapéus: Kent
Beck
Adicionar Funcionalidade
Não altera código pré existente
Refatorar
Não acrescenta funcionalidade