quarta-feira, 22 de setembro de 2010

Parte 01 - Gerenciamento de Projetos

Por que gerenciar um projeto?



Pessoal, estaremos partindo do principio do por que gerenciar projetos? As respostas é:

-Envolve a parte financeira (recursos) de uma empresa
-Estão ligadas a estratégia das organizações
-Tem caracteristicas de riscos para as organizações

A liderança em Gerenciamento de Projetos é uma habilidade altamente procurada como diferencial competitivo para que novos projetos e desenvolvimento de negócios sejam completados no prazo e dentro do orçamento.

Imperativos Estratégicos da Gestão de Projetos

Fatores Internos
>Descoberta dos benefícios da gestão de projetos
>Resultados obtidos
>Pode ser integrado com outras formas de gerenciamento
>Gestão da Qualidade Total
>Gestão de Mudança

Fatores Externos
>Concorrência
>Padrões de qualidade
>Resultados financeiros
>Preocupações legais
>Fatores políticos
>Pressões econômicas

O objetivo de profissionalizar (formar gerentes em projetos) o desenvolvimento das atividades relacionadas a projetos é certamente melhorar os seus resultados:

Prazos cumpridos;
Custos controlados;
Qualidade desejada;
Satisfação do cliente.

Com a crescente importância dada ao gerente de projetos, este profissional se tornou um dos mais disputados do mercado. Por ser uma pessoa com visão sistêmica e capaz de comandar processos em setores como recursos humanos, finanças, marketing, produção, engenharia e manutenção, a procura tem sido grande.

Benefícios do gerenciamento de projetos




Líderes e membros de equipe:
Acompanhamento do trabalho exercido
Satisfação de entregas de produtos
Aumento de produtividade e redução de tempo

Clientes:
Aumento de confiança sobre o produto
Planejamento de trabalho
Definição de produto
Entrega, prazo e custo altamente confiáveis

Organização:
Melhora da Produtividade
Reduz o desperdicios
Aumenta a margem de lucros
Aumenta a competitividade no mercado
Facilita nas tomadas de decisões
Resultados claros do projeto para a empresa

domingo, 19 de setembro de 2010

Teste de Software

Teste de Software




Diferente do que as maiorias das pessoas pensam que o teste de software serve para demonstrar o correto funcionamento de um programa, quando na verdade ele é utilizado como um processo da engenharia de software para encontrar defeitos (erros). Existem várias definições para o conceito de Teste de software. De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado. O objetivo principal desta tarefa é encontrar o número máximo de erros dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos.

• Verificação:

A verificação tem o objetivo de avaliar se o que foi planejado realmente foi realizado. Ou seja, se os requisitos, funcionalidades e performances documentados foram implementados.
Também pode ser realizada para especificação de sistemas, para avaliar se os requisitos estão sendo documentados como deveriam e ainda prever falhas ou inconsistências entre requisitos.
Uma pergunta que devemos fazer para executar este teste é
“Estamos construindo certo o produto?”

• Validação:

A validação tem o objetivo de avaliar se o que foi entregue atende as expectativas. Ou seja, se os requisitos, independente do que foi planejado, estão implementados para atender ao negócio (cliente).
Uma pergunta que devemos fazer para executar este teste é:
“Estamos construindo o produto certo?”

Técnicas de Teste:


Para que possamos executar esses tipos de teste, e encontrar o maior numero possível de bug (erro).Devemos dividir em categorias de teste, mais conhecido como técnicas de teste.
Existem duas técnicas de teste, Teste Funcional e Teste Estrutural.

Teste Funcional: Mais conhecido como Caixa Preta, está técnica de teste, tem como foco o comportamento externo do sistema, é bem parecido como uma caixa preta do avião, aonde não é importante o que acontece dentro da mesma. Apenas insere os dados de entrada e espera uma resposta, sem saber o como chegou naquela resposta.



Usando está técnica de teste, podemos elaborar vários tipos de teste, que são:

•Teste de Requisitos:
Responsável: Por testar se as funcionalidades do sistema, de acordo com os requisitos imposto pelo cliente.
Recomendação: Planejar este teste diretamente dos requisitos, deixando de lado as documentações elaboradas para o desenvolvimento, pois ele também será testado.

•Teste de Regressão:
Responsável: Por testar as funcionalidades do sistema, após alguma alteração de grande risco, e isso inclui os segmentos já testados.
Recomendação: Executar este teste apenas quando houver alguma alteração de risco, pois este teste leva muito tempo e acaba tendo o custo meio alto.

•Teste de Tratamento de Erros:
Responsável: Por testar se todos os erros possíveis no sistema foram identificados e corrigidos.
Recomendação: Executar este teste em todo ciclo de vida do desenvolvimento.

•Teste de Suporte Manual:
Responsável: Por testar se o suporte manual, como guias, manuais. Estão sendo elaborados corretamente.
Recomendação: Executar este teste junto a homologação.

•Teste de Interconexão:
Responsável: Por testar se a conexão dos software integrados com o seu sistema ,está sendo desenhado corretamente, se existe alguma falha.
Recomendação: Executar este teste sempre que houver alguma mudança nos parâmetros entre os softwares, independente se o sistema está em produção

•Teste de Controle:
Responsável: Por testar se está sendo usado corretamente as técnicas dentro do software.
Recomendação: Deve ser como um software dentro do outro.

•Teste de Paralelo:
Responsável: Por testar se está mantida o status operacional , qualidade, da aplicação nova ou da nova versão.
Recomendação: Usar sempre que houver incertezas sobre a correção do processo da nova aplicação.

Teste Estrutural: Mais conhecido como Caixa Branca, está técnica de teste, ao contrario do Teste Funcional, tem como foco o funcionamento interno do sistema, aonde ele se preocupa como o sistema chegou a resposta final. Nesta técnica é necessário ter um bom conhecimento de programação, pois é no código será feito este Teste.



Usando está técnica de teste, podemos elaborar vários tipos de teste, que são:

•Teste de Estresse:
Responsável: Por testar qual a capacidade que o sistema suporta, fazendo com que o mesmo “quebre”, para saber se o sistema vai suporte em produção.
Recomendação: Levantar qual é a necessidade do sistema, antes de executar o teste , pois é um teste demorado e pode não ser necessários em alguns sistemas.

•Teste de Execução (Eficácia):
Responsável: Por testar o comportamento do sistema, se está sendo atendidas as premissas de desempenho estabelecidas, resumindo a usabilidade do sistema.
Recomendação: Executar o teste no começo do ciclo de vida de desenvolvimento, para que seja possível fazer mudanças na estrutura do sistema.

•Teste de Recuperação (Contingência):
Responsável: Por garantir a continuidade das operações após algum desastre (Backup).
Recomendação: Estimar a perda associadas com a incapacidade de recuperar as operações nos diversos intervalos de tempo (5 min, 1 hora, 8 horas, 1 semana ...).

•Teste de Operação:
Responsável: Por verificar os operadores foram adequadamente orientados pelos documentos no processo e na execução.
Recomendação: Executar o teste no inicio da operação real.

•Teste de Conformidade:
Responsável: Por testar se o sistema e documentos, estão conforme as especificação do cliente.
Recomendação: Executar o teste no inicio do ciclo de vida do desenvolvimento.

•Teste de Segurança:
Responsável: Por testar a confiabilidade de segurança tanto física , quanto lógica.
Recomendação: Executar o teste antes de produção e principalmente antes de ir pra produção.

Duvidas e sugestões > ettorefrancobr@gmail.com