Olá, Feliz 2022! Que nesse novo ano, que é só a continuação do anterior rss, estejamos todos com muita saúde!!
Esse ano comecei em uma área nova, a Engenharia de Software, um divisor de águas pra mim, um baita desafio daqueles de tremer na base, mas eu adoro um desafio, gosto de explorar possibilidades e sair da zona de conforto, não sentir os pezinhos tocarem no chão 😀
Desde o ano passado tenho mergulhado em várias frentes uma delas é a Engenharia de Software. Comecei uma Pós em Engenharia de Software que ganhei da empresa do meu marido, a Somos Educação, que praticamente caiu como uma luva para a minha mudança. Nessa jornada também ganhei a mentoria do Walmyr Filho, um cara que admiro desde que li o livro e fiz o curso sobre Protractor. A maneira como ele explica e mostra os porquês sempre fez muito sentido pra mim. Que presentes não? Agradeço demais por esse “empurrão” para a Engenharia 😀
Há uns 3 anos mais ou menos, fiz uma série de palestras em eventos internos da empresa para mostrar o valor dos testes, da qualidade de software e suas características, valores do scrum, sobre o que aprendi sobre qualidade com Walt Disney. E tudo isso só começou a dar match agora, sabe quando você ouve as coisas que sempre fizeram sentido mas que nunca pôde colocar em prática? Eu lembro de ter feito uma tatuagem nessa época com “Be Brave” minha personagem favorita na Disney, junto do Baymax, para me lembrar de ter mais coragem para experimentar coisas novas.
A disciplina que me cabe nesse universo é a disciplina de testes, que por si só ainda não explorei totalmente. E é aí que começa a minha brincadeira. Meu universo só está começando a ser construído, aprendendo tanta coisa boa 🙂
O meu novo desafio é implementar a Qualidade de Software nos times. Simples né? E aí vem a pergunta: Como?
Todos aqueles conceitos lá da base sobre o que é Qualidade, o que é Qualidade de Software, o que são testes, níveis de teste, técnicas de teste, tipos de testes, processo, observação, todos eles vêm a tona para tentar responder esse “Como”.
E aí uma das frases que mais tenho visto na Engenharia é: “O teste sozinho não melhora a qualidade”, sobre aquela falsa ideia de que Qualidade é Teste. Quando você sai do mundo exclusivo de QA e amplia o seu horizonte para o ciclo de desenvolvimento de software, a parada muda totalmente. Entender como um software é construído, pedacinho por pedacinho e enxergar oportunidades onde a qualidade pode ser inserida é o grande “Como”.
O “Como” são práticas da engenharia que são distribuídas no ciclo de desenvolvimento. Testes são só uma parte desse ciclo mas são importantes para saber se estamos construindo o software conforme se espera. Teste é apenas uma disciplina dentro da Engenharia de Software, mas o grande barato é que a gente já começa um produto pensando em testes.
O grande shift-left que tanto ouvimos falar é trazer o teste o quanto antes possível, isso quer dizer que a qualidade é aplicada em cada pedacinho do desenvolvimento. No requisito por exemplo com técnicas de teste como a Partição de Equivalência, que já ajuda o time a identificar partições que poderiam ser negligenciadas. Gosto de usar a Tabela de decisão quando tenho algo muito complexo para enxergar as possibilidades, caminhos e então tomar decisão sobre que testes realizar. A Análise do valor limite quando a gente sente aquele cheirinho de problema, bugs adoram limites!
Descobrindo o que deve ser testado, direciona também o desenvolvimento que já entende o que a funcionalidade é capaz de fazer. E as perguntas não vão parar por aí, quando iniciar o desenvolvimento, outras perguntas serão feitas, e que sejam realmente feitas!
O bacana é descobrir quais práticas da engenharia são interessantes para o seu contexto, existem muitas delas. Preciso falar de testes automatizados? eles são a base para tudo isso acontecer e receber o tal feedback rápido, esse é um baita desafio constante. Testes que fazem sentido em cada camada, se for o caso. Lembrando que o teste depende do contexto, lembra dos 7 princípios de teste?
Olha essa prática que a Patrícia Muniz mostrou no Agile Brasil 2021, é um Value Stream Mapping chamado Path to Production. Ela pode ser inserida no início do desenvolvimento para deixar transparente o caminho para a produção. Isso é realmente útil quando estamos próximos de enviar uma história para produção que começam os problemas que antes nunca foram revelados.
A Tainara Reis falou sobre o Shift Left e também mostrou algumas práticas que podem ser aplicadas hoje no seu time.
Para entender como tudo isso se linkava e ver como tudo isso era construído “da forma correta” eu fiz um curso (em andamento) que recomendo demais que é o Clean Code e Clean Architecture do Rodrigo Branas. Eu sei, mergulho fundo demais a gente se afoga, mas é bom pra saber onde bate o pezinho. Para começar dar nome as coisas sabe? Segue o curso AQUI.
E aí então a qualidade de software – que não é só teste! é incorporada dentro de todo o ciclo de desenvolvimento e não somente em uma parte. Todo o time é sim responsável pela qualidade e a visão do todo se torna do cliente para dentro. Cliente sempre no centro, ah isso sim melhora a qualidade 😉
Algumas leituras recomendadas:
- https://medium.com/manomano-tech/software-quality-craftsmanship-at-manomano-121f11ce0a5;
- https://www.atlassian.com/inside-atlassian/qa;
- Newsletter e conteúdos do Walmyr Filho, sempre trazendo essa abordagem da engenharia, inclusive na newsletter nova tem algumas práticas de engenharia;
- https://talkingabouttesting.com/2021/11/03/investimentos-tecnicos-em-engenharia-de-software/;
- O novo livro do Maurício Aniche está sensacional (Effective software testing), inclusive ele menciona sobre as técnicas que falei no livro dele como uma abordagem sistemática de testes, menciona até o ISTQB.