No princípio, quando o processo de desenvolvimento de software começou a ser aderido, muitas referências não mencionam a qualidade de software, apenas técnicas de testes que poderiam ser aplicadas por um responsável da equipe, o testador.
Depois dos anos 2000, com o Manifesto Ágil, a qualidade de software passou a ser essencial para garantir que o processo de desenvolvimento de software tenha relevância conforme a necessidade do cliente, expandindo a responsabilidade da qualidade entre os papéis.
Começando pelo PO (Product Owner), juntamente com o UX-Design (User Experience Design) e o Scrum Master, no início do processo deverá ser garantido o detalhamento dos requisitos da aplicação do cliente através de requisitos funcionais, de performance e de qualidade, além da definição dos critérios de aceitação do cliente. A participação do QA (Analista da Qualidade) passou a ser fundamental, pois consegue ter noção de planos de testes/casos de testes baseados nos requisitos levantados, além de estratégias (TUxTIxTSxTA). Tipos e técnicas de testes que poderão ser aplicadas e aperfeiçoadas durante a fase do desenvolvimento, garantindo a qualidade em entregas contínuas aderindo a um framework ágil.
O papel do Desenvolvedor\Programador passou também a ter atividades para garantir a qualidade, a fim de que, o código fonte siga boas práticas e reforce os critérios de aceitação do cliente através dos Testes Unitários (TU) de cada melhoria\alteração para avaliar a efetividade. Aplicação de técnicas para o Test Driven Development (TDD) garantindo que o desenvolvimento seja orientado para a automação. Ou até validações únicas em campos, botões e navegação, como por exemplo, erros que poderão ocorrer inserindo mensagens a fim de orientar o usuário final. São eles quem garantem que a parte lógica esteja funcional e adequada com a interface da aplicação (Backend X FrontEnd).
Feitas as entregas do que foi desenvolvimento, atualmente, um papel imprescindível é do DevOps, que além de manter a arquitetura, garante a integração contínua e entrega contínua (CI e CD), através de um Framework automatizado, a fim de, controlar as versões e fontes nos ambientes durante o processo de desenvolvimento do software. É esse papel que garante a agilidade e integração entre todas as áreas de desenvolvimento até o cliente final.
Em outro ambiente, são feitos mais testes pelo papel de QA, que acompanha e documenta os requisitos, fazendo os Testes Integrados (TI), ficando evidente as melhores técnicas de testes (estrutural, caixa branca). Validando os requisitos desenvolvidos pelos Casos de Testes sólidos ou através do BDD (Behavior Driven Development) prevenindo bugs. Todo o planejamento, controle dos bugs e gerenciamento dos testes efetuados podem ser armazenados em uma ferramenta de testes de software tanto para testes manuais como o TM4J (Test Jira for Management) ou Testlink, quanto para testes automatizados com os com Cypress, Selenium Web Driver, SiKuli e EclEmma. E, para performance podemos usar a ferramenta JMeter. Podemos também passar rapidamente pelo papel de QAOPS, poderá liberar os requisitos em um ambiente de homologação para o cliente, no entanto, pode também ser utilizado papel de DevOps para efetuar essa entrega da versão beta.
E no final do processo, no ambiente de Homologação do cliente são efetuados os Testes de Aceitação. A responsabilidade do usuário final através da Validação dos requisitos onde é grande estima a entrega da documentação do requisito, demonstrando a usabilidade, possibilidades e informações técnicas para o cliente. Geralmente envolve papéis que fizeram a frente ao cliente, junto ao PO, para que seja finalizado e aplicado em produção.
Enquanto isso o QA consegue montar os relatórios com base nos testes, para gerenciamento da entrega final para equipe (QA+Team), tanto com métricas de testes (QA) e métricas de produto (PO).
Todos esses papéis fazem parte do processo de desenvolvimento de software dinâmico e ágil, sendo assim além das Hard Skills necessárias, cada integrante sabe das suas responsabilidades. Também são necessárias as Soft Skills, como Inteligência Emocional para lidar com pressão das entregas sem apontar culpados e garantir que a comunicação seja fluida entre o time. Também, primordial o espírito de dono do produto e o trabalho em equipe de forma engajada, para que aconteçam as entregas de acordo com o esperado pelo cliente.