Práticas de Agilidade e QA na Comunidade KDE

44
Práticas de Agilidade e QA na Comunidade KDE Sandro Andrade IFBA / KDE [email protected] @andradesandro

Transcript of Práticas de Agilidade e QA na Comunidade KDE

Page 1: Práticas de Agilidade e QA na Comunidade KDE

Práticas de Agilidade e QAna Comunidade KDE

Sandro AndradeIFBA / KDE

[email protected]@andradesandro

Page 2: Práticas de Agilidade e QA na Comunidade KDE

O KDE

4239 colaboradores em todo o mundo20 anos de existência21.216.876 de linhas de código7664 anos de trabalho (modelo COCOMO) Fonte: Open HUB

Page 3: Práticas de Agilidade e QA na Comunidade KDE

KDE – o que fazemos?

http://plasma-desktop.org

Page 4: Práticas de Agilidade e QA na Comunidade KDE

KDE – o que fazemos?

http://plasma-mobile.org

Page 5: Práticas de Agilidade e QA na Comunidade KDE

163 Aplicações (KA) em diversos domínios

KDE – o que fazemos?

Page 6: Práticas de Agilidade e QA na Comunidade KDE

minuet.kde.org

KDE – o que fazemos?

Page 7: Práticas de Agilidade e QA na Comunidade KDE

minuet.kde.org

KDE – o que fazemos?

Page 8: Práticas de Agilidade e QA na Comunidade KDE

minuet.kde.org

KDE – o que fazemos?

Page 9: Práticas de Agilidade e QA na Comunidade KDE

minuet.kde.org

KDE – o que fazemos?

Page 10: Práticas de Agilidade e QA na Comunidade KDE

KDE Frameworks 5 (KF5):

KDE – o que fazemos?

SO (Linux, Windows, OS X, ...)

Servidor Gráfico (X11, Wayland, ...)

C++ / Qt 5 / QML / JavaScript

KDE Frameworks 5

KDE Plasma

KDE Applications

65 novos módulos para o Qt:

Compressão de arquivosConfiguração do sistemaNovos models e viewsPlottingIntegração e detecção de HWMultithreadingSystem notifications...

http://www.frameworks.org

Page 11: Práticas de Agilidade e QA na Comunidade KDE

KDE – o ecossistema

Colaboradores(desenvolvedores, testadores, tradutores, designers, sysadmins, etc)

KDE e.V.(membros da associação)

Empresas

KDEFree Qt

Foundation

WorkingGroups

KDE e.V.Board ofDirectors

Afiliados

Page 12: Práticas de Agilidade e QA na Comunidade KDE

KDE – o ecossistema

Page 13: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Page 14: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Page 15: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers Co-developers

Page 16: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers Co-developers Tradutores

Page 17: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers Co-developers Tradutores Release Team

Page 18: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers Tradutores Release Team

Page 19: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers

Usuários (passivos/ativos)

Tradutores Release Team

Page 20: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers

Usuários (passivos/ativos)

Tradutores

Sysadmins

Release Team

Page 21: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers

Usuários (passivos/ativos)

Tradutores

Sysadmins

Release Team

Designers

Page 22: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Tradutores

Sysadmins

Release Team

Designers

Page 23: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Community Manager

Tradutores

Sysadmins

Release Team

Designers

Page 24: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Community Manager

Tradutores

Sysadmins

PR/Marketing

Release Team

Designers

Page 25: Práticas de Agilidade e QA na Comunidade KDE

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Community Manager

Tradutores

Sysadmins

PR/Marketing

Release Team

Designers

Board de Diretores

Page 26: Práticas de Agilidade e QA na Comunidade KDE

KDE e Métodos Ágeis

Page 27: Práticas de Agilidade e QA na Comunidade KDE

● Release Schedule● Epics Dashboard● Automação● phabricator.kde.org● Git Branching Model● Neon e Continuous Delivery

KDE e Métodos Ágeis

Page 28: Práticas de Agilidade e QA na Comunidade KDE

KA Release Schedule (anterior)

Page 29: Práticas de Agilidade e QA na Comunidade KDE

KA Release Schedule (atual)

Page 30: Práticas de Agilidade e QA na Comunidade KDE

● Releases mensais● String freeze duas semanas antes do release● Não há feature freeze:

– Desde que testadas, revisadas, sem problemas de CI e não violem o string freeze

KF5 Release Schedule

Page 31: Práticas de Agilidade e QA na Comunidade KDE

Epics Dashboard

Page 32: Práticas de Agilidade e QA na Comunidade KDE

● Traduções– gettext+scripts → tradutores → commit automático

no repositório original → empacotamento (release)● Release 100% automatizado

– Versionamento, QA, geração de tarballs e upload● Integração Phabricator, Git, IRC, Telegram e

listas de discussão● Zabbix + Ansible + Docker● Redeploy de websites via git hooks (jekyll, etc)

Automação

Page 33: Práticas de Agilidade e QA na Comunidade KDE

phabricator.kde.org

Page 34: Práticas de Agilidade e QA na Comunidade KDE

Git Branching Model

Page 35: Práticas de Agilidade e QA na Comunidade KDE

Neon e Continuous Delivery

http://neon.kde.org

Page 36: Práticas de Agilidade e QA na Comunidade KDE

KDE e Quality Assurance

Page 37: Práticas de Agilidade e QA na Comunidade KDE

● Release Schedule● Continuous Delivery (Neon)● Sanity Checks● Revisões (dev + i18n + UI)● KF5 Policy e CI/CD

KDE e Quality Assurance

Page 38: Práticas de Agilidade e QA na Comunidade KDE

● Krazy● Clazy● astyle-kdelibs

Sanity Checks

Page 39: Práticas de Agilidade e QA na Comunidade KDE

● Suportadas via Phabricator● Revisões de código – core developers● Revisões de mockups – Visual Design Group –

vdesign.kde.org (via Phabricator Pholio)● Revisões de i18n – equipe de i18n

Revisões

Page 40: Práticas de Agilidade e QA na Comunidade KDE

● KF5 Definition of Done:– Dependências não utilizadas são removidas– Frameworks tier1 dependem somente do Qt– Nome de bibliotecas em CamelCase– Em conformidade com a política de organização

de diretórios– Possui testes de unidade– Mantém compatibilidade de código-fonte com

kdelibs– CI em estado OK ...

KF5 Policy e CI/CD

Page 41: Práticas de Agilidade e QA na Comunidade KDE

KF5 Policy e CI/CDhttp://build.kde.org

Page 42: Práticas de Agilidade e QA na Comunidade KDE

● Atividades realizadas via CI:– Compilação em múltiplas plataformas– Detecção de regressões– Detecção de violações de arquitetura– Atualização de documentação de API

● Atividades realizadas via CD:– Verificação de dependências– Geração de pacotes– Atualização de repositórios

KF5 Policy e CI/CD

Page 43: Práticas de Agilidade e QA na Comunidade KDE

● KDE = agilidade em alta escala● O processo está em constante evolução● Software livre é um excelente lugar

para aprender e experimentartécnicas ágeis

● Nós fazemos software,amigos e livros :)– 20years.kde.org

Conclusão

Page 44: Práticas de Agilidade e QA na Comunidade KDE

Obrigado!

Sandro AndradeIFBA / KDE

[email protected]@andradesandro