Trabalho a pouco mais de 5 meses no
System Team. Entrei no time no final da primeira
release (iteração)
planejada, participei da segunda
release inteira e agora estou na terceira
release no time do
System Team. Já tive altos e baixos, mas vou tentar explicar tudo sobre esse time neste post.
Onde começou o System Team?
No framework ágil
SAFe, Times Ágeis não são unidades
stand-alone. Pelo contrário, eles são uma parte integral do Trem de
Release Ágil (ART/TREM), onde eles coletivamente têm responsabilidade por liberar mais valor. Pense na release como um trem, onde cada vagão é uma equipe. Times operam no contexto do trem, contribuindo para sua visão, colaborando com outros times, e participando em cerimonias chave do TREM. Os times e o trem são inseparáveis;
o todo é maior que a soma de suas partes.
|
Big Picture SAFe - System Team |
Afinal, o que é o System Team?
Existe um time específico para a execução dos testes de regressão e integração, criado a partir da implantação do SAFe: o System Team. Esse time tem como função fazer a homologação do sistema após a finalização das features (conjunto de histórias) criadas pelos outros vagões do trem. Ele é composto por analistas de testes mais experientes e com conhecimento aprofundamento do sistema (em teoria).
Como ocorre a criação desse time durante a transição para o ágil?
Quando o ágil está sendo implementado, é comum começar com a equipe sem ter planejado a estrutura necessária para o trabalho do System Team. Lembre-se de que o System Team trabalha testando os sistemas de forma integrada, como é utilizado pelo cliente e precisa de máquinas boas para os seus testes. Também é comum formar mais de um time de System Team pois as equipes podem ser grandes de acordo com os sistemas e integrações, mas ambos devem testar seus produtos de forma integrada. Os times de System Team auxiliam com a integração de sistema e solução e ajudam a demonstrar a solução evoluindo à medida que ela se desdobra.
Conforme falei
neste post aqui, ocorre uma cerimônia chamada de
System Demo. Na
System Demo é apresentado, de forma integrada, todo o desenvolvimento dos vagões ágeis durante a release. Como o System Team já possui o ambiente de forma integrada, é comum este ambiente ser utilizado para a validação dos produtos para os
Product Owners ao final da release. Falo mais sobre
System Demo mais abaixo neste mesmo post.
Descrição do Papel System Team
O System Team é um time ágil especial no trem, que possui grande conhecimento nas soluções e por vezes é procurado para fornecer assistência na construção e uso do ambiente de desenvolvimento e testes. Este time executa testes nas soluções de forma integrada e de ponta a ponta. Por este motivo pode fornecer um feedback de forma rápida sobre como está a integração dos sistemas.
Responsabilidades do System Team
... sobre a infraestrutura:
- Pode criar e manter a infraestrutura das soluções integradas, incluindo integração contínua, builds automáticas e automatização de testes;
- Pode criar plataformas e ambientes de demonstração da solução, como podem utilizar o ambiente já existente para tal;
- Pode facilitar os aspectos técnicos de colaboração, tais como prover dados ou serviços, facilidades de hosting, etc. para outras equipes de desenvolvimento do trem.
... sobre integração de sistemas:
- Participa das reuniões de release planning e no refinamento do backlog para definir integração e testes de capacidades e funcionalidades;
- Determina e ajuda a manter decisões e políticas para apropriar modelos de branch;
- Pode participar das dailys de outros times no apoio à atividades diárias.
... sobre testes ponta a ponta e de performance:
- Cria novos cenários de testes automatizados;
- Organiza casos de testes desenhados por times individuais em suítes ordenadas;
- Executa testes manuais e roda testes automatizados para novas funcionalidades e estórias;
- Prioriza testes demorados, refatorados, e roda suítes de testes reduzidas onde aplicável;
- Ajuda os times a criar suítes reduzidas de testes que eles mesmos podem rodar;
- Testa performance da solução contra requisitos não funcionais e ajuda a equipe de Engenharia de Sistema e Solução a identificar falhas e gargalos.
Como o System Team atua nas Demos dos Sistemas e Soluções (System Demo)?
Ao final de cada release os times (vagões do trem) precisam demonstrar a solução desenvolvida no período da release. Normalmente o System Team apoia as outras equipes e ajuda a assegurar que os ambientes de demonstração estão adequados.
Como o System Team atua na liberação dos produtos?
O System Team estabiliza as versões de liberação e possui o conhecimento necessário para testar as integrações dos produtos. O System Team normalmente entendem o que é, o que faz, e quão bem cada entrega atende os requisitos desejados, pois participa das Reviews e, as vezes, das plannings dos demais times ágeis/demais vagões. Nesta perspectiva, o System Team está diretamente envolvido no suporte da liberação, trabalhando com os DevOps e fazendo o que for necessário para ajudar o TREM a preparar, empacotar e liberar a solução. Lembrando que o System Team não faz o trabalho de manutenção de liberar versões que já estão no mercado. O System Team libera versões que ainda não estão no mercado.
Por que dos altos e baixos na equipe do System Team?
Como foi possível compreender após toda a explicação do que o System Team faz e quais são suas responsabilidades, é também possível imaginar o tanto de cobrança que a equipe do System Team tem e qual o seu trabalho. Nós liberamos uma versão nova dos produtos/sistemas a cada fim de release (isto não é uma regra, mas é como funciona onde trabalho hoje). A semana de liberação costuma ser conturbada, pois ainda não finalizamos as estabilizações e cada equipe do trem quer preparar sua apresentação para a posterior aprovação dos Product Owners. Isso quando o ambiente não dá algum problema.
Apesar dos testes serem integrados, temos que testar as funcionalidades novas integradas com as velhas. Aqui temos que deixar claro que NÃO é função do System Team testar as funcionalidades novas desenvolvidas pelos times de desenvolvimento, mas temos que testar impactos e integrações.
Por mais que haja pressão, é comum as equipes de desenvolvimento liberarem seus produtos com testes sem ver seus impactos. Também já vi acontecer de equipes não planejarem seus tempos de testes e testarem seus produtos durante a estabilização do System Team.
Se a equipe do System Team não for forte, acompanhar TUDO, comunicar qualquer deslize e não aceitar algumas liberações, as liberações viram playgrounds e os testes das sprints ficam impossíveis de serem executados!
Referências