sexta-feira, 20 de novembro de 2009

Resumo do cap. 1 do PMBOK

Resumo PMBOK

Autor: Hiram Castelo Branco T. Nascimento

Capítulo 1 – A estrutura do gerenciamento de projetos

Introdução

“ O Conjunto de conhecimentos em gerenciamento de projetos é a soma dos conhecimentos intrínsecos à profissão de gerenciamento de projetos.” (PMBOK, 2004)

Objetivos do PMBOK

“ O principal objetivo do Guia PMBOK® é identificar o subconjunto do Conjunto de conhecimentos em gerenciamento de projetos que é amplamente reconhecido como boa prática.” (PMBOK, 2004)

“ 'Boa prática' significa que existe acordo geral de que a aplicação correta dessas habilidades, ferramentas e técnicas podem aumentar as chances de sucesso em uma ampla série de projetos diferentes.” (PMBOK, 2004)

O que é um projeto?

Um projeto é um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo.

Empreender: Experimentar, procurar fazer, tomar iniciativa de ação, tarefa, realização etc.

Temporário:significa que todos os projetos possuem um início e um final definidos.Projetosnãosão esforços contínuos.

Produtos, serviços ou resultados exclusivos:cada um desses é uma instância singular.

Elaboração progressiva: significa desenvolver em etapas e continuar por incrementos. Não deve ser confundida com aumento do escopo.

Observação sobre iterações:“É importante observar que muitos processos dentro do gerenciamento de projetos são iterativos devido à existência, e necessidade, de uma elaboração progressiva em um projeto durante todo o ciclo de vida do projeto.”

É importante, também, não confundir a necessidade de iterações por erros na definição de escopo (o que é ruim), mas sim pela elaboração progressiva (o que é bom e necessário).

Sabe-se, portanto, que a medida que uma equipe de projetos ganha experiência em um tipo de projeto, todo conhecimento adquirido é útil para uma melhor gerência nos próximos empreendimentos. É importante haver um acervo para armazenar tais conhecimentos adquiridos.

Projetos x Operações

“ Os projetos e as operações diferem principalmente no fato de que as operações são contínuas e repetitivas, enquanto os projetos são temporários e exclusivos.” (PMBOK, 2004)

“ Os projetos são diferentes porque o projeto termina quando seus objetivos específicos foram atingidos, enquanto as operações adotam um novo conjunto de objetivos e o trabalho continua.” (PMBOK, 2004)

Projetos e planejamento estratégico

“ Os projetos são um meio de organizar atividades que não podem ser abordadas dentro dos limites operacionais normais da organização. Os projetos são, portanto, frequentemente utilizados como um meio de atingir o plano estratégico de uma organização, seja a equipe do projeto formada por funcionários da organização ou um prestador de serviços contratado.” (PMBOK, 2004)

Projetos são, em geral, concebidos e autorizados em resposta a uma das seguintes considerações estratégicas:

  • Demanda de mercado

  • Necessidade organizacional

  • Requisito legal

  • Solicitação de um cliente

  • Avanço tecnológico

O que é gerenciamento de projetos?

“ O gerenciamento de projetos é a aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto a fim de atender aos seus requisitos.”

Segundo o PMBOK, o gerenciamento de projetos é realizado através da aplicação e da integração dos seguintes processos de gerenciamento de projetos:

  • iniciação,

  • planejamento,

  • execução,

  • monitoramento e controle, e

  • encerramento.

“ O gerente de projetos é a pessoa responsável pela realização dos objetivos do projeto.”p (PMBOK, 2004)

“ Gerenciar um projeto inclui:

  • Identificação das necessidades

  • Estabelecimento de objetivos claros e alcançáveis

  • Balanceamento das demandas conflitantes de qualidade, escopo, tempo e custo

  • Adaptação das especificações, dos planos e da abordagem às diferentes preocupações e expectativas das diversas partes interessadas.” (PMBOK, 2004)

Observação sobre qualidade: “Projetos de alta qualidade entregam o produto, serviço ou resultado solicitado dentro do escopo, no prazo e dentro do orçamento.” (PMBOK, 2004)

domingo, 12 de abril de 2009

A famigerada java.lang.NullPointerException

Hoje eu respondi a um post sobre Arrays criado por um usuário de um dos fóruns Java que freqüento.

A dúvida era simples: como verificar se um elemento do array era nulo. O que me intrigou durante uns testes que eu fiz é que a exceção NullPointerException é lançada em muitos contextos diferentes. Decidi, então, pesquisar sobre mais detalhes dessa "famosa" exceção que, apesar de muito popular, gera dúvidas em programadores Java iniciantes - como eu - sobre em que casos ela é de fato lançada.

A NullPointerException é uma subclasse da RuntimeException e é lançada sempre que um valor null é fornecido em situações em que um objeto, ou uma referência a um objeto, precisa ser fornecido.

As situações específicas que causam o lançamento dessa exceção são:

  • A chamada de um método de instância de um objeto nulo. Por exemplo, quando um objeto é apenas inicializado e não instanciado. Assim, ele não pode ter um de seus métodos de instância chamado. Por distração, esse problema ocorre frequentemente quando se trabalha com arrays de objetos.

  • O acesso ou tentativa de modificação de um atributo de um objeto nulo.

Os outros três principais casos merecem exemplos em código:

  • A tentativa de se tomar o tamanho de um objeto nulo, ou seja, com referência a null, como se ele fosse um array.

String str = null;
int l;
l = str.length();
  • As tentativas de acesso ou modificação os elementos de um objeto nulo como se ele fosse um array. Talvez essa seja a causa mais comum. Segue o exemplo:

String str = null;
str[2] = "vai dar problema!";
  • O lançamento de um objeto nulo como se ele fosse uma subclasse de Throwable. Veja:

if(args.length == 0) thrownull;

Para não dizer que não falei de flores, o tipo null, segundo as especificações da JVM abstrata, isto é, sem distinção de implementações da JVM, está intimamente relacionado a referências. Ele é nada mais nada menos que uma referência nula, ou a nada.

A documentação da Java API aconselha que as aplicações deveriam lançar a exceção NullPointerException nos demais casos em que um valor null é fornecido em lugar de um objeto.

Em caso de dúvidas postem comentários.