Controle de QualidadeUm aspecto que me chamou muito a atencao foi a observacao de que projetos que comecam a atrasar tentam ganhar tempo cortando tarefas como design, revisao de codigo e teste (eu ja vi isto acontecer!!). O autor afirma que isto seria um grande engano uma vez que sao exatamente estas tarefas que reduzem a ocorrencia de erros e, consequentemente, evitam a dilatacao dos prazos. Projetos atrasados costumam enfatizar o trabalho duro (horas extras, mais pessoas) quando deveriam buscar trabalhar melhor!!Ele observa tambem que os projetos mais rapidos sao os que eliminam cerca de 95% dos erros antes da entrega. Menos do que isto, indica um processo de desenvolvimento muito imaturo e instavel, por outro lado, buscar corrigir mais do que 95% dos erros exige muito esforco e consome tempo ("o otimo e inimigo do bom") e so deve ser aplicado em alguns sistemas criticos (sistemas de suporte a vida, controle de processos industriais, sistemas de controle de aeronaves).Em outras palavras, se mais do que 5% do erros sao encontrados apos a entrega, voce pode melhorar seu processo de controle de qualidade e desenvolver sistemas mais rapidamente, com menos esforco e menos custos.Outra sugestao interessante e a de buscar identificar os modulos com maior incidencia de erros e reprojetar estes modulos. Uma pesquisa da IBM aponta que 57% do erros ocorrem em 7% do modulos.O autor apresenta duas familias de tecnicas para efetuar o controle de qualidade:testerevisoes tecnicasA efetividade dos testes varia muito, dependendo do tipo - testes unitarios identificam entre 10% e 50% dos erros; testes sistemicos identificam entre 20% e 60%. Entretanto, o maior problema com os testes e que geralmente eles apenas apontam que o produto nao possui o nivel de qualidade adequado pouco antes do momento da entrega. Esta caracteristica faz parecer que os testes sejam responsaveis pelas mas noticias que causam atrasos.As revisoes tecnicas variam bastante em formalidade e efetividade e podem ser aplicadas em todos os artefatos produzidos durante o projeto (casos de uso, diagramas, codigo). Embora sejam aplicadas menos frequentemente que os testes, elas provocam um impacto maior no projeto.Dentre as tecnicas de revisao temos:percorrimento (walkthroughs) - e a menos formal das tecnicas, consistindo geralmente de uma reuniao na qual dois ou mais desenvolvedores reveem algum artefato buscando melhora-lo. Identifica entre 30 e 70% dos problemas de codificacao, mas quando encontra problemas no levantamento de requisitos e provoca os maiores ganhos.revisao de codigo - e um processo um pouco mais formal que o percorrimento e consiste na entrega de listagens de programa para outros programadores que ficam encarregados de buscar erros no programa e informar ao seu autor. Um estudo da NASA identificou que a revisao de codigo encontra duas vezes mais erros por hora do que os testes.inspecao - e um processo formal que implica na capacitacao especial de alguns tecnicos e que demonstrou ser extremamente efetiva na identificacao tempestiva de problemas nos projetos. Inspecoes identificam de 60% a 90% dos defeitos de um programa, consideravelmente mais que o percorrimento e o teste.Vale lembrar ainda que as revisoes tecnicas sao mais efetivas e