Posts da Tag: desenvolvimento de software - Blog da TreinaWeb

Testes e Projetos

Quality Assurance (QA) e sua importância no desenvolvimento de software

Quality Assurance (QA), ou Garantia da Qualidade, em português, pode ser definida como um conjunto de ações que as empresas realizam com o objetivo de entregar aos consumidores um produto ou serviço com alto nível de qualidade. No desenvolvimento de software, aplicar os métodos de QA geram confiança e segurança aos clientes, indicando que os seus produtos terão a qualidade esperada na etapa de implantação.

O profissional de Quality Assurance deve ter conhecimento sobre as atividades do projeto, além de ter um perfil analítico. Ele verifica se os padrões de qualidade estão sendo atendidos e se todos os requisitos mínimos esperados no produto serão entregues. Por outro lado, é fundamental que a empresa siga uma sequência de ações previamente planejadas e sistematizadas, como um conjunto de regras que deverá ser seguido.

Para que a qualidade do produto seja maximizada, o ideal é que todos os processos sejam documentados, como, por exemplo, o planejamento, a determinação de tarefas e responsabilidades, o registo dos resultados e todos os mecanismos de fiscalização que se aplicam dentro da organização.

Qual a importância do Quality Assurance (QA)?

A garantia da qualidade busca reduzir custos e evitar desperdícios. Isso é possível porque o QA possibilita melhorar a produtividade da organização, fazendo que ela foque no cumprimento dos objetivos e no que os clientes esperam da qualidade do produto. Além disso, estas ações identificam as atividades que aumentam os gastos e não trazem valor ao processo. Para que isso seja feito com maestria, o profissional de Quality Assurance deve acompanhar desde a elaboração do projeto, passando pelo desenvolvimento, até as etapas de implementações.

Outro impacto positivo da Quality Assurance é em relação a satisfação do cliente. O QA permite obter melhorias na qualidade dos produtos entregues ao cliente, o que sem dúvida dará a confiança necessária de que a qualidade desejada está sendo alcançada e será mantida, pois tudo está documentado e certificado.

Em suma, a implementação do Quality Assurance (QA) pode trazer diversos benefícios, tais como:

  • Redução de custos operacionais;
  • Redução de retrabalhos;
  • Auxilia na identificação de problemas;
  • Entrega de produtos com maior qualidade;
  • Melhora na satisfação do cliente;
  • Melhora na estimativa dos projetos;
  • Otimização da rotina de trabalho.

Processos do Quality Assurance (QA)

Manual de administração

O manual de gestão de projetos inclui dados importantes que devem ser considerados, para serem utilizados no plano de gestão da qualidade de cada empresa, pois os procedimentos específicos são definidos para atingir os objetivos de uma forma particular para cada organização.

Controle de qualidade

As medidas de controle de qualidade permitem estabelecer o grau ou nível de qualidade alcançado em cada atividade avaliada no processo. Podem ser utilizados critérios como desempenho nos prazos estabelecidos, cumprimento na execução dos orçamentos, frequência de aparecimento de erros ou defeitos no processo, entre outros.

Relatórios de desempenho

Relatórios de desempenhos alcançados devem ser feitos periodicamente ao longo do desenvolvimento das diferentes partes do projeto, pois isso permitirá monitorar como todas as atividades estão sendo realizadas e evitar maiores custos. Além disso, é possível avaliar se os prazos estão sendo cumpridos – com base nos cronogramas já elaborados -, o andamento do processo de entrega, o desempenho técnico e qualquer atividade que implique custos.

Desenvolvimento e implementação de QA

Para poder desenvolver e implementar um sistema de QA, é preciso considerar os seguintes pontos:

  • Para o bom andamento de um projeto de implantação de um sistema de garantia da qualidade, é imprescindível que a direção da empresa esteja plenamente envolvida e convicta de que a adoção deste sistema resultará no bom funcionamento do projeto e da organização;
  • Escolha do modelo de sistema de garantia de qualidade a ser implementado, por exemplo, o ISO 9001;
  • Divulgação em todos os níveis da organização do compromisso assumido pela gestão;
  • Escolha de um responsável pela implantação e manutenção do sistema;
  • Coordenar a implementação do sistema do início ao fim;
  • Revisar e aprovar o manual da qualidade e os procedimentos operacionais;
  • Formar a equipe de trabalho e realizar revisões periódicas.

Considerações finais

Podemos afirmar que o sistema de garantia da qualidade traz muitos benefícios às empresas, principalmente na redução de custos, na entrega de produtos com a qualidade esperada e, principalmente, na garantia da satisfação de seus clientes. Como esse sistema permite a documentação dos processos para manter a entrega dos produtos e serviços com a qualidade esperada, ele deve ser sempre revisado e atualizado periodicamente, pois a melhoria contínua deve ser sempre almejada.


Engenharia de Software

Como funciona a prototipação no desenvolvimento de software?

A prototipação é um processo importante no desenvolvimento de software, pois, além de servir como um primeiro rascunho de um produto ou serviço, tem como objetivo amadurecer ideias e engajar pessoas no processo de criação. Esta etapa impacta diretamente na produtividade de toda a equipe e gera valor ao cliente. É nesta fase que as ideias são colocadas em prática para facilitar o entendimento de uma aplicação ou sistema.

Com a prototipação, os envolvidos em um projeto verificam as funcionalidades de um software de maneira simplificada e conferem se todos os recursos estão atendendo os requisitos estabelecidos. Aplicando esta técnica, a equipe de desenvolvimento, os profissionais de UX Design, os clientes e outros interessados no projeto, podem analisar como todas as funcionalidades estão distribuídas, bem como se a organização do layout está correta, se o sistema oferece uma boa experiência para o usuário, entre outros aspectos importantes.

Além do baixo custo, a prototipação no desenvolvimento de software tem como característica reduzir os riscos e permitir que todas as validações sejam feitas antes da implementação. De acordo com Jakob Nielsen, cientista da computação e cofundador da Nielsen Norman Group, “estima-se que seja 100 vezes mais barato fazer mudanças antes de escrever qualquer código, do que aplicá-las após a implementação”.

Tipos de Protótipos

Há diversos modelos de prototipação rápida e níveis de fidelidade. Um protótipo pode ser desde um desenho na folha de papel, até algo elaborado em software especializado, e mais parecido com a solução final. Basicamente, a prototipação pode ser feita de três maneiras:

Protótipo de Baixa Fidelidade

Este tipo de protótipo também é conhecido como rascunho, wireframe e sketche. Geralmente são desenhos feitos à mão, em folha de papel ou com ajuda de post-it, representando como serão as características da interface e o seu funcionamento. Como o material utilizado para elaborar este protótipo é simples, consequentemente, o custo dessa solução é baixo. Por meio desta técnica, é possível obter diversas informações, sobretudo em relação aos requisitos da interface.

Protótipo de Média Fidelidade

Este tipo de protótipo já demanda um pouco mais de tempo para ser elaborado e está mais próximo do que foi idealizado para o projeto. Geralmente são feitos com o auxílio de softwares e permitem que o usuário simule o comportamento do sistema. Com isso, é possível validar as interações e melhorar a user experience. Apesar de ser uma solução mais elaborada, o custo desse tipo de protótipo continua relativamente baixo.

Protótipo de Alta Fidelidade

Este tipo de protótipo oferece uma fidelidade mais próxima possível do resultado final do software. Geralmente são desenvolvidos em linguagem de programação – permitindo mostrar algumas das funcionalidades do sistema – e oferece um alto grau de interatividade. Neste tipo de prototipagem, pode ocorrer a implementação de algumas partes do sistema. Vale destacar também que há um custo maior em sua elaboração, já que demanda mais tempo e conhecimento técnico.

Prototipação Rápida
Curso de Prototipação Rápida
CONHEÇA O CURSO

Qual é o melhor tipo de protótipo para o meu projeto?

Antes de escolher um tipo de protótipo para o seu projeto, há diversos pontos que devem ser considerados. Primeiramente, é importante identificar o perfil da equipe de desenvolvimento e da infraestrutura da empresa. A partir desta análise, é possível avaliar qual a melhor técnica e/ou ferramenta para que os profissionais responsáveis possam criar o protótipo.

Outra questão importante é avaliar o tipo de interface que será prototipada. Com isso, haverá como parametrizar qual modelo trará um melhor custo-benefício para o projeto. Por exemplo, em uma interface mais simples, não haveria problema de utilizar um protótipo de baixa fidelidade, porém, se o cliente for participar do processo de criação, talvez seja melhor considerar um protótipo com uma visualização mais interativa.

A etapa de prototipação facilita o processo de validação e ajuda na identificação de problemas no software. Ao identificar e escolher o melhor tipo de protótipo, de acordo com sua necessidade, fica bem mais fácil de avaliar o projeto, as funcionalidades do sistema, os requisitos de negócios, bem como ter um suporte na tomada de decisão. Com isso, as chances de a solução final atender as expectativas do cliente são muito maiores.

Se quiser saber mais sobre a prototipação no desenvolvimento de software e a sua importância, consulte o curso de Prototipação Rápida da TreinaWeb.


Engenharia de Software Metodologias Ágeis

O que é XP – Extreme Programming?

Seguimos nossa série de artigos de metodologias, abordando hoje mais uma metodologia ágil: XP (Extreme Programming). Lembrando que já abordamos diversas metolodogias aqui, como Crystal, RAD, RUP, e AUP.

O XP (Extreme Programming ou Programação Extrema) é uma metodologia focada no desenvolvimento de software que possui valores e princípios, onde são fundamentados por um conjunto de práticas.

É uma metodologia leve que pode facilmente ser adotada por diferentes níveis de desenvolvedores (experientes ou não) e em qualquer tamanho de equipe. É uma excelente metodologia por se adaptar a requisitos que às vezes podem mudar rapidamente.

O XP pode ser utilizado de forma complementar ao Scrum, pois ele acaba focando mais em processos de engenharia e desenvolvimento de software.

Scrum - Planejamento e Desenvolvimento Ágeis
Curso de Scrum - Planejamento e Desenvolvimento Ágeis
CONHEÇA O CURSO

Princípios, valores e práticas

Como vimos acima, o XP possui um conjunto de princípios e valores, onde os princípios tendem a ser mais concretos que os valores. O conjunto de valores servem como um critério que norteiam as pessoas envolvidas no desenvolvimento do software, além de se complementarem. São eles: comunicação, simplicidade, feedback, coragem e respeito.

Além desses valores, existe um conjunto de princípios que deve ser seguido por equipes que forem usar XP em projetos, sendo o feedback rápido, presumir simplicidade, abraçar mudanças, trabalho de alta qualidade, pequenos passos, melhoria, diversidade, reflexão.

As práticas consistem no núcleo principal do processo. Elas evidenciam os valores que nos ajudarão a ter sucesso no projeto. São elas:

  • Cliente presente: O cliente deve participar ativamente do processo de desenvolvimento. Tudo precisa da comunicação com o cliente. Ele deve receber o melhor resultado possível a cada semana, ver o progresso no sistema, ser informado de mudanças de planos, etc. Escute, para que saiba qual é o problema a ser resolvido.

  • Planejamento: O desenvolvimento utilizando o XP é feito em iterações. Uma iteração é um período curto de tempo (1 ou 2 semanas) onde a equipe desenvolve um conjunto de funcionalidades. Sendo assim, no início da semana, desenvolvedores e clientes se reúnem para priorizar as funcionalidades. Essa reunião chama-se jogo de planejamento e nela já devem estar criadas as estórias. Se uma estória for muito grande, ela deve ser dividida em tarefas com duração máxima de alguns dias. Essas estórias devem ser escritas pelo cliente, pois assim ele consegue pensar melhor em cada funcionalidade. O planejamento é importante para que você sempre faça a coisa mais importante a ser feita.

  • Stand Up Meeting: São reuniões feitas em pé e de curta duração – mas muito produtiva, para que o time se mantenha alinhado, para saber o que cada um está fazendo exatamente, em que ponto está o projeto e se alguém está tendo problemas para executar suas tarefas. Ainda que apareça algum problema, essa reunião não tem o propósito de pensar em soluções.

  • Programação em par: É uma programação em par (dupla) em um único computador. Como é apenas um computador, o software sempre é revisto por duas pessoas diminuindo assim a possibilidade de falhas. Busca-se sempre a evolução da equipe melhorando a qualidade do código fonte. Ela é uma das práticas primordiais do XP, pois dois programadores fazendo o trabalho juntos acaba agregando muito para o trabalho em equipe.

  • Testes constantes: É utilizado o Desenvolvimento Orientado a Testes (Test Driven Development), o conhecido TDD. Primeiro crie os testes unitários e depois crie o código para que o teste funcione, essa abordagem é complexa no início, mas os testes unitários são essenciais para que a qualidade do projeto seja mantida.

  • Refatoração: É um processo que permite a melhoria contínua da programação, o mínimo de introdução de erros e mantendo compatibilidade com o código já existente. Refatorar melhora a clareza, leitura do código e facilita a manutenção. Além disso, o código fica mais coeso e você tem um melhor aproveitamento, evitando duplicação no código fonte.

XP - Extreme Programming
Curso de XP - Extreme Programming
CONHEÇA O CURSO
  • Código coletivo: Diz que o código fonte não tem dono e ninguém precisa solicitar permissão para poder modificar o mesmo. O objetivo é fazer a equipe conhecer todas as partes do sistema.

  • Padronização do código: Como todo mundo trabalha no desenvolvimento do mesmo software, a equipe de desenvolvimento precisa estabelecer regras para programar e todos devem seguir essas regras, assim parecerá que todo código fonte foi digitado pela mesma pessoa. A padronização de código também é muito importante, porque o XP preza isso, o trabalho em equipe, se uma pessoa faz de um jeito e a outra faz de outro, isso fica muito confuso e futuramente pode ter problemas na revisão deste código.

  • Design simples: Essa prática se encaixa no princípio da simplicidade e é basicamente seguir o que o usuário está pedindo, por conta disso o design do software acaba sendo mais simplista. Além disso, o software acaba ficando mais fácil de ser alterado. Com essa metodologia você consegue alterar o código quando precisar, sem comprometer a qualidade.

  • Metáfora: Procura facilitar a comunicação com o cliente, entendendo qual a realidade dele. É preciso traduzir as palavras do cliente para o significado que ele espera dentro do projeto.

  • Ritmo sustentável: Manter um ritmo de trabalho com qualidade, onde eles estejam atentos e dispostos.

  • Semana de 40 horas: É trabalhar com qualidade buscando ter um ritmo de trabalho saudável, 40h por semana, 8h por dia, sem horas extras.

  • Integração contínua: Sempre que for produzido uma nova funcionalidade você nunca deve esperar uma semana para integrar com a versão atual do sistema. Isso só aumenta a possibilidade de conflitos e possibilidade de erros no código fonte. Integrar de forma contínua permite saber o status real da programação.

  • Releases curtos: As liberações de pequenas versões funcionais do projeto auxiliam muito no processo de aceitação por parte do cliente que já pode testar uma parte do sistema. As versões chegam ainda ser menores que as produzidas em outras metodologias incrementais, como o RUP. Os releases são pequenos pedaços do produto que são entregues ao cliente antes do tempo, assim o cliente não precisa esperar o produto todo ficar pronto para ver.

Considerações finais

Como pudemos ver o XP é dinâmico e flexível, nos ajudando a ter rapidez, qualidade e flexibilidade no desenvolvimento de um software. Se você quer conhecer ainda mais a fundo e principalmente ver o XP funcionando na prática, confira nosso curso de Extreme Programming.

Formação:
CONHEÇA A FORMAÇÃO