Por favor, “don't code like a tester”
Antes de contar porque essa frase / hashtag me irrita horrores, eu preciso falar um pouco do meu histórico profissional.
Eu comecei na área de teste há 13 anos, e 10 anos atrás comecei a trabalhar com automação de teste. Meu primeiro contato com selenium foi em 2009 quando estava na versão 0.0.9 +, era beta e não tinha versão fechada.
Naquela época não existia documentação em português e a única fonte de informação eram alguns blogs genéricos em inglês e alguns posts do blog http://seuenium.blogspot.com/ (que como vocês podem ver, não existe mais) e, como eu tinha o privilégio de estudar inglês, criei um blog chamado ‘Java, Selenium & Coca cola’ para tentar explicar tudo que eu tava aprendendo na marra.
Meu código era simples e sempre que tinha que fazer alguma coisa elaborada, eu penava porque me faltava a base de desenvolvimento de software.
Para vocês terem uma noção, na época só existia Junit e TestNG era realmente o Next Generation da história.
A ‘dor e sofrimento’ de não saber fazer as perguntas certas, de passar vergonha na internet, de não entender respostas simples e de torcer para copy paste de código funcionar eram constantes.
Eu contei um pouco o porque desse meu bloqueio e medo de começar a programar aqui -> https://medium.com/assertqualityassurance/voc%C3%AA-tem-medo-de-programar-senta-aqui-que-voc%C3%AA-n%C3%A3o-est%C3%A1-sozinho-7829d150b471
Nesses últimos 10 anos eu tenho procurado melhorar meu código e muito do meu desempenho se deve por estudar lógica de programação, fazer os tutoriais básicos de internet, ter o privilégio de ter referências maravilhosas de pessoas fodas tecnicamente (tipo um tal de Stefan Teixeira-> https://www.infoq.com/br/presentations/clean-code-para-testers/ e Frederico Moreira -> MTC) e pude ver nas pessoas sérias da comunidade um a apresso por melhorar a forma que testam e escrevem código, seja ele de teste ou não.
Voltando para a atualidade
Desenvolvimento ágil não é mais uma opção e sim um padrão. É possível questionar em qual estágio está essa adoção ágil pelas equipes de desenvolvimento, mas isso não vem ao caso.
Quando falamos de um time ágil, entende-se que todos os participantes desse time sejam desenvolvedores de software, salvo Product Owners / Product Managers (acho que tenho o privilégio que o atual PM do meu time abre PR’s frequentemente) e uma vez que todos são desenvolvedores de software, todos programam como….. desenvolvedores de software.
E o que isso quer dizer? Que todos seguem um processo de desenvolvimento, que respeitam (ou deveriam respeitar) as boas práticas da linguagem que trabalham, que usam design patterns para evitar reinventar a roda, que usam versionamento de código da melhor forma possível, para que todos tenham conhecimento do que está acontecendo com o base do código, que fazem desenvolvimento pareado e por assim vai.
Depois de 10 anos automatizando teste e escrevendo software (código de teste é SOFTWARE e deve ser tratado como tal) eu não desenvolvo mais como um testador. Longe disso. Se alguém disser que escrevo código como um testador — meu passado — eu vou levar isso como uma crítica, vou querer entender todas as falhas que cometi para poder melhorar meu processo de desenvolvimento.
Por isso acredito que você também não deveria ter orgulho de dizer que escreve código como um testador. Se você leva desenvolvimento de software a sério, você deveria escrever código como um DEV.
A Leonardo, para de ser chato, é só uma HASTAG / Grupo que tenta fazer uma brincadeira com nossa área. É ‘empoderamento’ dos testers para mostrar que são bons, etc, etc…
Olha….. na minha humilde opinião isso gera segregação e um estigma que eu realmente não queria para área de qualidade. Aquele cheiro de apelo comercial que a gente gostaria de passar longe.
Entenda que essa minha crítica não engloba movimentos sociais como #codelikeagirl que é um movimento real de EMPODERAMENTO feminino muito foda.
Alias… #codelikeagirl e #dontcodelikeatester ;)
Ok ok Leonardo, você me convenceu, não quero mais codar como um tester, o que eu devo fazer?
Olha.. eu não tenho a resposta especifica para seu caso, mas vc pode dar uma olhada nesses links e ver o que faz sentido para você:
- Deschamps sobre clean code: https://youtu.be/9w3o9NHXqu0 (pt-br)
- Criador do ruby rubocop: https://youtu.be/7u8nL9ABv2E (en-us)
- Christopher sobre design patterns https://youtu.be/v9ejT8FO-7I (en-us)
- Na verdade o canal inteiro o do Christopher é imperdível. (https://www.youtube.com/channel/UCbF-4yQQAWw-UnuCd2Azfzg)
- Pair Programming: https://agilealliance.org/glossary/pairing/ (en-us)
- Sobre code reviews: http://www.bettercode.reviews/ (en-us)
- Github Training (en-us): https://www.youtube.com/channel/UCP7RrmoueENv9TZts3HXXtw
- Discuta com a comunidade: http://agiletesters.com.br
- Confira outros posts: https://medium.com/assertqualityassurance
Bom… no final do dia, trabalhamos com software, ou seja, Somos todos desenvolvedores de software. Dito isso, #codelikeafuckingdeveloper :)