Alicerces para a construção da comunidade de Teste de Software na África
Trabalhamos como analistas de testes no escritório da Thoughtworks Brasil (Porto Alegre). Viemos trabalhar por um ano nos escritórios da África: Kampala (Uganda) e Joanesburgo (África do Sul).
Logo que começamos a trabalhar aqui, notamos alguns desafios:
-
O mercado de desenvolvimento de software local cresce rapidamente. Entretanto, as grandes empresas (bancos e telefonia) ainda continuam presas a processos lentos e custosos.
-
Baseando-se nos profissionais com os quais tivemos contato, o modelo de QA que encontramos é o clássico: pouca experiência técnica, vasta experiência com teste manual, conhecimento em ferramentas de teste tradicionais, muito valor em documentação e devido ao modelo tradicional (times distribuídos), trabalhar próximos aos desenvolvedores é algo incomum.
-
Existem pouquíssimas comunidades locais focadas em testes de software.
-
Considerando que os escritórios da Thoughtworks África são relativamente novos, a demanda por QAs é grande.
Com base nesses desafios e em conversas com colegas, resolvemos dar os primeiros passos para construção de uma comunidade local de QAs mais sólida. Dessa forma, podemos atrair mais profissionais para a área, despertando um maior interesse no aprendizado de novas práticas e abordagens para o desenvolvimento de software.
Decidimos então colocar o plano em prática: realizamos um workshop para QAs em Kampala (Uganda) e iniciamos uma comunidade em Joanesburgo (África do Sul): QA in Braam.
Workshop "Understanding TDD and BDD" (Uganda)
A ideia inicial do workshop era engajar estudantes da Makerere University no contexto de desenvolvimento de software. A Thoughtworks Uganda já era parceira com a universidade, e já havia realizado alguns outros eventos para atrair a atenção dos estudantes e despertar interesse na área de TI.
A maioria da nossa audiência foi estudantes da Makerere University e profissionais de algumas empresas locais. Contamos também com a presença de vários TWers, que emprestaram suas máquinas e ajudaram como coaches durante o workshop. O interessante foi mostrar, na prática, um pouquinho do dia a dia de um desenvolvedor e de um QA, por meio de atividades hands-on sobre os fundamentos de TDD (test driven development) e BDD (behaviour driven development) e como ambas práticas trabalham em sincronia.
Tivemos duas apresentações - a primeira sobre TDD e a importância da pirâmide de testes e a segunda sobre fundamentos de BDD e dicas para a escrita de critérios de aceitação efetivos. O restante do nosso tempo foi dedicado na atividade prática. Durante a atividade, nossos coaches auxiliavam os pares que precisavam de ajuda.
A primeira parte do exercício consistia em escrever testes unitários para as funcionalidades de uma calculadora usando Java + Junit. Já a segunda se tratava de automatizar uma busca em um portal de compras através da implementação básica de um cenário escrito em BDD usando Cucumber + Gherkin.
Ficamos felizes com os feedbacks recebidos. Apesar de muitos não terem nunca escrito testes antes do workshop, os participantes ficaram bastante interessados em continuar aprendendo, e nos pediram para realizamos outra sessão, com conceitos mais avançados.
QA in Braam (Johannesburg)
Seguindo os passos de eventos de sucesso como o Coded in Braam, percebemos que precisávamos de sessões especificas relacionadas com qualidade de software. Iniciamos essas sessões no escritório da Thoughtworks em Braamfontein. Pelo menos uma vez por mês (aos sábados), organizamos reuniões mensais com a comunidade local de QAs.
Atualmente, o evento é organizado pela Thoughtworks e também tem colaboração da galera da Praekelt - uma empresa de consultoria com sede em Johannesburg, focada no desenvolvimento de soluções mobile para a melhoria das condições de vida em países na África.
As sessões abordam diferente técnicas e conceitos de teste de software. Discutimos sobre o novo papel dos QAs em times ágeis, diferente tipos de teste, conceitos básicos de Selenium IDE, benefícios e desvantagens relativas a documentação, testes exploratórios (que geralmente é um ponto forte dos QAs daqui) e iniciamos uma boa discussão sobre a pirâmide de testes. Além disso, realizamos uma introdução ao BDD com exemplos práticos.
A maioria dessas sessões foram realizadas com a ajuda de um processo criativo chamado fish bowl. O principal objetivo desse processo é compartilhar de maneira direta e rápida diferentes visões e perspectivas sobre um tópico especifico.
Seguindo os feedbacks que recebemos, a intenção para as próximas atividades é dar início a uma série de sessões mais técnicas, até mesmo para colocar em prova algumas práticas e conceitos que discutimos até então.
Se você estiver interessado em fazer parte da comunidade, clique aqui para saber mais novidades.
Por fim, acreditamos que manter a construção de comunidades locais é fundamental, pois é uma maneira simples e eficaz de garantir que todos os envolvidos continuem aprendendo e crescendo como profissionais.
Além disso, com base nas experiências citadas anteriormente, listamos alguns pontos que consideramos importantes e complementares para o desenvolvimento de QAs em qualquer organização:
-
Expor o QA aos mais diferentes contextos (projetos green field, projetos com code base legada, experiências no cliente)
-
Ter alguém que possa ser coach do novo QA a nível de projeto e a nível da organização;
-
Organização de sessões especificas para facilitar o entendimento de novas tecnologias;
-
Sessões de refactoring dentro do time, assim o novo QA pode entender as vantagens de se ter um código limpo e estruturado dentro de um projeto;
-
Incentivo para aprendizado e dedicação além das horas normais de trabalho - um tempo em casa para ler um artigo é sempre interessante.
Agradecimentos:
Faríamos uma lista imensa para lembrar o nome de todos que nos ajudaram com essas iniciativas. No entanto, se você se considera parte dessa lista, muito obrigado!
Aviso: As afirmações e opiniões expressas neste artigo são de responsabilidade de quem o assina, e não necessariamente refletem as posições da Thoughtworks.